Você está na página 1de 11

20/05/13

20/05/13 C# - Crystal Reports - Usando múltiplas tabelas C# - Crystal Reports - Usando múltiplas

C# - Crystal Reports - Usando múltiplas tabelas

C# - Crystal Reports - Usando múltiplas tabelas

Neste artigo vamos criar um relatório usando o Crystal Reports, o Visual Studio 2010 e a linguagem C#.

Na seção Crystal Reports do site Macoratti .net existem muitos artigos introdutórios sobre o assunto, e, se você esta começando a usar o Crystal Reports sugiro que verifique primeiro os artigos desta seção.

Os recursos necessários para reproduzir o relatório criado neste artigo são:

SQL Server 2008 Express Edition (verifique a versão 32 ou 64 bits) SQL Server 2008 Express Edition (verifique a versão 32 ou 64 bits)

Estando os componentes acima instalados e devidamente configurados vamos ao trabalho.

Criando um relatório com múltiplas tabelas

Vamos criar um banco de dados no SQL Server e 3 tabelas que serão usadas como exemplo para criar o nosso relatório.

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 visualização da janela Server Explorer você verá uma relação com as conexões e os banco de dados SQL Server existentes;

Clique com o botão direito sobre o item Data Connections e a seguir clique em Create New SQL Server DataBase;

e a seguir clique em Create New SQL Server DataBase; A seguir informe o nome do

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

do seu servidor SQL Server local e o nome do banco de dados e clique em

20/05/13

20/05/13 C# - Crystal Reports - Usando múltiplas tabelas O banco de dados será criado e

C# - Crystal Reports - Usando múltiplas 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 botão 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 não;

Crie cada uma das tabelas com os respectivos campos conforme mostra a figura abaixo:

com os respectivos campos conforme mostra a figura abaixo: Os campos produtoId, pedidoId e pedidosDetalhesId são

Os campos produtoId, pedidoId e pedidosDetalhesId são chaves primárias do tipo Identity.

Abaixo vemos os relacionamentos entre as tabelas:

Identity . Abaixo vemos os relacionamentos entre as tabelas: Preencha as tabelas com alguns dados para

Preencha as tabelas com alguns dados para exibição nos relatórios.

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 botão OK;

No menu Project clique em Add New Item;

Selecione Reporting e escolha Crystal Reports informando o nome RelatoriosMultiplasTabelas e clique no botão Add;

informando o nome RelatoriosMultiplasTabelas e clique no botão Add ; www.macoratti.net/13/01/c_crpt1.htm 2/11

20/05/13

C# - Crystal Reports - Usando múltiplas tabelas

20/05/13 C# - Crystal Reports - Usando múltiplas tabelas O assistente para criação de relatório do

O assistente para criação de relatório do Crystal irá aparecer marque a opção - Utilizando o Assistente para Relatório e clique em OK;

- Utilizando o Assistente para Relatório e clique em OK; Clique em Criar Nova Conexão e

Clique em Criar Nova Conexão e a seguir clique em OLE DB (ADO);

em OK; Clique em Criar Nova Conexão e a seguir clique em OLE DB (ADO); www.macoratti.net/13/01/c_crpt1.htm

20/05/13

C# - Crystal Reports - Usando múltiplas tabelas

20/05/13 C# - Crystal Reports - Usando múltiplas tabelas Na janela OLE DB (ADO) selecione o

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

MIcrosoft OLE DB for SQL Server e clique Avançar : Informe o nome do seu servidor

Informe o nome do seu servidor SQL Server local. Na figura o nome informado refere-se ao meu servidor SQL Server;

Informe também o banco de dados que criamos anteriormente e marque a opção Segurança Integrada e clique em Avançar:

anteriormente e marque a opção Segurança Integrada e clique em Avançar : www.macoratti.net/13/01/c_crpt1.htm 4/11

20/05/13

C# - Crystal Reports - Usando múltiplas tabelas

20/05/13 C# - Crystal Reports - Usando múltiplas tabelas Na próxima janela Clique em Avançar ;

Na próxima janela Clique em Avançar;

Expanda o itens Vendas -> Tabelas e verifique as tabelas que criamos sendo exibidas;

Tabelas e verifique as tabelas que criamos sendo exibidas; Selecione as três tabelas e clique no

Selecione as três tabelas e clique no botão > para que as tabelas apareçam na lista de Tabelas Selecionadas:

botão > para que as tabelas apareçam na lista de Tabelas Selecionadas: www.macoratti.net/13/01/c_crpt1.htm 5/11

20/05/13

