WPF - Gerando relatórios no Crystal Reports para VS 2010 (beta)


Este artigo mostra como gerar e exibir um relatório criado na versão beta do Crystal Reports para o Visual Studio 2010 no  Windows Presentantion Foundation.(WPF).

Antes de iniciar vou reproduzir a seguir a introdução do meu artigo : Crystal Reports para o Visual Studio 2010 (versão beta)

Você sabia que o Visual Studio 2010 não virá mais com o Crystal Reports integrado e que o mesmo será disponibilizado como um download à parte ?

Calma , o  Crystal Reports continuará sendo distribuído gratuitamente para desenvolvedores da plataforma .NET e com muitas melhorias em relação a versão do VS 2008. Somente para quem distribui aplicações web usando o Crystal Reports houve mudanças no licenciamento.

Se você já tem o Visual Studio instalado e deseja gerar relatórios com o Crystal Reports preste atenção:

A página para fazer o download do Crystal Reports para o Visual Studio 2010 pode ser acessada no seguinte link: http://www.businessobjects.com/jump/xi/crvs2010/row2_default.asp

Abaixo as notas da página e os links para download:

Thank you for participating in the SAP BusinessObjects Crystal Reports, version for Visual Studio 2010 Beta Program.

Download the Beta 2 release of:   
SAP Crystal Reports, version for Visual Studio 2010
SAP Crystal Reports runtime engine for .NET Framework 4 (32-bit)
SAP Crystal Reports runtime engine for .NET Framework 4 (64-bit)
Read the
release notes.
The Support Forum for the Beta is located
here.

Note que na página aparece em destaque a mensagem:

DOWNLOAD CRYSTAL REPORTS FOR VISUAL STUDIO 2010 TODAY.  NO COSTS. NO REGISTRATION.

Para mais detalhes sobre o assunto visite o blog : http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/18490

Agora vamos mostrar como gerar um relatório em uma aplicação WPF.

1- Criando o projeto no VS 2010

Abra o VS 2010 e crie um novo projeto do tipo Crystal Reports WPF Application com o nome Wpf_CrystaReports;

Para isso no menu File->New Project , selecione o template Reporting -> Crystal Reports WPF Application e informe o nome Wpf_CrystaReports e clique em OK;

Será gerada o projeto WPF e o assistente do Crystal Reports será iniciado. O processo para gerar o relatório usando o assistente é muito simples.

Seguindo o passo a passo do assistente do Crystal Reports:

- Selecione a opção Using The Report Wizard e Standard e clique em OK;

Vamos gerar um relatório usando a tabela Products do banco de dados Northwind.mdb que no meu exemplo esta na pasta c:\dados;

Selecione a conexão com o Northwind.mdb selecione a tabela Products e clique em Next>;

Selecione os campos que deseja exibir no relatório conforme a figura abaixo e clique em Next>;

Como não vamos realizar nenhum agrupamento nem seleção de registro, clique em Next> na janela atual e na próxima janela também clique em Next>;

Para encerrar a criação do relatório clique em Finish;

Você verá a estrutura do relatório CrystalReport1.rpt exibido no descritor conforme a figura abaixo;

Agora vamos ajustar a interface do arquivo Window1.xaml conforme o leiaute da figura abaixo:

Redimensione o controle CrystalReportViewer cujo name é ReportViewer e inclua um StackPanel e um Button com Content=Imprimir e Name=btnImprimir;

O código XAML usado é o seguinte:

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:cr="clr-namespace:SAPBusinessObjects.WPF.Viewer;assembly=SAPBusinessObjects.WPF.Viewer"
    Title="WPF Crystal Report Viewer" Height="600" Width="800" >
    <Grid>
        <cr:CrystalReportsViewer Name="ReportViewer" Margin="12,57,12,12" />
        <StackPanel Height="41" HorizontalAlignment="Left" Margin="10,10,0,0" Name="StackPanel1" VerticalAlignment="Top" Width="200">
            <Button Content="Imprimir" Height="43" Name="btnImprimir" Width="196" FontSize="14" />
        </StackPanel>
    </Grid>
</Window>

 

A seguir na code-behind do arquivo Window1.xaml.vb inclua o seguinte código:

Defina os namespaces:

Imports CrystalDecisions.Shared
Imports
CrystalDecisions.CrystalReports.Engine

E no evento Click do botão de comando inclua o seguinte código:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

   Dim report As New ReportDocument()
   report.Load(
"C:\Users\vb\CrystalReport1.rpt")
   ReportViewer.ViewerCore.ReportSource = report

End Sub

No código criamos uma instância da classe ReportDocument,  esta classe é a classe base para todos os relatórios, onde cada relatório é uma classe que herda da classe ReportDocument.

Para visualizar o relatório usamos o controle CrystalReportViewer onde a sua propriedade ReportSource define a fonte do relatório a exibir.

Obs: Observe que estamos usando a propriedade ViewerCore no WPF.

Agora basta executar o projeto e clicar no botão Imprimir para exibir o relatório no formulário WPF:

Simples, simples assim...

Eu sei é apenas WPF e Crystal Reports, mas eu gosto...

Pegue o projeto completo aqui: WPF_Crystal.zip

Referências:

José Carlos Macoratti