You are on page 1of 11

20/05/13

C# - Crystal Reports - Usando mltiplas tabelas

C# - Crystal Reports - Usando mltiplas tabelas


Neste artigo vamos criar um relatrio usando o Crystal Reports, o Visual Studio 2010 e a linguagem C#. Na seo Crystal Reports do site Macoratti .net existem muitos artigos introdutrios sobre o assunto, e, se voc esta comeando a usar o Crystal Reports sugiro que verifique primeiro os artigos desta seo. Os recursos necessrios para reproduzir o relatrio criado neste artigo so: Visual Studio 2010 ( qualquer verso) Crystal Reports for VS 2010 SQL Server 2008 Express Edition (verifique a verso 32 ou 64 bits) Estando os componentes acima instalados e devidamente configurados vamos ao trabalho.

Criando um relatrio com mltiplas tabelas


Vamos criar um banco de dados no SQL Server e 3 tabelas que sero usadas como exemplo para criar o nosso relatrio. Existem muitas formas de criar um banco de dados no SQL Server e neste exemplo eu vou usar o Server Explorer. Abrindo o Visual Studio 2010 e ativando a visualizao da janela Server Explorer voc ver uma relao com as conexes e os banco de dados SQL Server existentes; Clique com o boto direito sobre o item Data Connections e a seguir clique em Create New SQL Server DataBase;

A seguir informe o nome do seu servidor SQL Server local e o nome do banco de dados e clique em OK;

www.macoratti.net/13/01/c_crpt1.htm

1/11

20/05/13

C# - Crystal Reports - Usando mltiplas tabelas

O banco de dados ser criado e exibido na janela Server Explorer. Vamos agora criar 3 tabelas: 1. Produtos 2. Pedidos 3. PedidoDetalhes Clique com o boto direito sobre o item Tables e a seguir em Add New Table e a seguir defina o nome do campo, o seu tipo de dados e informe se ele suporta valores null ou no; Crie cada uma das tabelas com os respectivos campos conforme mostra a figura abaixo:

Os campos produtoId, pedidoId e pedidosDetalhesId so chaves primrias do tipo Identity. Abaixo vemos os relacionamentos entre as tabelas:

Preencha as tabelas com alguns dados para exibio nos relatrios. Criando o projeto no Visual Studio 2010 No menu Project clique em New Project e a seguir selecione o template Visual C# -> Windows -> Windows Forms Application e informe o nome Crystal_MultiplasTabelas e clique no boto OK; No menu Project clique em Add New Item; Selecione Reporting e escolha Crystal Reports informando o nome RelatoriosMultiplasTabelas e clique no boto Add;

www.macoratti.net/13/01/c_crpt1.htm

2/11

20/05/13

C# - Crystal Reports - Usando mltiplas tabelas

O assistente para criao de relatrio do Crystal ir aparecer marque a opo - Utilizando o Assistente para Relatrio e clique em OK;

Clique em Criar Nova Conexo e a seguir clique em OLE DB (ADO);

www.macoratti.net/13/01/c_crpt1.htm

3/11

20/05/13

C# - Crystal Reports - Usando mltiplas tabelas

Na janela OLE DB (ADO) selecione o provedor MIcrosoft OLE DB for SQL Server e clique Avanar:

Informe o nome do seu servidor SQL Server local. Na figura o nome informado refere-se ao meu servidor SQL Server; Informe tambm o banco de dados que criamos anteriormente e marque a opo Segurana Integrada e clique em Avanar:

www.macoratti.net/13/01/c_crpt1.htm

4/11

20/05/13

C# - Crystal Reports - Usando mltiplas tabelas

Na prxima janela Clique em Avanar; Expanda o itens Vendas -> Tabelas e verifique as tabelas que criamos sendo exibidas;

Selecione as trs tabelas e clique no boto > para que as tabelas apaream na lista de Tabelas Selecionadas:

www.macoratti.net/13/01/c_crpt1.htm

5/11

20/05/13

C# - Crystal Reports - Usando mltiplas tabelas

Clique no boto Avanar e visualize os relacionamentos entre as tabelas:

Clique em Avanar e expanda cada uma das tabelas de modo a visualizar os seus campos: A seguir selecione os campos indicados na lista Campos disponveis e clique no boto > para que apaream na lista - Campos a serem Exibidos;

www.macoratti.net/13/01/c_crpt1.htm

6/11

20/05/13

C# - Crystal Reports - Usando mltiplas tabelas

Clique no boto Concluir para visualizar o relatrio ainda no modo de design:

Clicando na guia Main Report Preview podemos visualizar o relatrio criado com a ajuda do Assistente:

www.macoratti.net/13/01/c_crpt1.htm

7/11

20/05/13

C# - Crystal Reports - Usando mltiplas tabelas

Podemos ajustar os ttulos de cada campo exibido no relatrio clicando com o boto direito do mouse sobre o campo e selecionando a opo Edit Text Object e a seguir alterando o texto conforme desejado:

Ajustando os nomes de cada ttulo teremos o seguinte relatrio:

Na guia lateral a ToolBox disponibiliza alguns objetos Crystal Reports que podemos usar para incrementar o relatrio:

www.macoratti.net/13/01/c_crpt1.htm

8/11

20/05/13

C# - Crystal Reports - Usando mltiplas tabelas

Exibindo o relatrio criado na aplicao Windows Forms


Vamos abrir o formulrio form1.cs da aplicao para exibir o relatrio criado. Para isso abra a ToolBox e na guia Crystal Reports selecione o item CrystalReportViewer e arraste para o formulrio form1.cs:

Ajuste o componente no formulrio e inclua tambm um boto de comando a partir da ToolBox:

Agora vamos definir o cdigo do formulrio e do evento Click do boto de comando Exibir Relatrio conforme abaixo: using System; using System.Windows.Forms; using CrystalDecisions.CrystalReports.Engine; namespace Crystal_MultiplasTabelas {
www.macoratti.net/13/01/c_crpt1.htm 9/11

20/05/13

C# - Crystal Reports - Usando mltiplas tabelas

public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnExibirRelatorio_Click(object sender, EventArgs e) { try { ReportDocument cryRpt = new ReportDocument(); string path_ = System.AppDomain.CurrentDomain.BaseDirectory; ////@"C:\Users\Mac\Documents\Visual Studio 2010\Projects\Crystal_MultiplasTabelas\Crystal_MultiplasTabelas\RelatoriosMultiplasTabelas.rpt"; string caminho = path_ + "RelatoriosMultiplasTabelas.rpt"; cryRpt.Load(caminho); crystalReportViewer1.ReportSource = cryRpt; crystalReportViewer1.Refresh(); } catch (Exception ex) { MessageBox.Show(ex.Message + "\n" + ex.InnerException.ToString()); } } } } Usamos a referncia ao namespace CrystalDecisions.CrystalReports.Engine; Criamos um novo objeto ReportDocument(): ReportDocument cryRpt = new ReportDocument(); Definimos o caminho do relatrio: string caminho = path_ + "RelatoriosMultiplasTabelas.rpt"; O relatrio ser exibido conforme abaixo:

Pegue o projeto completo aqui:

RelatoriosMultiplasTabelas.zip

Jo 14:6 Respondeu-lhe Jesus: Eu sou o caminho, e a verdade, e a vida; ningum vem ao Pai, seno por mim. Jo 12:46 Eu, que sou a luz, vim ao mundo, para que todo aquele que cr em mim no permanea nas trevas. Jo 10:9 Eu sou a porta; se algum entrar a casa; o filho fica entrar e sair, e achar pastagens. Jo 6:35 Declarou-lhes Jesus. Eu sou o po da vida; aquele que vem a mim, de modo algum ter fome, e quem cr em mim jamais ter sede. Jo_15:1 Eu sou a videira verdadeira, e meu Pai o viticultor. Jo 10:11 Eu sou o bom pastor; o bom pastor d a sua vida pelas ovelhas. Jo_13:13 Vs me chamais Mestre e Senhor; e dizeis bem, porque eu o sou. Jo 10:14 Eu sou o bom pastor; conheo as minhas ovelhas, e elas me conhecem, Jo 10:15 assim como o Pai me conhece e eu conheo o Pai; e dou a minha vida pelas ovelhas. Jo 11:25 Declarou-lhe Jesus: Eu sou a ressurreio e a vida; quem cr em mim, ainda que morra, viver;
Referncias:
www.macoratti.net/13/01/c_crpt1.htm 10/11

20/05/13

C# - Crystal Reports - Usando mltiplas tabelas

Seo VB .NET do Site Macoratti.net Super DVD .NET - A sua porta de entrada na plataforma .NET Super DVD Vdeo Aulas - Vdeo Aula sobre VB .NET, ASP .NET e C# Seo C# do site Macoratti.net Seo Crystal Reports do Site - Macoratti.net Crystal Reports para o Visual Studio 2010 - Macoratti.net WPF - Gerando relatrios no Crystal Reports 10 (beta)
Jos Carlos Macoratti

www.macoratti.net/13/01/c_crpt1.htm

11/11

You might also like