none
Como imprimir conteúdo de TextBox RRS feed

  • Pergunta

  • Pessoal, estou no be-a-bá do C#, portanto, não estranhem a falta de conhecimento.

    Mas é o seguinte: tenho um form que contém vários textbox e gostaria de criar um relatório onde eu pudesse imprimir aquilo que está sendo exibido no textbox no momento.

    Fiquei uma tarde procurando na net, mas só acho coisas sobre impressão via banco de dados (o que me traz todos os dados que salvo, não é o que preciso) ou os poucos que explicaram sobre campos trouxeram uma explicação muito superficial. Como eu disse, estou gatinhando, por isso preciso de algo mais detalhado.

    Vou exemplificar no form abaixo:

    Minha idéia para o relatório:

    Quero montar um relatório onde no mesmo apareçam os dados inseridos nos textbox do "dados da movimentação" e nas opções de impressão eu vou selecionar o tipo de disciplinas (que estará num bd e puxarei via dataSet) e depois mando imprimir. Já vi que tem como fazer via parâmetros no crystal reports, mas como disse, estou começando... :(

    Seria interessante se no ReportData eu conseguisse puxar os campos ativos no banco (tipo por parâmetros)... Se tiverem dicas aí aceito também...

    Peço uma ajuda aí, ou me coloquem uma dica de como poderia montar esse relatório...

    Desde já agradeço! 

    quinta-feira, 22 de março de 2012 20:41

Respostas

  • Então,

    normalmente quando eu faço eu relatório eu utilizo View do banco de dados, assim eu consigo pegar todos os campo que necessito de uma maneira mais eficiente. Quando o relatório for chamado, faça uma função para pegar as informações somente do ID selecionado, com a condição WHERE, ou em uma SelectionFormula no Crystal Reports.

    Sobre o DataSet, você pode criá-lo com as colunas que desejar. É só ir em sua Solution e adicionar um DataSet, irá abrir a tela do DataSet, após isso é só clicar com o botão direto e adicionar uma Table, e ir colocando os campos, com o nome que você quiser. 

    para utilizar o dataSet é só dar um New nele e pegar a variável P.exemplo: 

    DataSet ds = new DataSet();

    ds.NomeTable.AddNomeTableRow(

    Coluna1,

    Coluna2

    )

    acho que o básico é isso...

    • Marcado como Resposta InfoGeógrafo sábado, 24 de março de 2012 19:33
    sexta-feira, 23 de março de 2012 16:53

Todas as Respostas

  • Olá,

    Você já tentou criar um DataSet na sua aplicação com todos os campos que irão no relatório. Depois disso cria um .rpt com esses campos e o layout que quiser.

    Aí quando apertar no botão para imprimir você carrega esse DataSet que criou com o conteúdo dos TextBox.


    quinta-feira, 22 de março de 2012 20:53
  • O problema é que estou salvando estes dados no banco, tentei criar um dataset, mas (provavelmente fiz errado) porém quando puxo o dataset ele manda na tela todos os dados da tabela, sendo que eu preciso apenas o que está ativo naquele momento.

    Eu criei uma chave primária no campo "movimentação nº", onde o mesmo tem um número de ID. A minha idéia (porém não estou conseguindo como) seria pegar e jogar no relatório os dados referentes aquela ID. Se a ID 1 está ativa na tela, os dados vinculados aquela ID imprimem.

    Steffano, não sabia que dava para criar um dataset com o campos da aplicação. Pensei que era só com o banco de dados. Se puder me explicar melhor como faz com os campos da aplicação, agradeço....  


    quinta-feira, 22 de março de 2012 22:49
  • Então,

    normalmente quando eu faço eu relatório eu utilizo View do banco de dados, assim eu consigo pegar todos os campo que necessito de uma maneira mais eficiente. Quando o relatório for chamado, faça uma função para pegar as informações somente do ID selecionado, com a condição WHERE, ou em uma SelectionFormula no Crystal Reports.

    Sobre o DataSet, você pode criá-lo com as colunas que desejar. É só ir em sua Solution e adicionar um DataSet, irá abrir a tela do DataSet, após isso é só clicar com o botão direto e adicionar uma Table, e ir colocando os campos, com o nome que você quiser. 

    para utilizar o dataSet é só dar um New nele e pegar a variável P.exemplo: 

    DataSet ds = new DataSet();

    ds.NomeTable.AddNomeTableRow(

    Coluna1,

    Coluna2

    )

    acho que o básico é isso...

    • Marcado como Resposta InfoGeógrafo sábado, 24 de março de 2012 19:33
    sexta-feira, 23 de março de 2012 16:53
  • Então,

    normalmente quando eu faço eu relatório eu utilizo View do banco de dados, assim eu consigo pegar todos os campo que necessito de uma maneira mais eficiente. Quando o relatório for chamado, faça uma função para pegar as informações somente do ID selecionado, com a condição WHERE, ou em uma SelectionFormula no Crystal Reports.

    Sobre o DataSet, você pode criá-lo com as colunas que desejar. É só ir em sua Solution e adicionar um DataSet, irá abrir a tela do DataSet, após isso é só clicar com o botão direto e adicionar uma Table, e ir colocando os campos, com o nome que você quiser. 

    para utilizar o dataSet é só dar um New nele e pegar a variável P.exemplo: 

    DataSet ds = new DataSet();

    ds.NomeTable.AddNomeTableRow(

    Coluna1,

    Coluna2

    )

    acho que o básico é isso...

    Valeu Stefano, já me abriu bastante o caminho...

    Criei o dataset e organizei a consulta where como abaixo:

    SELECT        ID, NOME, TURMA_ORIGEM, TURNO_ORIGEM, TURMA_DESTINO, TURNO_DESTINO, DATA_MOV, MOTIVO
    FROM          TABELA_MOVIM
    WHERE        (ID = '2')

    Aí blza, ele me traz os dados ao report... Mas agora vem outra dificuldade: ali no where onde está o 2 logicamente ele está trabalhando só com banco de dados, mas eu precisava que ali no lugar do 2 pudesse colocar o número que estiver ativo no meu textbox naquele momento, fazendo assim com que o dataset traga pro relatório sempre os dados expostos na tela naquele momento... Tem como setar o valor do textbox para esta consulta?

    sábado, 24 de março de 2012 19:33
  • Cara, consegui retornar sempre o último no dataset, só inseri uma condição na consulta SQL. Segue

    SELECT        ID, NOME, TURMA_ORIGEM, TURNO_ORIGEM, TURMA_DESTINO, TURNO_DESTINO, DATA_MOV, MOTIVO
    FROM            TABELA_MOVIM
    WHERE        (ID = (SELECT        MAX(ID) AS Expr1      FROM            TABELA_MOVIM AS TABELA_MOVIM_1)).

    Penso que não deve ser o correto, mas já quebra meu galho a priori... O problema será quando eu quiser imprimir novamente um valor que não seja o último, mas até lá vamos estudando mais...

    Obrigado até então Stefano... E ficarei grato por mais dicas...

    sábado, 24 de março de 2012 20:27
  • faz no report do proprio VS.

    Segue um link explicando e em Portugues.

    http://csharpbrasil.com.br/csharp/criando-relatorio-com-reportviewer-em-aspnet/

    Qualquer dúvida posta ae.

    Abçs

    Rodrigo Nikitin


    Rodrigo Nikitin Marcondes

    segunda-feira, 26 de março de 2012 18:03
  • InfoGeógrafo vc poderia me da uma ajudar como fazer essa consulta where, pois estou com essa mesma dificuldade com a impressao dos dados em uma textbox

    Valeu

    segunda-feira, 2 de abril de 2012 14:19