crystal reports_ criando relatórios com sap

43
28/03/14 Crystal Reports: Criando relatórios com SAP www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 1/43 www.devmedia.com.br [versão para impressão] Link original: http://www.devmedia.com.br/articles/viewcomp.asp?comp=29700 Crystal Reports: Criando relatórios com SAP Este artigo é útil para os desenvolvedores de software iniciantes e avançados que desejam apreender e aprimorar suas habilidades e conhecimentos na geração de relatórios sofisticados, de forma rápida e fácil. Fique por dentro Este artigo é útil para os desenvolvedores de software iniciantes e avançados que desejam apreender e aprimorar suas habilidades e conhecimentos na geração de relatórios sofisticados, de forma rápida e fácil, com a ferramenta geradora de relatórios SAP Crystal Reports e plataforma .NET. Este artigo faz uma abordagem introdutória em cima dos principais recursos da ferramenta SAP Crystal Reports, através dos recursos de seu IDE. Também será mostrado como criar relatório de listagem simples, campos calculados, subtotais, agrupamentos de campos, formatação de um relatório, relatório com parâmetro e por fim será criado um gerenciador de relatórios onde será feito uso da biblioteca de classes do SAP Crystal Reports disponível para o Visual Studio e a plataforma .NET.

Upload: felipe-matsumoto

Post on 26-Dec-2015

172 views

Category:

Documents


0 download

DESCRIPTION

tutorial para o crystal reports

TRANSCRIPT

Page 1: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 1/43

www.devmedia.com.br [versão para impressão]Link original: http://www.devmedia.com.br/articles/viewcomp.asp?comp=29700

Crystal Reports: Criando

relatórios com SAP

Este artigo é útil para os desenvolvedores de software

iniciantes e avançados que desejam apreender e aprimorar

suas habilidades e conhecimentos na geração de relatórios

sofisticados, de forma rápida e fácil.

Fique por dentro

Este artigo é útil para os desenvolvedores de software iniciantes e avançados que

desejam apreender e aprimorar suas habilidades e conhecimentos na geração de

relatórios sofisticados, de forma rápida e fácil, com a ferramenta geradora de

relatórios SAP Crystal Reports e plataforma .NET. Este artigo faz uma abordagem

introdutória em cima dos principais recursos da ferramenta SAP Crystal Reports,

através dos recursos de seu IDE. Também será mostrado como criar relatório de

listagem simples, campos calculados, subtotais, agrupamentos de campos, formatação

de um relatório, relatório com parâmetro e por fim será criado um gerenciador de

relatórios onde será feito uso da biblioteca de classes do SAP Crystal Reports

disponível para o Visual Studio e a plataforma .NET.

Page 2: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 2/43

Neste artigo falaremos de uma ferramenta muito produtiva e poderosa, o SAP Crystal

Reports, que está no mercado há bastante tempo e desde sempre teve suporte para

interagir com os principais kits de desenvolvimento de software da Microsoft. Esta

ferramenta pode ser integrada facilmente ao Visual Studio, disponibilizando um template

que permite a criação de relatório sintético e analítico dentro do próprio ambiente do

Visual Studio, podendo ser atrelado às principias aplicações desenvolvidas com Windows

Forms, WPF e websites com ASP.NET.

A ferramenta SAP Crystal Reports pode conectar-se a diversas fontes dados com uso de

providers como SQL OLE DB, ODBC e outros. A partir de diversos SGBDs como o SQL

Server, MySQL, DB2, Oracle e PostgreSQL, podemos gerar relatórios simples e

complexos com recursos para exportação em PDF, Excel, CSV, dentre outros formatos.

Durante este artigo você terá uma base teórica e prática sobre as funcionalidades da

ferramenta e posteriormente, no decorrer do assunto, faremos download do pacote SAP

Crystal Reports para o Visual Studio 2012. Também veremos exemplos práticos de como

listar dados em um relatório, agrupar campos, criar totalizadores, campos calculados,

passagem de parâmetros para filtrar dados no relatório, formatação do relatório e outras

funções importantes da ferramenta.

A parte prática conta com exemplos criados via interface gráfica do próprio SAP Crystal

Reports, onde será feito o uso da biblioteca de classes do SAP Crystal Reports disponível

para o Visual Studio e a plataforma .NET. Dessa forma temos a disponibilidade de chamar

alguns recursos do relatório via código programação com a linguagem C#, o que nos dá

mais flexibilidade para o desenvolvimento do relatório e torna a interação com o usuário

mais rica e agradável.

Para tornar mais produtivos os exemplos deste artigo, criaremos um gerenciador de

relatórios, para que à medida que formos criando os relatórios, possamos disponibilizar

os mesmos de forma fácil e prática em uma aplicação Windows Forms. Através do

gerenciador de relatórios, poderemos selecionar um dos relatórios criados e gerar o

mesmo para visualização e navegação, podendo optar por exportar em diversos

formatos através do Crystal Report Viewer.

Introdução a dados e relatório

Com o avanço da tecnologia, principalmente com novos recursos em hardware e software

que possibilita a captura e armazenamento de dados de forma rápida e dinâmica,

Page 3: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 3/43

independentemente da posição geográfica em que os dados forem transmitidos e

armazenados, o ato de transformar dados em informação para gerar conhecimento

tornou-se cada vez mais necessário, pois as empresas e organizações necessitam

guardar acontecimentos e fatos ocorridos ao longo de sua existência em repositórios de

dados, como um sistema gerenciador de banco de dados. Não necessariamente os dados

devem ser armazenados apenas em banco de dados, pois há situações em que não

haverá recursos suficientes ou disponíveis para gravar os dados de forma mais precisa

em uma base de dados. Desta forma, se faz uso de outros meios para gravar e

armazenar estes dados, como em arquivos texto e XML, levando em consideração que

em muitas situações é realmente necessário gravar dados em arquivos de deste tipo com

um layout de gravação pré-defino, para que depois possa ser feita a transmissão destes

dados via webservice ou serviços WCF (BOX 1) para uma base de dados na nuvem.

BOX 1. WCF

WCF ou Windows Communication Foundation é uma tecnologia de disponibilização

de serviço inserida na plataforma .NET a partir do framework 3.0. Trata-se de uma

solução que a Microsoft encontrou para unificar antigas tecnologias de serviços e

troca mensagens, possibilitando trabalhar com protocolos diferentes. Com o WCF

podemos construir de forma fácil e rápida aplicações distribuídas orientadas a

serviço.

A demanda por relatórios em cima da área TI, por parte dos gestores em mais diversos

níveis da hierarquia de uma empresa ou organização, está cada vez mais frequente e

crescente. Dessa forma, é preciso ter profissionais especialistas em análise de dados e

desenvolvimento de relatórios, para que se possa transmitir informação em forma de

relatório aos mais diversos setores e níveis de uma empresa.

Para criar um relatório com informação de qualidade, ou seja, informação correta, precisa

e organizada, não basta apenas jogar dados em forma de uma lista ou planilha, é

necessário seguir algumas diretrizes para preparar a informação dentro de um relatório.

Vejamos algumas boas práticas para se preparar um relatório:

· Um relatório sempre deve ser composto por um cabeçalho, corpo e rodapé.

Dependendo do relatório, o mesmo pode ter cabeçalho e rodapé de página, estas

divisões no relatório são chamadas de sessões do relatório;

Page 4: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 4/43

· No cabeçalho podemos colocar algumas informações importantes para o mesmo, como

as seguintes:

o Título e subtítulo do relatório, caso seja necessário. Como exemplo, temos como título

de um relatório: Relatório de Vendas; e subtítulo: Vendas por Cidade;

o Logomarca da empresa e nome da filial ou matriz;

o Data e hora em que o relatório foi gerado. Caso os dados sejam oriundos de base de

dados com o objetivo de BI, pode ser importante colocar a data do último sincronismo

da base de dados de BI com o banco de dados em produção;

o Login do usuário que gerou o relatório;

o Nome e versão do relatório. Neste caso seria a versão disponível na tela que se gera o

relatório, geralmente a versão é exibida em aplicações de médio e grande porte, que

seguem uma metodologia de desenvolvimento de software bem documentada, o que

torna mais fácil o controle de versões. A medida que uma aplicação cresce, surgem novas

necessidades para o software e principalmente para o desenvolvimento de novos

relatórios, dessa forma, é uma ótima ideia realizar o controle de versões para os

relatórios;

o Lista dos parâmetros informados pelo usuário no momento que gerou o relatório,

principalmente intervalos de datas, filtros e agrupamentos;

o O cabeçalho de um relatório geralmente aparece apenas na primeira página do relatório.

Caso o relatório tenha um cabeçalho de página, que é repetido em todas as páginas do

relatório, o mesmo deve conter a numeração da página;

· O corpo de um relatório é a parte mais importante do mesmo, pois é onde os dados

