Jump to content
eduardohaag

[Resolvido] Impressão de um datagridview

Recommended Posts

Olá, sou autodidata e amador na área da programação, muito do que sei, é feito pelo modo feito na raça com linhas e linhas de códigos.

Hoje trabalhando em um novo projeto me deparei com uma situação que nunca me ocorreu, imprimir um relatório.

No meu projeto tenho um form onde possui um datagridview onde é apresentada uma lista de produtos e alguns textbox que permite eu filtrar os dados apresentados, esse filtro é realizado utilizando comando direto na query, ou seja pra cada caso tenho uma query diferente.

Até ai  tudo bem, o problema que agora preciso imprimir os dados que tenho no datagridview, e não tenho a menor ideia de como fazer isso.

Alguém saberia me dizer como posso fazer? 

Share this post


Link to post
Share on other sites

Pelo que percebi eu teria de buscar novamente as informações no banco de dados, achei que talvez seria possível imprimir direto do formulário sem abrir novamente o banco de dados.

Share this post


Link to post
Share on other sites

Bom estudando um pouco do Reportviewer, acho que cheguei próximo a solução, talvez não da forma correta, mas de uma forma que possa funcionar.

Consigo preencher o reportviewer através de um dataset, logo criei manualmente um novo dataset no meu projeto com uma datatable que possui os mesmos campos do meu datagridview.

 

A questão agora é, como posso fazer para preencher o datatable com os dados do datagridview dentro do evento click do botão imprimir?

Share this post


Link to post
Share on other sites
Em 05/07/2017 at 04:34, quintelab disse:

Eu preencheria o dataset no mesmo momento que preenche o datatable. Assim quando quiser imprimir o relatório já terá os dados que precisa.

Fiz isso como você falou, não sei como não pensei nisso antes rsrsr.

Muito obrigado

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Roberto S. Santos
      Boa noite amigos programadores.
      Como posso salvar os dados do tracker.dat no MySQL ?
      Dados : textbox1.text
      Estou usando vb.net 
      Queria uma tabela no MySQL usando o Wamp .
      Poderiam me ajudar ?
      Obrigado.
    • By rl28
      Bom dia,
       
      Estou querendo ler todos arquivos que meu sistema gerou na minha máquina no formato .txt e carregar os mesmos em uma gridview, assim deixando apenas uma tela de consulta dos dados salvos nos arquivos txt, porém, meu código não está conseguindo consultar os arquivos, podem me ajudar?
       
      Obs.: Quando utilizo o nome fixo do arquivo, funciona.
       
      Código abaixo:

       
      Public Class formListaTransacao Private Sub formListaTransacao_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim dt As New DataTable dt.Columns.Add("Código") dt.Columns.Add("Descrição") dt.Columns.Add("Ação") Dim Arquivo As New System.IO.StreamReader("C:\Users\rl\Desktop\" & Me.Text & ".txt", System.Text.Encoding.Default) While Arquivo.Peek() <> -1 dt.Rows.Add(Arquivo.ReadLine()) End While DataGridView2.DataSource = dt End Sub  
      Tela do gridview:

       
      Informação que consta no txt e que deve carregar no gridview:
       
      Primeiro arquivo

       
      Segundo arquivo:

    • By Joelend
      Estou enviando impressões diretamente para o spool da impressora: 

      WritePrinter(HandleImp, PAnsiChar(ComandoAnsiString), Length(ComandoAnsiString), CaracteresImpressos); 

      Na maioria dos casos isso supre minha necessidade. 

      Minha duvida é a respeito dos comandos que exigem uma resposta da impressora: Ler status. 
      Vi sobre o ReadPrinter...mas não consegui utiliza-lo.
    • By Gustavo_bmoraes
      Boa tarde brothers. 
       
      Queria saber qual a melhor configuração que vocês usam no painel de controle da NVIDIA para a cor ficar mais proxima da realidade da impressão. Trabalho muito fazendo artes para serem impressas e as vezes a tonalidade muda muito. Qual o esquema que vocês usam ? Meu monitor é um ACER V246HL e a placa de video que uso uma GTX 1050 Ti Ge force. 
    • By eduardohaag
      Olá,
      Mais uma vez aqui estou eu com uma duvida que não estou conseguindo resolver.
      Estou desenvolvendo um ERP para a grafica da minha esposa. Nesse sistema existe um modulo que registra o tempo trabalhado.
      Para fazer isso existe um botão no formulário principal, que quando é clicado salva a hora na variável entrada, e quando clicado novamente ele registra no banco de dados o intervalo entre a entrada e saida.
      Até ai tudo ok. Porém as vezes a pessoa sai e esquece de clicar para registrar a saida.
       
      Então gostaria de fazer com que a cada 5 minutos fosse verificado se teve alteração na posição do ponteiro do mouse, porém permitindo que o usuário possa usar o programa.
       
      Procurando na internet descobri que para isso o melhor seria usar uma thread para fazer essa verificação da posição do mouse em segundo plano já que seria executado a cada 5 minutos e dessa forma travaria a execução do form principal.
       
      O problema está que quando ele detecta que mouse ficou parado por mais de 5 minutos e executa o codigo que salvo o intervalo no banco de dados acontece esse erro quando chega na linha "btEntrada.Text = "Registrar Entrada"" : "System.InvalidOperationException: 'Operação entre threads inválida: controle 'ToolStrip1' acessado de um thread que não é aquele no qual foi criado.'
       
      Li que tenho que usar algo como invoke e delegate, mas mesmo estudando não consegui entender como implementar.
      meu codigo é o seguinte:
       
      Imports System.ComponentModel Public Class Principal_content Dim saida As DateTime Dim tempo As TimeSpan Dim entrada As DateTime Dim ponteiro As Point Sub GerPonto() Do Threading.Thread.Sleep(5000) If ponteiro = Cursor.Position Then Call registraponto() End If ponteiro = Cursor.Position Loop End Sub Private Sub btEntrada_Click(sender As Object, e As EventArgs) Handles btEntrada.Click Call registraponto End Sub Sub registraponto() Dim trd = New Threading.Thread(AddressOf GerPonto) If btEntrada.Text = "Registrar Entrada" Then entrada = FormatDateTime(Now) btEntrada.Text = "Registrar Saida" btEntrada.ToolTipText = "Registrar Saida" btEntrada.Image = My.Resources.appointment_new_Ativo btEntrada.ForeColor = Color.Lime trd.Start() Else trd.Abort() saida = Now tempo = saida.Subtract(entrada) sql = "INSERT INTO ponto (Data, Entrada, Saida, Segundos) VALUES (#" & Format(entrada, "MM/dd/yyyy") & "#, #" & Format(entrada, "hh:mm:ss") & "#, #" & Format(saida, "hh:mm:ss") & "#, " & Replace(FormatNumber(tempo.TotalSeconds, 0, TriState.False, TriState.False, TriState.False), ",", ".") & ")" btEntrada.Text = "Registrar Entrada" btEntrada.Text = "Registrar Entrada" btEntrada.Image = My.Resources.appointment_new_desativo btEntrada.ForeColor = Color.Red AcessoDB.ExecutarComando(sql, CommandType.Text, Nothing, AcessoDB.TipoDeComando.ExecuteNonQuey) End If End Sub End Class  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.