c# - crystal reports - usando múltiplas tabelas

11
20/05/13 C# - Crystal Reports - Usando múltiplas tabelas www.macoratti.net/13/01/c_crpt1.htm 1/11 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: Visual Studio 2010 ( qualquer versão) Crystal Reports for VS 2010 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; A seguir informe o nome do seu servidor SQL Server local e o nome do banco de dados e clique em OK;

Upload: walter-angolar-da-silva

Post on 04-Jan-2016

201 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: C# - Crystal Reports - Usando múltiplas tabelas

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

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

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:

Visual Studio 2010 ( qualquer versão)

Crystal Reports for VS 2010

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;

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

Page 2: C# - Crystal Reports - Usando múltiplas tabelas

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

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

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:

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

Abaixo vemos os relacionamentos entre as tabelas:

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;

Page 3: C# - Crystal Reports - Usando múltiplas tabelas

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

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

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;

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

Page 4: C# - Crystal Reports - Usando múltiplas tabelas

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

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

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

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:

Page 5: C# - Crystal Reports - Usando múltiplas tabelas

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

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

Na próxima janela Clique em Avançar;

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

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

Page 6: C# - Crystal Reports - Usando múltiplas tabelas

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

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

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

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;

Page 7: C# - Crystal Reports - Usando múltiplas tabelas

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

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

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

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

Page 8: C# - Crystal Reports - Usando múltiplas tabelas

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

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

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:

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

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

Page 9: C# - Crystal Reports - Usando múltiplas tabelas

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

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

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:

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

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

{

Page 10: C# - Crystal Reports - Usando múltiplas tabelas

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

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

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 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:

Pegue o projeto completo aqui: RelatoriosMultiplasTabelas.zip

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:

Page 11: C# - Crystal Reports - Usando múltiplas tabelas

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

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

Seção VB .NET do Site Macoratti.netSuper DVD .NET - A sua porta de entrada na plataforma .NET

Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#

Seção C# do site Macoratti.net

Seção Crystal Reports do Site - Macoratti.net

Crystal Reports para o Visual Studio 2010 - Macoratti.net

WPF - Gerando relatórios no Crystal Reports 10 (beta)

José Carlos Macoratti