serão apresentados. Aqui, torna-se importante ressaltar os seguintes detalhes:

o O título de cada coluna representada no relatório deve ser compreensível. Devido ao

espaço entre as colunas ser mínimo, é recomendável fazer abreviação de palavras, porém

é de extrema importância realizar a abreviação das palavras de forma correta para que

fique claro do que se trata.

o Geralmente os títulos das colunas do relatório devem ser diferenciados, de forma a

chamar atenção de quem for analisá-lo, assim, pode ser importante colocar em negrito,

por exemplo.

Page 5: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 5/43

o Os campos que representam dados em formatos distintos, como data e moeda, devem

receber a formatação correta. Por exemplo, valores monetários devem ter duas casas

decimais (em casos em que a quantidade exata não é especificada para a situação) e a

data deve respeitar o formato dia/mês/ano (que é o formato mais comum no Brasil, a

menos que um formato específico seja solicitado).

o Os dados em um relatório podem ser analíticos e sintéticos, dessa forma, podemos

optar por realizar agrupamento de dados. Por exemplo, um relatório de vendas pode

conter dois agrupamentos, o primeiro por vendedor e segundo por área ou região em

que o mesmo realiza as vendas.

o Quando um relatório mostra valores numéricos e de moeda, é importante colocar totais

no final do relatório e subtotais para o agrupamento de uma determinada categoria.

o Relatório com agrupamento pode conter totais de contagem, ou seja, um campo que

conta a quantidade de registros em um determinado agrupamento.

o Para melhorar a visualização e a estética de um relatório, podemos colocar uma linha

para dividir partes do relatório.

o Colocar dados em formato de tabela pode ser ideal em algumas situações. O relatório

zebrado também é uma opção de destaque, ou seja, uma linha com cor de fundo e outra

sem, para poder diferenciar uma linha da outra.

· No rodapé do relatório podem ser repetidas algumas informações do cabeçalho, como a

numeração de página. Também podemos colocar algumas observações ou mensagens

para o usuário que irá analisar o relatório. É interessante colocar as informações de

contato da software house que é proprietária ou que desenvolveu o produto de software

em questão.

Conhecendo o SAP Crystal Reports

SAP Crystal Reports é uma ferramenta especializada em gerar relatórios simples ou

complexos, podendo conectar-se a diversos bancos de dados populares disponíveis no

mercado. O mesmo apresenta um IDE que facilita o desenvolvimento (valoriza o padrão

de desenvolvimento RAD – BOX 2) e o designer do relatório, para que o usuário possa

criar relatórios de forma simplificada, arrastando e soltando os componentes na área de

designer do aplicativo, podendo formatar o relatório de acordo com a necessidade.

Ao criar um novo relatório no SAP Crystal Reports, temos as seguintes possibilidades de

Page 6: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 6/43

seleção de recursos:

· Conexão com o banco ou fonte de dados;

· Seleção das tabelas que serão usadas no relatório;

· Escolha dos campos que serão usados para compor o relatório;

· Criação dos relacionamentos entre os campos das tabelas selecionadas;

· Organização das ordens dos vínculos entre as tabelas;

· Escolha de estilos predefinidos para dar uma boa apresentação no designer do

relatório;

· Seleção dos campos que devem ser agrupados no relatório;

· Ordenação crescente ou decrescente na exibição das informações por agrupamento o

sub agrupamento;

· Seleção de campos que geram resumo como somatória, média, contagem, valor

máximo, valor mínimo, dentre outras escolhas disponíveis;

· Classificação dos agrupamentos;

· Opção de inserção de gráfico no relatório com escolha do tipo de gráfico, podendo ser

em barras, linhas e setores;

· Filtro em campos com opção de seleção do valor menor, maior, igualdade, dentre outras

escolhas para filtragem de dados.

O SAP Crystal Reports também conta com um ótimo visualizador de relatório, rico em

funcionalidades, onde podemos destacar algumas das principais funções, conforme

descrito logo seguir:

· Exportação do relatório para os formatos PDF, DOC, CSV, XML, XLS, dentre outras

extensões disponíveis;

· Gerenciador de impressão e ajuste do layout do relatório;

· Barra de navegação para a seleção entre as páginas do relatório;

· Localizador de palavras;

Page 7: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 7/43

· Lupa de aumento;

· Função de visualização individual de registros.

BOX 2. RAD

Vários pacotes de aplicações para desenvolvimento de software disponíveis no

mercado podem ser classificados como ferramentas que tem características do

padrão de desenvolvimento RAD (do inglês Rapid Application Development), por

terem uma interface de desenvolvimento simplificado, ou seja, aplicações que

permitem criar um software rapidamente, muitas das vezes sem ser preciso digitar

uma única linha de código. O Visual Studio é um ótimo exemplo de kit de

desenvolvimento que tem um IDE que garante bastante produtividade para o

desenvolvedor, onde podemos clicar e arrastar os componentes da Toolbox e soltar

na área de designer da aplicação.

História do Crystal Reports

O Crystal Reports foi desenvolvido inicialmente em 1991 pela Crystal Services, com

objetivo de ser uma ferramenta de Business Intelligence usada para gerar e projetar

relatórios, sendo comercializada na época com nome de Quick Reports.

A Crystal Services produziu as versões 1.0 até 3.0 do Crystal Reports, depois disso foi

adquirida em 1994 pela empresa Seagate Techonology, sendo batizada com o nome de

Crystal Decisions, que produziu as versões 4.0 até 9.0. A Crystal Decisions foi adquirida

em 2003 pela Business Objects, que produziu as versões 10, 11 e 12 do Crystal

Reports. Com esta trajetória da ferramenta, a SAP adquiriu a Business Objects em 2007,

lançando posteriormente, em maio de 2011, o Crystal Reports 2011, versão 14. Há

pouco tempo atrás a SAP mudou novamente o nome da ferramenta de relatório para SAP

Cystal Reports.

Em 1993 a Microsoft fechou uma parceria com a Crystal Services e incorporou o Crystal

Reports no Visual Basic, porém, o desenvolvimento e a criação de relatório eram

permitidos apenas via interface gráfica de designer. Posteriormente, com surgimento do

kit de desenvolvimento Visual Studio e a popularidade do lançamento da plataforma .NET,

a Crystal Decisions reformulou o Crystal Reports para plataforma .NET, incorporando o

mesmo no Visual Studio 2003, possibilitando assim o desenvolvimento de relatórios

Page 8: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 8/43

programaticamente via linha de código. Com o lançamento do Visual Studio 2005, a

Microsoft lançou sua própria ferramenta para distribuição de relatório como

ReportViewer. Com o lançamento do Visual Studio 2008, o Crystal Reports para a

plataforma .NET teve melhorias significativas e permanece como a principal ferramenta

para geração de relatórios. Atualmente a SAP disponibilizou o SAP Crystal Reports para

integração com o Visual Studio como add-on (BOX 3).

Hoje, a SAP disponibiliza sua solução em relatório com o SAP Crystal Reports que oferece

suporte para a plataforma de desenvolvimento com o Visual Studio .NET e Eclipse.

BOX 3. Add-on

Add-ons podem ser definidos como módulos ou funções complementares que

alteram ou aumentam as funcionalidades de uma determinada ferramenta, podendo

também ser caracterizados como plug-ins, extensões, snap-ins, etc. As empresas

que disponibilizam estes pacotes geralmente cobram uma licença de uso para

aquisição do pacote componente de software.

Opções para criar um relatório com o SAPCrystal Reports

Em 14 de janeiro de 2013 a SAP disponibilizou a versão de desenvolvimento de relatório

com o SAP Crystal Reports para plataforma .NET, sendo possível a integração com o

Visual Studio 2012. Essa versão possibilita ao desenvolvedor criar relatórios para

aplicações desktop, com uso de templates como Windows Forms e WPF, podendo

também optar por aplicações Web com ASP.NET.

Para criar relatórios com SAP Crystal Reports pode-se optar por duas formas, conforme

descrito a seguir:

Assistente de relatório do SAP Crystal Reports

Este assistente permite criar um relatório de forma simples e rápida. O mesmo conta com

uma tela de apresentação, que auxilia na escolha para criar um novo relatório em branco.

Pode-se criar o relatório “do zero”, ou optando pela a escolha da utilização de um

assistente que auxilia a criação do relatório em um passo a passo, isto é, o assistente

apresenta ao usuário os templates disponíveis para criar um novo relatório.

Page 9: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 9/43

Esta primeira opção é ideal e aconselhável para quem está iniciando a criação de relatório

e ainda não tem o domínio da ferramenta, ou mesmo para quem busca ser objetivo,

tendo a possibilidade de criar um relatório rapidamente sem a necessidade da utilização

de algumas configurações no IDE. Com esta escolha não é preciso fazer inclusão de