C# - Crystal Reports - Usando múltiplas tabelas

20/05/13 C# - Crystal Reports - Usando múltiplas tabelas Clique no botão Avançar e visualize os

Clique no botão Avançar e visualize os relacionamentos entre as tabelas:

Avançar e visualize os relacionamentos entre as tabelas: Clique em Avançar e expanda cada uma das

Clique em Avançar e expanda cada uma das tabelas de modo a visualizar os seus campos:

A seguir selecione os campos indicados na lista Campos disponíveis e clique no botão > para que apareçam na lista - Campos a serem Exibidos;

no botão > para que apareçam na lista - Campos a serem Exibidos ; www.macoratti.net/13/01/c_crpt1.htm 6/11

20/05/13

C# - Crystal Reports - Usando múltiplas tabelas

20/05/13 C# - Crystal Reports - Usando múltiplas tabelas Clique no botão Concluir para visualizar o

Clique no botão Concluir para visualizar o relatório ainda no modo de design:

para visualizar o relatório ainda no modo de design: Clicando na guia Main Report Preview podemos

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

Preview podemos visualizar o relatório criado com a ajuda do Assistente: www.macoratti.net/13/01/c_crpt1.htm 7/11

20/05/13

C# - Crystal Reports - Usando múltiplas tabelas

20/05/13 C# - Crystal Reports - Usando múltiplas tabelas Podemos ajustar os títulos de cada campo

Podemos ajustar os títulos de cada campo exibido no relatório clicando com o botão direito do mouse sobre o campo e selecionando a opção Edit Text Object e a seguir alterando o texto conforme desejado:

Text Object e a seguir alterando o texto conforme desejado: Ajustando os nomes de cada título

Ajustando os nomes de cada título teremos o seguinte relatório:

os nomes de cada título teremos o seguinte relatório: Na guia lateral a ToolBox disponibiliza alguns

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

20/05/13

20/05/13 C# - Crystal Reports - Usando múltiplas tabelas Exibindo o relatório criado na aplicação Windows

C# - Crystal Reports - Usando múltiplas tabelas

Exibindo o relatório criado na aplicação Windows Forms

Vamos abrir o formulário form1.cs da aplicação para exibir o relatório criado.

Para isso abra a ToolBox e na guia Crystal Reports selecione o item CrystalReportViewer e arraste para o formulário form1.cs:

e arraste para o formulário form1.cs : Ajuste o componente no formulário e inclua também um

Ajuste o componente no formulário e inclua também um botão de comando a partir da ToolBox:

e inclua também um botão de comando a partir da ToolBox : Agora vamos definir o

Agora vamos definir o código do formulário e do evento Click do botão de comando Exibir Relatório conforme abaixo:

using System; using System.Windows.Forms; using CrystalDecisions.CrystalReports.Engine;

namespace Crystal_MultiplasTabelas

{

20/05/13

public partial class Form1 : Form

C# - Crystal Reports - Usando múltiplas tabelas

{

 

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 referência ao namespace CrystalDecisions.CrystalReports.Engine;

Criamos um novo objeto ReportDocument(): ReportDocument cryRpt = new ReportDocument();

Definimos o caminho do relatório: string caminho = path_ + "RelatoriosMultiplasTabelas.rpt";

O relatório será exibido conforme abaixo:

O relatório será exibido conforme abaixo: Pegue o projeto completo aqui: RelatoriosMultiplasTabelas

Pegue o projeto completo aqui:

exibido conforme abaixo: Pegue o projeto completo aqui: RelatoriosMultiplasTabelas .zip Joã 14:6 Respondeu-lhe

Joã 14:6 Respondeu-lhe Jesus: Eu sou o caminho, e a verdade, e a vida; ninguém vem ao Pai, senão por mim. Joã 12:46 Eu, que sou a luz, vim ao mundo, para que todo aquele que crê em mim não permaneça nas trevas. Joã 10:9 Eu sou a porta; se alguém entrar a casa; o filho fica entrará e sairá, e achará pastagens. Joã 6:35 Declarou-lhes Jesus. Eu sou o pão 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 Vós me chamais Mestre e Senhor; e dizeis bem, porque eu o sou. Joã 10:14 Eu sou o bom pastor; conheço as minhas ovelhas, e elas me conhecem, Joã 10:15 assim como o Pai me conhece e eu conheço o Pai; e dou a minha vida pelas ovelhas. Joã 11:25 Declarou-lhe Jesus: Eu sou a ressurreição e a vida; quem crê em mim, ainda que morra, viverá;

Referências: