6 12 2017
Imprimindo direto na impressora com o Crystal Reports
Atendendo a pedidos, hoje eu vou abordar um dos assuntos que foram escolhidos na minha última pesquisa de temas para artigos: impressão direta com o Crystal Reports! Ao contrário do que vimos algumas semanas atrás com o Report Viewer, a impressão direta no Crystal Reports é bem simples. Uma vez criada a instância de ReportDocument, nós podemos facilmente implementar essa funcionalidade através do método “PrintToPrinter“. Quer saber detalhes de como imprimir direto na impressora com o Crystal Reports? Então assiste o vídeo abaixo:
Como podemos conferir no vídeo, a primeira coisa que precisamos para imprimirmos direto na impressora com o Crystal Reports é uma instância de “ReportDocument“. Caso você não esteja trabalhando com os relatórios diretamente anexados ao seu projeto, você pode criar uma instância dessa classe e depois chamar o método “Load” para carregar o arquivo “.rpt” de onde você quiser:
// C# using (var relatorio = new ReportDocument()) { relatorio.Load("caminhoDoRelatorio"); }
' VB.NET Using Relatorio = New ReportDocument() Relatorio.Load("CaminhoDoRelatorio") End Using
Por outro lado, se você estiver trabalhando com os relatórios anexados ao projeto, basta criar uma instância dele dentro de um bloco “using“. Uma vez criada a instância e configurado o DataSource do relatório, nós podemos chamar o método “PrintToPrinter“, que deverá receber as configurações da impressora e página.
Caso você já tenha uma instância de “PrinterSettings” propriamente configurada em algum lugar da sua aplicação, basta utilizá-la. Caso contrário, nós podemos exibir um diálogo onde o usuário escolherá qual impressora deverá ser utilizada (PrintDialog). Veja como é que fica o código final:
// C# using (var relatorio = new RelatorioProduto()) { var ds = new DataSetProduto(); ds.Produto.AddProdutoRow("Produto 1", 1.55m); ds.Produto.AddProdutoRow("Produto 2", 2.35m); ds.Produto.AddProdutoRow("Produto 3", 3.45m); ds.Produto.AddProdutoRow("Produto 4", 4.75m); ds.Produto.AddProdutoRow("Produto 5", 5.95m); relatorio.SetDataSource(ds); using (var dialogo = new PrintDialog()) { if (dialogo.ShowDialog() == DialogResult.OK) { relatorio.PrintToPrinter(dialogo.PrinterSettings, dialogo.PrinterSettings.DefaultPageSettings, false); } } }
' VB.NET Using Relatorio = New RelatorioProduto() Dim Ds = New DataSetProduto() Ds.Produto.AddProdutoRow("Produto 1", 1.55D) ds.Produto.AddProdutoRow("Produto 2", 2.35D) ds.Produto.AddProdutoRow("Produto 3", 3.45D) ds.Produto.AddProdutoRow("Produto 4", 4.75D) ds.Produto.AddProdutoRow("Produto 5", 5.95D) Relatorio.SetDataSource(ds) Using Dialogo = New PrintDialog() If Dialogo.ShowDialog() = DialogResult.OK Then Relatorio.PrintToPrinter(Dialogo.PrinterSettings, Dialogo.PrinterSettings.DefaultPageSettings, False) End If End Using End Using
Pronto! E com esse código super-simples nós conseguimos imprimir direto na impressora com o Crystal Reports!
Baixe o projeto de exemplo
Para baixar o projeto de exemplo desse artigo, assine a minha newsletter. Ao fazer isso, além de ter acesso ao projeto, você receberá um e-mail toda semana sobre o artigo publicado e ficará sabendo também em primeira mão sobre o artigo da próxima semana, além de receber dicas “bônus” que eu só compartilho por e-mail. Inscreva-se utilizando o formulário no final do artigo.
Concluindo
No vídeo de hoje você aprendeu a imprimir relatórios direto na impressora com o Crystal Reports. Nesse caso, nós não precisamos fazer nenhuma gambiarra. Basta utilizarmos o método “PrintToPrinter” passando os parâmetros necessários e pronto! O relatório sairá impresso direto na impressora. Espero que você tenha gostado.
Até a próxima!
André Lima
Photo by Pixabay used under Creative Commons
https://pixabay.com/en/startup-start-up-notebooks-creative-593327/
Song Rocket Power Kevin MacLeod (incompetech.com)
Licensed under Creative Commons: By Attribution 3.0 License
http://creativecommons.org/licenses/by/3.0/
Aplicações Android com Xamarin – parte 7 de N – SQLite no Xamarin Android Aprendendo Entity Framework – Parte 1 de N – Introdução ao Entity Framework