código no relatório para desempenhar atividades mais complexas.

IDE de desenvolvimento de relatório do SAP

Crystal Reports

A segunda opção para criar relatório com o SAP Crystal Reports é pelo ambiente gráfico

de desenvolvimento, onde é possível construir toda a estrutura de um relatório. Esta

ferramenta oferece uma janela chamada Main Report, que é a área de criação do relatório

e mostra uma pré-visualização deste em desenvolvimento. Com o Main Report fica fácil

criar a estrutura do relatório, pois o mesmo já vem com o relatório dividido em sessões

e, com o auxílio da janela Field Explorer, podemos clicar e arrastar alguns componentes

para a área de desenvolvimento do relatório.

A janela Field Explorer oferece recursos com vários componentes e ferramentas que irão

auxiliar no desenvolvimento e configuração do relatório. É através da Field Explorer que

temos a opção de conectar a uma fonte de dados como, por exemplo, o Microsoft SQL

Server, e assim selecionar tabelas, views, e por fim os campos que irão compor o

relatório.

Além da janela Field Explorer, temos a opção de desenvolver várias funções para nosso

relatório de forma programática, ou seja, com uso de uma linguagem de programação

como C#, é possível chamar um documento de relatório via código e fazer uso do mesmo

de forma mais flexível. No código podemos recuperar parâmetros inseridos pelo usuário

via interface gráfica e passar estes parâmetros para realizar filtros no relatório antes do

mesmo ser exibido, assim teremos um relatório mais limpo e com informações

resumidas.

Um ponto importante para o desenvolvimento do relatório é a janela Main Report

Preview, que mostra a visão final do relatório. É a forma como o usuário vai visualizar e

navegar no relatório em produção.

Estrutura de um relatório SAP Crystal Reports

Após a escolha do template e a finalização do assistente para criação de relatório, é

Page 10: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 10/43

criado o arquivo do relatório, que pode ser visualizado no Solution Explorer. O relatório é

o arquivo com extensão rpt que fica junto aos outros arquivos que compõem projeto no

Visual Studio.

No arquivo rpt consta toda a estrutura do relatório, podendo este ser utilizado em

outros projetos, já que possui todas as configurações necessárias para conectar a fonte

de dados do relatório. Expandindo o arquivo rpt no Solution Explorer podemos observar

o arquivo com extensão cs, caso seja uma aplicação desenvolvida com a linguagem de

programação C#, ou extensão vb, caso use a linguagem VB .NET.

No arquivo cs consta o código C# para definir a estrutura do relatório, com a definição

para criar um novo documento através da classe ReportDocument, que faz parte do

namespace CrystalDecisions.CrystalReports.Engine da biblioteca Crystal Reports para

plataforma .NET. Neste arquivo também temos a definição das sessões do relatório,

como o cabeçalho do relatório, cabeçalho da página, detalhes do relatório, rodapé do

relatório e rodapé da página. As sessões são definidas através da classe Section do

namespace do ReportDocument.

Biblioteca de classes SAP Crystal Reports paraa plataforma .NET

Antes de iniciar o desenvolvimento de um relatório, é de extrema importância conhecer a

estrutura de namespace do SAP Crystal Reports para a plataforma .NET. Na sequência

serão descritos os principais namespaces importantes para o entendimento e para o

desenvolvimento de recursos para o relatório via programação.

· CrystalDecisions.CrystalReports.Engine: este namespace é o pilar para estrutura de um

relatório com Crystal Reports. Nele estão as principais classes para dar o suporte

necessário ao desenvolvimento de um relatório, destacando-se a classe

ReportDocument, que tem propriedades e métodos para compor o novo documento de

relatório.

· CrystalDecisions.CrystalReports.ViewerObjectModel: aqui temos as classes e interfaces

para dar suporte ao objeto CrystalReportViewer. É através do CrystalReportViewer que

expomos o documento de relatório ReportDocument para visualização e navegação.

· CrystalDecisions.ReportSource: este namespace fornece classes que compõem uma

camada entre o controle CrystalReportViewer e o modelo de objeto ReportDocument.

Essas classes servem para lidar com as solicitações dos controles CrystalReportViewer.

Page 11: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 11/43

· CrystalDecisions.Shared: o namespace CrystalDecisions.Shared fornece classes,

interfaces e enumerações que são compartilhados pelo controle CrystalReportViewer e o

modelo de objeto ReportDocument.

· CrystalDecisions.Windows.Forms: fornece suporte para os controles

CrystalReportViewer e classes associadas com Windows Forms.

· CrystalDecisions.Web: fornece suporte para o controle CrystalReportViewer, controle

CrystalReportPartsViewer e suas classes associadas com ASP.NET.

· CrystalDecisions.Web.Services: fornece apoio para expor um relatório Crystal Reports

através de webservice.

· CrystalDecisions.Web.HtmlReportRender: oferece recursos para os eventos de

renderização no controle CrystalReportViewer e no controle CrystalReportPartsViewer.

Download e instalação SAP Crystal Reportspara Visual Studio 2012

Antes de iniciarmos a criação de um relatório, devemos obter o pacote de

desenvolvimento de relatório SAP Crystal Reports para o Visual Studio 2012. Através do

próprio site da SAP Community Network podemos realizar o download (veja a sessão

Links).

Uma observação importante a respeito do download é a escolha do pacote completo, ou

seja, podemos optar por baixar o arquivo CRforVS executável que realiza a instalação do

SAP Crystal Reports e faz a integração automática com o Visual Studio 2012. Caso seja

realizada apenas a instalação do pacote MSI, não ficará disponível o template do Crystal

Reports do Visual Studio 2012.

Após o download do pacote CRforVS executável, devemos realizar a instalação de SAP

Crystal Reports de forma simples pelo seu assistente de instalação, com uma interface

gráfica fácil e prática, onde podemos ir avançando e a instalação será realizada e

finalizada rapidamente.

Criando um projeto com Visual Studio 2012

Para iniciarmos a exploração da ferramenta SAP Crystal Reports, iremos criar um novo

projeto do tipo Windows Forms com o Visual Studio 2012. Devemos selecionar a

linguagem de programação C# e o framework 4.5 da plataforma .NET. Chamaremos este

Page 12: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 12/43

projeto de CrystalExemplos, conforme podemos observar o Solution Explorer exibido na

Figura 1.

Iremos trabalhar com SAP Crystal Reports em uma aplicação do tipo Windows Forms,

mas nada impede da utilização de outra tecnologia como WPF e ASP.NET, pois após a

criação do relatório, é gerado um arquivo com extensão rpt, que depois do

desenvolvimento e configuração do relatório, pode ser usado em diferentes tipos de

projeto, bastando inserir o arquivo de relatório do novo projeto e fazer algumas

referências aos namespace do SAP Crystal Reports necessários para aplicação.

Page 13: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 13/43

Figura 1. Estrutura inicial do projeto criado

Vejamos a seguir a lista dos namespaces necessários em uma aplicação com relatório

SAP Crystal Reports.

Page 14: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 14/43

· CrystalDecisions.CrystalReports.Engine;

· CrystalDecisions.ReportSource;

· CrystalDecisions.Shared;

· CrystalDecisions.Web;

· CrystalDecisions.Windows.Forms

Criando um relatório com o assistente do SAPCrystal Reports

A partir de agora iremos desenvolver exemplos práticos para demonstrar as

funcionalidades da ferramenta SAP Crystal Reports. Para tanto, precisaremos de uma

fonte de dados, e neste caso utilizaremos o banco de dados muito popular para

exercícios, o banco Northwind, com uso do SGBD Microsoft SQL Server 2008. O

Northwind pode ser adquirido através do site da Microsoft (veja a sessão Links). Após

realizar o download do Nortwind, devemos instalar o pacote que será extraído na pasta

SQL Server 2000 Sample Databases, dentro da unidade C da máquina local, depois é só

executar a função Attach Database no SQL Server 2008 e selecionar o arquivo

Northwind.mdf referente ao banco de dados.

Agora que já temos uma fonte de dados Nortwind e o SAP Crystal Reports devidamente

instalados, então iremos adicionar ao nosso projeto no Visual Studio 2012 um novo item

do tipo Crystal Reports, que será um novo documento de relatório. Após aberta a tela de

inserção de itens ao projeto, iremos à sessão Reporting e selecionaremos o template

Crystal Reports, nomeando para CrystalReportRelatorio1.rpt.

Após a inserção do novo documento de relatório ao projeto, é aberta automaticamente a

galeria de relatórios do Crystal Reports, conforme mostra a Figura 2.

Page 15: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 15/43

Figura 2. Tela galeria do SAP Crystal Reports

A Figura 2 mostra a tela inicial para criar um novo documento de relatório SAP Crystal

Reports, que por sinal não tem mudanças muito significativa na interface gráfica em

relação às versões anteriores. Nesta tela temos algumas opções de como será criado o

novo documento de relatório. A seguir são descritas as possíveis alternativas:

· Utilizando o assistente para relatório: com a escolha desta opção, temos três tipos de

assistentes para criar um novo relatório. Temos a opção padrão, tabela de referência

cruzada e rótulo de correio. A opção mais utilizada é a primeira, a padrão, com esta

Page 16: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 16/43

opção selecionada um assistente irá auxiliar na criação de um novo relatório em um

passo a passo, desde a conexão com banco de dados, seleção de tabelas, campos para

compor o relatório, definição das relações entre as tabelas, criação de filtros para o

relatório, agrupamento de campos, ordenação de dados, inserção de gráficos

sofisticados, dentre outros recursos que podemos acrescentar ao relatório. Podemos

incluir todos estes recursos de forma fácil e prática no relatório com ajuda do assistente

de criação de relatório.

· Como um relatório em branco: esta opção cria apenas o arquivo para um novo

documento de relatório em branco, o arquivo rpt. Através do arquivo de relatório em

branco, devemos construir todo o relatório desde o início. Neste ponto criaremos o

relatório via designer com auxílio da janela Field Explorer, inserindo e arrastando os

componentes para a área de desenvolvimento do relatório. Os componentes inseridos na

área de desenvolvimento do relatório podem ser facilmente configurados através de suas

propriedades, para assim que possam compor a estrutura necessária para o novo

relatório.

· De um relatório existente: através desta opção podemos selecionar manualmente um

arquivo de relatório rpt já existente e realizar a inserção do mesmo dentro do projeto

atual.

Vale ressaltar que caso a opção selecionada para criar um novo relatório seja através do

“Assistente para Relatório”, poderemos escolher um determinado tipo de assistente de

acordo com o objetivo e necessidade do relatório. Assim sendo, se precisamos de uma

informação resumida, uma boa escolha é selecionar o assistente de tabela de referência

cruzada. Este modelo é parecido com uma tabela dinâmica do Excel, onde podemos

selecionar os campos que representarão as colunas e linhas, e os campos para

demonstrar valores de uma forma reduzida ou detalhada, conforme escolha dos campos

que representam as linhas e colunas da tabela.

Para explorarmos boa parte dos recursos do assistente de relatório SAP Crystal Reports,

optaremos pela utilização da primeira opção, a padrão, conforme seleção mostrada na

Figura 2.

Avançando no assistente de relatório, o próximo passo a ser realizado é a escolha dos

dados nos quais nosso relatório irá se basear. Um detalhe importante neste ponto é a

possibilidade de escolha entre diversas fontes de dados para o relatório. Observe a

Figura 3, nela são exibidos os tipos de origem de dados disponíveis para gerar um novo

Page 17: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 17/43

relatório, conforme descrito a seguir.

· Dados do projeto: caso tenhamos uma fonte de dados disponível dentro do projeto

atual, podemos usá-la para criar o novo relatório. Uma boa escolha seria utilizar como

fonte de dados para o relatório um DataSet existente.

· Minhas conexões: esta opção nada mais é que a lista conexões existentes, através dela

podemos gerenciar as conexões e fazer alterações quando for necessário.

· Criar nova conexão: esta é a opção mais importante em relação à gama de fonte de

dados com a qual podemos criar uma nova conexão. É possível conectar a fontes de

dados como Access, Excel, arquivo XML, conectar através ODBC, OLE DB e a vários

outros SGBDs existentes no mercado.

Figura 3. Tela para escolha da fonte de dados

O próximo passo para dar continuidade ao assistente é criar uma nova conexão com o

SQL Server e utilizar o banco de dados Nortwind como fonte de dados para o relatório.

Para isso, devemos expandir a estrutura de pastas da opção Criar Nova Conexão, neste

momento teremos acesso ao item OLE DB (ADO). Selecionando o mesmo, irá abrir uma

Page 18: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 18/43

nova janela em que devemos selecionar o provedor de dados, que neste caso é o

Microsoft OLE DB Provider for SQL Server. Após este passo devemos avançar. Agora irá

aparecer mais uma janela para informar o nome do servidor e instância do SQL Server

instalado na máquina. Caso a mesma tenha sido nomeada, ou tenhamos o SQL EXPRESS

instalado na máquina, o nome do servidor ficaria da seguinte forma: .\SQLEXPRESS. O

próximo campo a ser preenchido é o nome de usuário e senha. Se não tivermos um

usuário ativo no SQL Server, devemos marcar a opção Segurança Integrada, que irá usar

as credenciais de login do Windows para fazer a conexão à base de dados. Por fim, basta

selecionar o banco de dados Nortwind, avançar e finalizar esta etapa.

A próxima tela do assistente (Figura 4) mostra as tabelas disponíveis do banco de

dados selecionado. Aqui devemos selecionar todas as tabelas que contenham os campos

que pretendemos usar para compor o relatório. Em nosso exemplo iremos selecionar

apenas as tabelas Order_Details, Orders e Products.

Uma observação importante na seleção de dados para compor o relatório é possibilidade

de selecionar views, pois podemos criar views no banco de dados com restrições em

determinados campos que não devem ser exibidos para terceiros. Isso também serve

para diminuir o tráfego de dados entre a aplicação e a base de dados. No momento de

criar uma nova view, devemos incluir na mesma apenas os campos que serão utilizados

no relatório.

Page 19: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 19/43

Figura 4. Seleção de tabelas do banco de dados

Na próxima tela do assistente, tela de vínculo entre tabelas, podemos criar referências

entre registro de tabelas distintas, ou seja, é possível fazer um vínculo entre duas

tabelas automaticamente por campo de mesmo nome, ou chave, caso não tenhamos um

modelo de dados normalizado. Neste ponto ficaremos com a escolha do vínculo

automático por chave, e avançaremos para próxima tela do assistente.

Com as tabelas do banco de dados selecionadas para a composição do relatório e os

vínculos entre os mesmos definidos, devemos agora avançar e na tela que surge

devemos selecionar os campos que serão exibidos no relatório. Neste caso iremos

selecionar os campos ProductID e ProductName da tabela Products, e na tabela

Order_Details selecionaremos os campos UnitPrice, Quantity e Discunt. Ao final

avançaremos para próxima tela do assistente de relatório.

Uma observação importante na tela de seleção de campos das tabelas é que podemos

selecionar a ordem que os campos serão dispostos dentro do layout do relatório, ou

Page 20: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 20/43

seja, devemos ir selecionando os campos a serem exibidos no relatório na ordem da

esquerda para direita.

A próxima tela do assistente, mostrada na Figura 5, exibe os campos disponíveis que

podem agrupar determinadas informações no relatório. Em nosso exemplo iremos fazer

dois agrupamentos, um pelo campo ShipRegion da tabela Orders e outro agrupamento

pelo campo OrdersID da tabela Orders.

Quando é selecionado mais de um campo para agrupar as informações, podemos definir

a ordem dos agrupamentos, podendo ter um agrupamento dentro do outro e também

classificar a informação em ordem crescente ou decrescente. Neste caso é necessária a

seleção de um campo para que seja exibido na parte inferior desta tela um combo com a

opção de classificação. Após avançar será mostrada outra tela para selecionar os campos

para resumo de informação, como contagem, soma, máximo, mínimo, dentre outras

opções, lembrando que esta segunda tela de campos com resumo só será apresentada

caso você tenha algum campo selecionado para agrupar as informações. Como na tela

anterior realizamos alguns agrupamentos, a tela de resumo de relatório já vem com

alguns resumos criados automaticamente pelo assistente; iremos retirar estes resumos e

avançar.

Page 21: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 21/43

Figura 5. Seleção de campos para agupar informações

Após avançar no assistente, será apresenta uma tela para realizar filtros em campos do

relatório, com objetivo de filtrar a informação de acordo com a necessidade da

visualização de dados. Vejamos na Figura 6 a opção de realizar vários filtros nos dados

para que a informação seja apresentada de forma resumida e obedecendo alguns

critérios, conforme descritos na combobox de opções de filtros.

Em nosso exemplo não iremos realizar filtros neste momento, estão iremos deixar o

assistente sem filtros e avançar para próxima tela.

Page 22: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 22/43

abrir imagem em nova janela

Figura 6. Filtro em campos

Na próxima tela, e última, temos escolha do estilo do relatório. Temos a opção de aplicar

ao relatório um layout predefinido, conforme estilos disponíveis. Note que ao ir

selecionando as opções de layout podemos visualizar uma prévia de como fica o modelo

do relatório. Para finalizar o assistente, selecionaremos o estilo padrão.

Após finalizar o assistente, voltamos ao Visual Studio com o arquivo

CrystalReportRelatorio1.rpt aberto e Main Report selecionado, ou seja, estamos com o

ambiente de desenvolvimento do relatório ativo. Agora precisamos visualizar como ficou

o relatório que criamos com a ajuda do assistente, assim sendo, temos a opção Main

Report Preview na parte inferior, ao lado do Main Report, que ao ser selecionado mostra

a visualização final do relatório, conforme Figura 7.

Page 23: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 23/43

abrir imagem em nova janela

Figura 7. Visualização do relatóio criado pelo assistente do SAP Crystal Reports

Na Figura 7 temos nosso relatório com dois agrupamentos, por ShipRegion e por

OrderID. Note que o mesmo mostra o detalhe de cada ordem, conforme configuramos no

assistente, ou seja, a lista de produtos de cada ordem. Outra observação importante é

que nas primeiras páginas do relatório não conta a região, mas isso não é um erro no

relatório, pois neste caso existem registros de ordens na base de dados sem região.

Então fica a dica para não realizar agrupamentos em campos que possam conter valores

nulos ou então, neste caso, fazer a ordenação em ordem decrescente.

O relatório ainda está bem simples em termos de formatação, também não tem cabeçalho

de relatório e nem totalizadores. No decorrer do artigo irmos aplicar algumas

formatações e alguns recursos importantes para tornar o relatório rico e apresentável.

Conhecendo a área de designer do SAP CrysltalReports no Visual Studio

Precisamos conhecer o ambiente de designer do SAP Crystal Reports. Na Figura 8 temos

a tela do Visual Studio com o arquivo CrystalReportRelatorio1.rpt selecionado, note que

a figura tem alguns destaques numerados em vermelho que correspondem aos principais

recursos para criar e formatar o relatório, conforme descrito abaixo:

1. Área de designer do relatório, com exibição de uma régua na parte superior e à

esquerda, para que possa auxiliar no alinhamento dos componentes do relatório. Logo

Page 24: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 24/43

ao centro existem sessões separando as partes fundamentais do relatório, como o

cabeçalho de relatório, cabeçalho da página, cabeçalho do primeiro agrupamento,

cabeçalho do segundo agrupamento, detalhes do relatório, rodapé do segundo

agrupamento, rodapé do primeiro agrupamento, rodapé do relatório e por fim rodapé da

página.

2. Field Explorer, contendo a maior parte dos recursos para auxiliar na geração do

relatório, como a inserção de grupos, campos calculados, passagem de parâmetro,

campos especiais, totalizadores e também o Database Fields, que mostra as tabelas

selecionadas para ajudar a compor o relatório com todos os seus campos. Caso você

precise adicionar um novo campo ao relatório, é só clicar e arrastar para alguma seção do

relatório na área de designer.

3. Na parte inferior da imagem temos duas abas para trabalhar no relatório. A primeira é

Main Reports, que mostra a área de edição para criar a estrutura do relatório, e a

segunda é Main Report Preview, que mostra a visualização do relatório final em execução,

esta aba é bastante importante, pois não precisamos ficar executando a aplicação o

tempo inteiro para ver resultado das modificações realizadas durante a criação do

relatório.

4. Toolbox com a guia Crystal Reports, que disponibiliza três componentes importantes

para auxiliar de forma rápida a inserir alguns recursos no relatório, como um objeto

texto, linha e caixa para destacar algo no relatório.

5. Barra de ferramentas, que mostra os atalhos para importantes recursos do SAP

Crystal Reports. Através desta barra podemos formatar os objetos do relatório de forma

rápida e fácil, aplicando formatação na fonte, como tamanho e alinhamento. Também é

possível inserir o objeto chart para gráficos no relatório, inserir imagens, agrupamentos,

acessar as propriedades dos objetos dispostos no relatório, exibir e ocultar a Field

Explorer para dar mais espaço para a área de formatação do relatório, dentre outros

recursos.

6. Menu do Crystal Reports: este menu exibe atalhos para recursos já comentados

anteriormente. Nele também podemos gerenciar a conexão com a base de dados,

verificar update do SAP Crystal Reports, pré-visualizar o relatório, inserir arquivo CSS

para aplicar formatação diferenciada em sessões especificas do relatório. Aqui também

está disponível o submenu Design, onde podemos exibir e ocultar e régua, definir o tipo

de papel e orientação da página do relatório.

Page 25: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 25/43

7. Janela de propriedades: tem um papel fundamental para visualizar e alterar qualquer

propriedade dos objetos do relatório, bastando apenas selecionar o objeto e pressionar

a tecla F4.

abrir imagem em nova janela

Figura 8. Tela de Designer para o SAP Crystal Reports

Criando campo calculado com Formula Field

O SAP Crystal Reports tem um recurso muito interessante, o Formula Field, que está

disponível no Field Explorer. Com ele podemos criar campos calculados para utilizar em

diversas situações no decorrer da criação de um relatório.

Um campo calculado depois de criado é bem simples de ser inserido dentro do relatório,

basta apenas arrastar do Formula Field para qualquer sessão do relatório.

Nosso relatório CrystalReportRelatorio1 tem um campo com o preço unitário de cada

produto (UnitPrice) e outro campo que tem a quantidade de venda de cada produto

(Quantity). Para complementar nosso relatório precisamos de um novo campo para

calcular o valor total de venda de cada produto dentro de uma ordem.

Para inserimos o novo campo no relatório iremos clicar com botão direito do mouse em

Formula Field na Field Explorer e assim inserir um novo item chamado de “VtItem”, na

Page 26: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 26/43

sequência irá abrir uma nova janela chamada Editor de formulas. A Figura 9 mostra o

código necessário para calcular o valor total por produto.

Com a janela editor de fórmulas podemos criar campos calculados, campos de expressão

SQL, Fórmulas de seleção e fórmulas de formatação, para criar novos campos com

fórmulas têm disponível a sintaxe Crystal e Base.

Figura 9. Editor de fórmulas

É importante notar que na janela de editor de fórmulas temos à disposição para criar

novas fórmulas todos os campos referentes às tabelas selecionadas da base de dados,

os novos campos calculados criados, funções e operadores.

Dando sequência à alteração no relatório, agora iremos arrastar o novo campo criado

“VtItem” para dentro da sessão detalhes do relatório, ao lado direito do campo

“Discount”.

Se clicarmos na guia Main Report Priview para visualizar o relatório, notaremos que agora

temos o valor total dos itens vendidos por produto, porém não está sendo possível ver

as casas decimais, assim sendo, devemos acomodar os campos dentro da sessão

detalhes para que possa caber tudo dentro do relatório.

Inserindo totalizadores por grupo e geral norelatório

Agora vamos agregar mais valor ao relatório inserindo totais nos agrupamentos do

relatório e inserindo um total geral no final do relatório.

Para realizar a análise de um relatório é necessário que o mesmo contenha campos para

representar valores acumulados e totais, podendo também ter campos para fazer a

contagem do total de registros do relatório geral ou por agrupamento.

Para iniciarmos as alterações no relatório vamos fazer uma cópia do arquivo

CrystalReportRelatorio1 e renomear a cópia para CrystalReportTotais. O segundo passo

é criar os novos campos que irão somar os valores totais, para isso usaremos o recurso

Page 27: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 27/43

Running Total Fields, disponível na Field Explorer.

O primeiro campo que iremos inserir é o total para o agrupamento de ordens, que soma

a quantidade de itens dos produtos representados pela coluna “Quantity” do relatório.

Devemos então clicar com o botão direito do mouse no Running Total Fields localizado na

Field Explorer e depois clicar em new para inserir um novo item. Agora temos na tela uma

nova janela chamada “Cria Campo de Total acumulativo”, conforme apresentado na

Figura 10. Se analisarmos esta tela, temos à esquerda todos os campos do nosso

relatório e todos os campos que selecionamos na base de dados, ou seja, temos todos

os campos das tabelas selecionadas no assistente de relatório. Neste momento podemos

colocar um total no relatório de um determinado campo da base de dados que ainda não

se encontra no layout do relatório. Agora iremos seguir os passos abaixo para configurar

o primeiro campo, conforme sequência descrita na Figura 10.

Figura 10. Tela de configuração campo acumulativo

1. Seguindo os passos descritos na Figura 10, a primeira coisa que devemos fazer é

definir um nome para o primeiro campo total, que neste caso chamaremos de

“TotQteGrupo2”. O nome para o campo deve dar a ideia de que mesmo está somando,

sendo assim, temos “Tot” de total, “Qte” de quantidade e “Grupo2” para informar que o

Page 28: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 28/43

mesmo pertence ao GroupFooterSession2.

2. No segundo passo devemos selecionar um dos campos do relatório, campo fórmula

ou campo de algumas das tabelas selecionada da base de dados. Para este exemplo

iremos selecionar o campo “OrderDetails.Quantity” e definir como campo a ser

resumido.

3. No passo de número três devemos informar o tipo de resumo que queremos obter.

Temos diversas opções como soma, média, máximo, mínimo, contagem e outras

possibilidades de resumo; para o nosso relatório devemos selecionar a opção

soma.

4. Neste passo devemos definir o tipo de avaliação para realizar a soma. Aqui iremos

selecionar a opção para cada registro. A observação importante a respeito do tipo

de avaliação é que temos quatro opções para selecionar, são elas;

· Para cada registro: irá somar registro a registro do relatório

· Na alteração do campo: esta opção irá avaliar apenas quando tiver alteração no valor do

registro, ou seja, se o valor exibido não se repetir, o mesmo não irá realizar a soma,

contagem ou outra forma de avaliação selecionada.

· Na alteração do grupo: esta opção é mesma da anterior, porém aplica-se no nível de

grupo.

· Utilizar uma fórmula: esta opção é bem interessante, pois temos a possibilidade de criar

uma fórmula personalizada para ser avaliada de acordo com a necessidade.

5. No quinto passo devemos selecionar uma opção para reconfigurar a avaliação. Neste

caso do iremos zerar a soma ao final de cada grupo.

6. O sexto e último passo é definir ao final de qual campo, grupo ou fórmula o

avaliador será reconfigurado, aqui iremos selecionar o Grupo2.

Agora temos um novo campo para totalizar a quantidade da coluna “Quantity” do

relatório, devemos arrastar o novo campo “TotQteGrupo2” do Running Total Fields para

a sessão GroupFooterSection2, abaixo do campo “Quantity”, dentro da sessão do grupo

de ordens.

Vejamos que na guia Main Reports Preview temos a visualização do nosso relatório com o

totalizador funcionado de forma correta. Devemos agora repetir este passos e criar dois

novos totalizadores para as colunas “Discount” e “VtItem”, lembrando que total da

Page 29: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 29/43

coluna “VtItem” é criado com a própria fórmula criada para este campo calculado.

A Figura 11 mostra como fica o relatório como a inserção dos três totalizadores no

nosso relatório de exemplo.

abrir imagem em nova janela

Figura 11. Relatórios com totalizadores

Formatando o relatório

Agora é hora de formatar o relatório para ficar mais apresentável, pois um bom relatório

para o usuário final nem sempre é aquele que expõe quantidades enormes de dados, ele

também deve ter um layout agradável para o usuário que irá analisá-lo. Neste ponto é

importante definir a formatação dos campos e separar parte do relatório com linhas e

tabelas entre as sessões do mesmo.

Para formatar nosso relatório iremos usar vários recursos do nosso SAP Crystal Reports,

devemos então seguir alguns os passos descritos a seguir:

1. Primeiramente iremos fazer uma cópia do arquivo de relatório CrystalReportTotais e

definir um nome da cópia de CrystalReportFormat, na qual passaremos a trabalhar.

2. Agora iremos inserir um título em nosso relatório. Devemos selecionar um

componente Text Object da guia Crystal Reports da Toolbox e arrastá-lo para Section1,

que define o cabeçalho do relatório. Com o componente já na área do relatório, iremos

dar dois cliques e definir um título do relatório para “RELATÓRIO DE VENDAS”. Na barra

Page 30: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 30/43

de ferramentas definimos a fonte para tamanho 16, bold (negrito) e com a opção Center

da barra de ferramentas definimos que o texto do título deve ficar alinhado ao centro.

Percebemos que o tamanho do texto não coube no Text Object e nem na Section1,

assim sendo, devemos selecionar a Section2 e passar o mouse até aparecer duas setas

(para cima e para baixo) com uma linha no meio, esta opção nos possibilitará

redimensionar o tamanho da Section1, a Section2 um pouco para baixo. Feito isso, agora

precisamos acomodar o texto dentro o objeto Text Object, selecionando o mesmo e

arrastando os pontos que aparecem em suas extremidades, de forma que o texto

dentro dele fique totalmente visível.

3. Temos um título definido para nosso relatório, porém o mesmo é exibido apenas na

primeira página do relatório, pois está dentro da sessão cabeçalho. Para descrever que

tipo de relatório de vendas consta em nosso relatório, iremos criar um subtítulo para o

relatório com o nome de “VENDAS POR REGIÃO”, para isso iremos inserir outro Text

Object dentro da Section2, posicionando abaixo do título e ao lado do campo data. Com

o subtítulo dentro do cabeçalho da página, o mesmo será exibido em todas as páginas

do relatório. Depois iremos aplicar a mesma formatação descrita no passo 2 no segundo

Text Object e modificar somente o nome para o subtítulo do relatório.

4. Agora precisamos aplicar algumas formatações nos campos estáticos da Section2, que

representam o cabeçalho da página para cada coluna do relatório. Então devemos

selecionar todos os campos estáticos segurando a tecla Ctrl e clicando em todos os

campos para ficarem selecionados, depois clicar com o botão direito do mouse em um

dos campos estáticos e clicar na opção Format Multeple Objects, que será exibida no

menu de contexto. Agora temos a tela de Formatação do Editor SAP Crystal Reports, na

tela temos algumas guias para auxiliar na formatação. A Figura 12 mostra duas guias

que iremos utilizar para formatar os campos de cabeçalho do relatório. Na primeira guia

“moldura” iremos alterar as propriedades estilo de linha, cor da moldura e cor de fundo.

Já na segunda guia “fonte” iremos alterar apenas o estilo para negrito. Todas as

formações estão destacadas em vermelho na Figura 12. Devemos observar que a

medida que alteramos as propriedades de formatação, temos na parte inferior a

demonstração de como vai ficar o resultado com a aplicação da formatação.

5. No cabeçalho do segundo agrupamento (GroupHeaderSection2) não temos campos

estáticos para mostrar o nome de cada coluna com dados, assim, a medida que se

visualiza os dados mais na parte inferior do relatório, não é possível saber de qual campo

se trata a informação, devido os campos estáticos das colunas serem exibidos apenas no

Page 31: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 31/43

cabeçalho da página. Assim sendo, vamos recortar os cabeçalhos de ShipRegion até

VtItem e colar dentro da sessão GroupHeaderSection2, pois os cabeçalhos de coluna

serão exibidos para cada grupo no agrupamento de ordens. Temos que selecionar todos,

recortar e clicar no canto direto antes de colar, este procedimento irá fazer o alinhamento

correto de todos os campos. Uma observação importante é que antes de colar você deve

deletar o único campo do cabeçalho do segundo agrupamento, pois este campo mostra o

número da ordem e esta informação já consta nos detalhes do relatório.

6. Nosso relatório está ficando com uma nova aparência, então agora iremos aplicar a

mesma formatação para os campos da sessão detalhes e rodapé do segundo

agrupamento. É importante nos campos que representam os dados da sessão detalhes

não colocar negrito, cor de fundo e que os mesmos tenham apenas molduras com linhas

simples. Para ganhar tempo em repetir uma formatação para demais campos, podemos

selecionar um campo já formatado e usar a ferramenta Format Painter, disponível na

barra de ferramentas. Assim é só clicar em outros campos nos quais se deseja aplicar os

mesmos formatos, mas esta técnica só se aplica em campos de mesmo tipo.

Agora que o relatório já está formatado, devemos visualizar o mesmo na guia Main

Report Preview, conforme mostra a Figura 13.

abrir imagem em nova janela

Figura 12. Configuração de formatação de campos

Page 32: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 32/43

abrir imagem em nova janela

Figura 13. Relatório formatado

Criando um gerenciador de relatórios com C#

Até o momento criamos alguns relatórios e visualizamos o resultado no Main Report

Preview, então agora temos que disponibilizar estes relatórios para o usuário de forma

amigável, através de uma interface gráfica como o Windows Forms, WPF ou em uma

página ASPNET. Em nosso exemplo faremos um gerenciador para o usuário selecionar

um dos relatórios que criamos e poder visualizar e navegar no mesmo através do

componente CrystalReportViewer, disponível na Toolbox.

O primeiro passo é selecionar o Form1 criado automaticamente pelo Visual Studio no

momento em que foi criado um projeto do tipo Windows Forms, e com o mesmo

selecionado alterar seu título através da propriedade Text, inserindo “Gerenciador de

Relatórios”. Em seguida definimos a propriedade Size para 1124; 720, para alterar a

altura e largura.

Para que seja possível visualizar os relatórios no formulário, iremos arrastar o

componente CrystalReportViewer da Toolbox para dentro do Form1. Neste momento

ainda não será possível visualizar nenhum relatório no CrystalReportViewer, pois ainda

precisamos vincular um relatório ao mesmo, o que é possível através da propriedade

ReportSource, porém em nosso exemplo não iremos vincular o relatório desta maneira.

A Listagem 1 mostra o código inserido no evento Load do Form1 que trata de definir a

Page 33: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 33/43

propriedade Dock do objeto crystalReportViewer1 para None, para que o objeto não

preencha toda a área do Form1. A segunda linha de código altera posição Y do objeto

crystalReportViewer1 dentro do From1, e por fim, na última linha do evento Load,

definimos a altura e largura do objeto crystalReportViewer1.

Com estas configurações teremos um espaço na parte superior do formulário para inserir

novos componentes para selecionar e executar os relatórios.

As mesmas configurações realizadas na Listagem 1 em tempo de execução também

podem ser feitas via IDE através das propriedades do objeto crystalReportViewer1,

porém, poderá haver situações quando se manipula relatórios dinamicamente em que

teremos de fazer isso via código.

Listagem 1. Configurando objeto crystalReportViewer1

private void Form1_Load(object sender, EventArgs e)

{

this.crystalReportViewer1.Dock = System.Windows.Forms.DockStyle.None;

this.crystalReportViewer1.Location =

new System.Drawing.Point(0, 90);

this.crystalReportViewer1.Size =

new System.Drawing.Size(1108, 626);

}

Com o visualizador de relatório pronto, agora é hora de inserirmos alguns componentes

da Toolbox dentro do Form1 para fazer o gerenciamento dos relatórios disponíveis na

aplicação, de forma que estes possam ser selecionados de forma interativa pelo usuário e

então visualizados.

Iremos adicionar um componente GroupBox dentro do formulário e configurar algumas

propriedades, conforme descrito a seguir.

· Name: gpbRelatorios;

· Text: Lista de relatórios;

· Location: 0;0;

· Size: 253; 84.

Agora iremos adicionar dentro do GroupBox três RadioButtons para representar os três

Page 34: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 34/43

relatórios que criamos anteriormente, dessa forma o usuário terá a opção de selecionar

qualquer um dos relatórios para visualizar no CrystalReportViewer, porém, poderá

visualizar apenas um de cada vez conforme a seleção.

Os três RadioButtons devem ser inseridos no GroupBox um abaixo do outro, e iremos

aplicar as seguintes configurações em suas propriedades:

· RadioButton 1

o Name: rdbCrystalReportFormat;

o Text: Relatório CrystalReportFormat.

· RadioButton 2

o Name: rdbCrystalReportRelatorio1;

o Text: Relatório CrystalReportRelatorio1.

· RadioButton 3

o Name: rdbCrystalReportTotais;

o Text: Relatório CrystalReportTotais.

Para gerar a visualização do relatório iremos inserir um Button no Form1 e depois

codificar o evento click do botão. O Button deve ser configurado da seguinte forma:

· Name: btnGerarRelatorio;

· Text: Visualizar Relatório;

· Location: 260; 60;

· Size: 114; 23.

É hora de codificar o evento click do botão para que possamos exibir o relatório de

acordo com a seleção feita no GroupBox pelo o usuário. Na Listagem 2 temos o código

necessário para mostrar o relatório na tela.

Listagem 2. Código para gerar o relatório

01 private void btnGerarRelatorio_Click(object sender, EventArgs e)

02 {

Page 35: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 35/43

03 ReportDocument objCrystalDoc = new ReportDocument();

04

05 string relSelecionado;

06

07 if (rdbCrystalReportFormat.Checked == true)

08 {

09 relSelecionado = "\\CrystalReportFormat.rpt";

10 }

11 else if (rdbCrystalReportRelatorio1.Checked == true)

12 {

13 relSelecionado = "\\CrystalReportRelatorio1.rpt";

14 }

15 else

16 {

17 relSelecionado = "\\CrystalReportTotais.rpt";

18 }

19

20 objCrystalDoc.Load(Application.StartupPath + relSelecionado);

21 this.crystalReportViewer1.ReportSource = objCrystalDoc;

22 this.crystalReportViewer1.Refresh();

23 }

O código da Listagem 2 mostra a criação de uma instância da classe ReportDocument

para carregar os relatórios .rpt. Na sequência é criada uma variável para armazenar o

nome do arquivo do relatório; depois tem um bloco if-else para verificar qual relatório foi

selecionado e atribuir o nome do deste à variável relSelecionado; em seguida é carregado

o relatório através do objeto ReportDocument; e por fim é informada a fonte de dados

para o visualizador de relatório crystalReportViewer1, dando um refresh para atualizar o

visualizador de relatório e mostrar o mesmo na tela.

Na Listagem 2 é importante ressaltar o comando Application.StartupPath, pois o mesmo

recupera o diretório atual do executável da aplicação, e para que os relatórios sejam

carregados de forma correta, os arquivos correspondentes a eles (os .rpt) devem estar

no mesmo diretório do executável.

Criando um relatório com parâmetros

Uma boa opção durante a criação de um relatório é possibilitar que o usuário possa

interagir com o ele no momento em que irá gerá-lo, ou seja, nem sempre um relatório irá

suprir as necessidades da busca por informação, pois há momentos em que se deseja

obter informações detalhadas ou resumidas, seja em um intervalo de data, uma

Page 36: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 36/43

determinada venda ou em uma busca das informações de um cliente. Para facilitar a vida

do usuário, temos que disponibilizar meios para que ele possa parametrizar o relatório

antes da geração do mesmo, informando parâmetros como datas para filtrar uma

informação em um intervalo de tempo, um código para obter informação de produto em

uma só página e realizar uma impressão rápida, dentre diversos tipos de parâmetros que

possam permitir ao usuário interagir com o relatório e obter a informação que precisa.

Um relatório bem elaborado com boas opções de parâmetros às vezes evita a

necessidade de criar novos relatórios futuramente, porém, um relatório com uma grande

quantidade de parâmetros pode levar ao não uso do mesmo, devido ao usuário sentir

dificuldade para realizar o preenchimento de todos os parâmetros (que pode acabar não

sendo o relatório que se esperava devido ter marcado algum parâmetro errado).

Quanto maior for a quantidade de parâmetros em um relatório, maior será o filtro para se

obter uma determinada informação, por consequência, também será maior o tempo para

gerar e carregar o relatório. Neste ponto devem ser avaliadas e verificadas as condições

de hardware para processar os relatórios solicitados e devem ser analisadas a

possibilidades de um servidor independente para relatórios, isso depende muito da

necessidade e quantidade de usuários gerando relatórios ao mesmo tempo no sistema.

Para exemplificar a criação de um relatório com parâmetros iremos copiar o arquivo do

relatório CrystalReportFormat e nomear o novo como CrystalReportParametro, então

passaremos a trabalhar nessa nova cópia.

Com SAP Crystal Reports podemos trabalhar com parâmetros para relatório de forma

muito fácil através do Parameter Fields, opção com a qual podemos inserir parâmetros

estáticos e dinâmicos no relatório.

Para mostrar o uso de parâmetros, iremos adicionar dois parâmetros estáticos ao

relatório, onde o usuário terá a opção de selecionar apenas uma determinada Order para

o segundo agrupamento de dados, ou selecionar apenas um determinado produto para

que possam ser exibidas todas as ordens em que mesmo consta, de acordo com o

agrupamento do relatório.

Primeiramente criaremos os dois parâmetros para o relatório através do Field Explorer >

Parameter Fields e os chamaremos de parametroGrupoOrder e

parametroRegistroProduto. Observe como deve ficar a configuração do primeiro

parâmetro na Figura 14, o segundo deve seguir a mesma configuração, modificando

apenas o nome para parametroRegistroProduto.

Page 37: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 37/43

abrir imagem em nova janela

Figura 14. Configuração de parâmetro para relatório

Na tela de configuração de parâmetro exibida na Figura 14 foi primeiramente definido o

nome do parâmetro, e depois o tipo de dado, que deve ser do mesmo tipo da coluna na

tabela da base de dados. Em nosso caso, OrderID e ProductId são do tipo int, estão

devemos configurar o parâmetro do relatório para receber um valor numérico.

Um parâmetro em um relatório no SAP Crystal Reports pode receber dados de vários

tipos, como booleano, data, data hora, hora, moeda, número e sequência de caracteres.

Após ter definido os parâmetros do relatório, é hora de definir como o relatório irá usar

esses valores para filtrar os dados.

O SAP Crystal Reports nos possibilita definir fórmulas no nível de grupo e registro, e

como nosso relatório possui um grupo, e dentro do grupo temos os registros a serem

exibidos, então iremos definir uma fórmula para filtrar uma determinada ordem pelo

campo OrderID a nível de grupo, e outra fórmula a nível de registro para filtrar um

produto pelo campo ProductID. Dessa forma iremos recuperar o código da ordem ou do

produto passado via parâmetro e utilizar os valores dentro das fórmulas para filtrar dos

dados e gerar o relatório, sendo que o usuário só irá poder filtrar uma ordem ou um

Page 38: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 38/43

produto por vez.

Para inserir a primeira fórmula no nível de grupo iremos ao menu Crystal Reports >

Report > Selection Formula > Group e logo irá abrir a janela do editor de fórmula com a

seleção de grupo já previamente feita. Devemos expandir a opção de campos do relatório

e selecionar o campo Orders.OrderId para compor a fórmula. Na sequência, dentro da

janela operadores, iremos inserir o operador de comparação igual e por último selecionar

parâmetro parametroGrupoOrder que encontra-se na janela campos do relatório, para

finalizar a fórmula a nível de grupo.

Com a janela do editor de fórmula ainda aberta, iremos inserir a fórmula para filtrar o

produto no nível de registro. Devemos apenas selecionar a opção Seleção de Registro,

localizada à esquerda do editor de fórmula. Caso não tenhamos a janela aberta, podemos

ir ao menu Crystal Reports > Report > Selection Formula > Record e logo irá abrir

novamente o editor com a seleção de registro já pronta para receber a fórmula. A

fórmula para selecionar um determinado produto deve seguir o mesmo molde da seleção

de grupo, onde iremos alterar apenas Orders.OrderID para Products.ProductID e

parametroGrupoOrder para parametroRegistroProduto.

Com as fórmulas previamente definidas, precisamos colocar em cada fórmula criada uma

estrutura de controle if-else disponível nos operadores para fórmulas. Esta estrutura de

if-else irá verificar se o usuário está gerando um relatório com filtro para uma ordem ou

para um produto.

As Listagens 3 e 4 mostra como devem ficar as fórmulas para seleção de grupo e

registro do relatório, respectivamente. As fórmulas verificam se o valor de cada

parâmetro é diferente de zero, se for, realizam o filtro, caso contrário, listam todos os

registros válidos (OrderID > 0 e ProductID > 0).

Listagem 3. Fórmula para seleção do grupo

if((?parametroGrupoOrder) <> 0)

then

((Orders.OrderID) = (?parametroGrupoOrder))

else

((Orders.OrderID) > 0)

Listagem 4. Fórmula para seleção do registro

Page 39: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 39/43

if((?parametroRegistroProduto) <> 0)

then

((Products.ProductID) = (?parametroRegistroProduto))

else

((Products.ProductID) > 0)

Agora precisamos inserir alguns objetos no Form1 para que o usuário possa passar

como parâmetro para o relatório o número de uma ordem, ou um código de um produto

especifico. Para isso, iremos colocar alguns componentes no Form1, conforme segue;

· GroupBox

o Name: gpbParametro;

o Text: Selecione o Parâmetro;

o Location: 379; 0;

o Size: 261; 83;

Em seguida adicionaremos dentro do GroupBox dois RadioButton para que o usuário

possa selecionar o tipo de filtro que deseja no relatório, por ordem ou produto, como

descrito a seguir;

· RadioButton 1

o Name: rdbOrdem;

o Text: Por ordem.

· RadioButton 2

o Name: rdbProduto;

o Text: Por produto

Também iremos adicionar dentro do GroupBox um Textbox para recuperar o valor

digitado pelo o usuário, neste TextBox o usuário tanto pode informar o número da

ordem como o código do produto, de acordo com o RadioButton selecionado;

· Textbox 1

o Name: txtParametro.

Page 40: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 40/43

Ainda precisamos adicionar dentro do GroupBox gpbRelatorios um RadioButton para

representar o último relatório criado, o CrystalReportParametro. Vejamos na sequência a

configuração do último RadioButton:

· RadioButton 4

o Name: rdbCrystalReportParametro;

o Text: Relatório CrystalReportParametro.

Com todos os componentes necessários no Form1, se executarmos o gerenciador de

relatório, ele deve ficar semelhante à Figura 15.

abrir imagem em nova janela

Figura 15. Tela do gerenciador de relatórios

Agora que temos a parte visual do gerenciador de relatório pronta, precisamos fazer

algumas modificações no código do evento click do botão que gera o relatório

selecionado no gerenciador de relatórios.

A Listagem 5 mostra como deve ficar a nova implementação de código do evento click

do botão do gerenciador de relatório. Temos duas regions que devem ser destacadas, a

primeira é a “seleção do relatório”, onde foi modificada a estrutura do if-else para a

Page 41: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 41/43

inserção do novo relatório CrystalReportParametro. A segunda region “verificar relatório

com parâmetro” verifica se foi selecionado o relatório CrystalReportParametro, em caso

positivo, é verificado qual foi o tipo de parâmetro selecionado, ordem ou produto, e

então é setado o parâmetro na instância do ReportDocument, através do método

SetParameterValue, que recebe dois valores como parâmetro, o primeiro é o nome do

parâmetro no relatório e o segundo é o valor a ser repassado.

Listagem 5. Código para geração do relatório

01 private void btnGerarRelatorio_Click(object sender, EventArgs e)

02 {

03 ReportDocument objCrystalDoc = new ReportDocument();

04

05 string relSelecionado;

06

07 #region Seleção do relatório

08 if (rdbCrystalReportFormat.Checked == true)

09 {

10 relSelecionado = "\\CrystalReportFormat.rpt";

11 }

12 else if (rdbCrystalReportRelatorio1.Checked == true)

13 {

14 relSelecionado = "\\CrystalReportRelatorio1.rpt";

15 }

16 else if (rdbrdbCrystalReportTotais.Checked == true)

17 {

18 relSelecionado = "\\CrystalReportTotais.rpt";

19 }

20 else

21 {

22 relSelecionado = "\\CrystalReportParametro.rpt";

23 }

24 #endregion

25

26 objCrystalDoc.Load(Application.StartupPath + relSelecionado);

27

28 #region Verificar relatório com parâmetro

29 if (relSelecionado == "\\CrystalReportParametro.rpt")

30 {

31 if (rdbOrdem.Checked == true)

32 {

33 objCrystalDoc.SetParameterValue

("parametroGrupoOrder",

int.Parse(txtParametro.Text));

Page 42: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 42/43

34 objCrystalDoc.SetParameterValue

("parametroRegistroProduto", 0);

35 }

36 else

37 {

38 objCrystalDoc.SetParameterValue

("parametroRegistroProduto",

int.Parse(txtParametro.Text));

39 objCrystalDoc.SetParameterValue

("parametroGrupoOrder", 0);

40 }

41 }

42 #endregion

43

44 this.crystalReportViewer1.ReportSource = objCrystalDoc;

45 this.crystalReportViewer1.Refresh();

46 }

Novamente já é possível executar o gerenciador e testar a visualização dos relatórios.

Conclusão

Este artigo tratou de mostrar o conceito introdutório para criação de relatórios com SAP

Crystal Reports, mostrando uma das diversas formas de criar relatórios e disponibilizar

em um sistema através de um gerenciador de relatório simples. Porém, é importante

frisar que esta poderosa ferramenta geradora de relatório vai muito além dos exemplos

aqui mostrados, existem muitos recursos que devem ser explorados, possibilitando a

criação de relatórios de forma rápida, fácil e integrada a uma solução desenvolvida com a

plataforma .NET e linguagem de programação C#.

É importante destacar que podemos criar relatórios com gráficos de diversos tipos, como

de linhas, pizza e ainda podemos criar um relatório com SAP Crystal Reports em cima um

DataSet disponível em uma aplicação .NET. Com este recurso é possível criar relatórios

dinamicamente direto na programação com as bibliotecas do Crystal disponível para a

plataforma .NET.

O conhecimento adquirido neste artigo serve como base para você iniciar uma exploração

mais detalhada dos recursos do SAP Crystal Reports, podendo disponibilizar seus

relatórios em aplicações WPF, ASP.NET e até mesmo disponibilizar através de um serviço

WebService.

Page 43: Crystal Reports_ Criando Relatórios Com SAP

28/03/14 Crystal Reports: Criando relatórios com SAP

www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=29700 43/43

Trabalhar na criação de relatórios não é uma tarefa fácil inicialmente, mas à medida que

se vai ganhando novos conhecimentos e praticando bastante, conseguimos ter um

domínio maior e é neste ponto que desperta a criatividade para resolução de problemas e

criação de relatórios robustos, que atendam a necessidades do usuário. Isso sem

sombra de dúvida é a parte mais gratificante para um desenvolvedor.

Links

Download Crystal Reports

http://scn.sap.com/docs/DOC-35074

Download Nortwind

http://www.microsoft.com/en-us/download/details.aspx?id=23654

Site SAP Crystal Reports para desenvolvedores

http://global.sap.com/brazil/solutions/sap-crystal-

solutions/developers/index.epx

Madson Aguiar Rodrigues

Formação acadêmica em Análise e Desenvolvimento de Sistemas e Pós-Graduação em Engenharia de

Software cursando atualmente Especialização de Tecnologias para aplicações Web. Trabalha com

desenvolvimento de software há cinco anos co [...]