Exportando documentos em Crystal Reports .NET

Veja nesse artigo como exportar um relatório em Crystal Reports para um arquivo de formato .doc, .xls ou mesmo .PDF.

Frequentemente no desenvolvimento de nossas aplicações nos deparamos com a seguinte situação: como exportar um relatório em Crystal Reports para um arquivo de formato .DOC, .XLS ou mesmo .PDF? O objetivo do artigo é demonstrar o recurso de exportação para alguns tipos de arquivos do Crystal Reports .NET, adicionando à aplicação recursos para que o usuário consiga gerar um arquivo em um determinado formato e imprimi-lo.

Com um projeto criado e uma base de dados que será utilizada para alimentar o relatório, vamos inserir três botões em nossa aplicação, conforme a Figura 1.

Figura 1. Formulário da Aplicação Exemplo

Cada botão será responsável por exportar o relatório em um formato especifico. No modo de código, vamos definir uma nova função chamada ExportarDocumento, como mostra a Listagem 1.

public Function ExportarDocumento(ByVal tipoFormato As Integer) As Boolean Dim CrExportOptions As [Shared].ExportOptions Dim CrDiskFileDestinationOptions As New [Shared].DiskFileDestinationOptions() Dim CrFormatTypeOptions As New [Shared].PdfRtfWordFormatOptions() Dim crystalReport1 As New CrystalReport1 CrExportOptions = crystalReport1.ExportOptions crystalReport1.SetDatabaseLogon("sa", "ilheus10") With CrExportOptions .ExportDestinationType = [Shared].ExportDestinationType.DiskFile 'rtf If tipoFormato = 1 Then CrDiskFileDestinationOptions.DiskFileName = "C:\documento.doc" .ExportFormatType = [Shared].ExportFormatType.RichText 'pdf ElseIf tipoFormato = 2 Then CrDiskFileDestinationOptions.DiskFileName = "C:\documento.pdf" .ExportFormatType = [Shared].ExportFormatType.PortableDocFormat ElseIf tipoFormato = 3 Then CrDiskFileDestinationOptions.DiskFileName = "C:\documento.xls" .ExportFormatType = [Shared].ExportFormatType.Excel End If .FormatOptions = CrFormatTypeOptions .DestinationOptions = CrDiskFileDestinationOptions End With Try crystalReport1.Export() Return True Catch err As Exception Return False End Try End Function
Listagem 1. Código da função ExportarDocumento

Antes de iniciar o código da função ExportarDocumento devemos importar a namespace para manipular o CrystalReports:

Imports CrystalDecisions

O objeto ExportOptions é responsável por determinar como e para onde o arquivo será exportado e recebe duas propriedades para exportação: o CrDiskFileDestinationOptions e o ExportFormatType. O primeiro determina onde o arquivo será exportado (no nosso exemplo estamos exportando para a unidade C:\ ) e com qual nome. Já o segundo informa o tipo de arquivo a ser exportado, que dependerá do parâmetro especificado na função: 1 – RTF , 2 – PDF , 3 – XLS .

Por últim,o escreveremos o código para o evento click dos botões que serão responsáveis por exportar os relatórios conforme a Listagem 2.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If ExportarDocumento(2) = True Then MsgBox("Documento exportado para C:\documento.pdf") Else MsgBox("Erro ao exportar o documento") End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If ExportarDocumento(1) = True Then MsgBox("Documento exportado para C:\documento.rtf") Else MsgBox("Erro ao exportar o documento") End If End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If ExportarDocumento(3) = True Then MsgBox("Documento exportado para C:\documento.xls") Else MsgBox("Erro ao exportar o documento") End If End Sub
Listagem 2. Evento Click< dos botões

Execute sua aplicação e veja o resultado é como o da Figura 2.

Figura 2. Documentos Exportados

Artigos relacionados