André Alves de Lima

Talking about Software Development and more…

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/

Newsletter do André Lima

* indicates required



Powered by MailChimp

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *