apostila de crystal report

38
CrystalReport XI – Versão Beta 02 Página 1 de 38 Sobre o Crystal Reports Crystal Reports é projetado para trabalhar com seu banco de dados para ajudar a analisar e interpretar informações importantes. Cristal Reports facilita criação de relatórios simples e também tem ferramentas poderosas necessárias para gerar relatórios complexos ou especializados. Criar qualquer relatório que você pode pensar Crystal Reports é projetado para gerar o relatório que desejar a partir de praticamente qualquer fonte de dados. Os Wizards irão guiá-lo passo a passo através da criação de relatórios e execução de tarefas comuns relacionadas ao uso de relatórios. Fórmulas, cross-tabs, sub-relatórios e formatação condicional ajudam entender melhor os dados e descobrir relações importantes que de outra forma poderia estar oculta. Os gráficos e mapas geográficos fornecem informações visualmente quando as palavras e os números não são suficientes. Estender relatórios para a Web A flexibilidade do Crystal Reports não termina com a criação de relatórios, uma vez que podem ser publicados em uma variedade de formatos, incluindo Microsoft Word e Excel, e-mail e até mesmo na web. O tratamento posterior de relatórios sobre a Internet permite que outros membros do seu grupo de trabalho visualizar e atualizar relatórios compartilhados em seus navegadores. Incorporar relatórios em aplicações Desenvolvedores e aplicações Web pode economizar tempo e atender às necessidades de seus usuários, integrando o poder de processamento relatório do Crystal Reports em suas aplicações de banco de dados. O apoio da linguagens de desenvolvimento mais utilizados fácil de adicionar relatórios para qualquer aplicação. Se o Web Services Manager em TI, marketing manager promoção em, o administrador do banco no financiamento ou o CEO, o Crystal Reports é uma ferramenta poderosa projetada para ajudar qualquer usuário a analisar e interpretar informações importante para todos.

Upload: andre-nascimento

Post on 25-Dec-2014

4.713 views

Category:

Technology


6 download

DESCRIPTION

Apostila de Crystal Report

TRANSCRIPT

Page 1: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 1 de 38

Sobre o Crystal ReportsCrystal Reports é projetado para trabalhar com seu banco de dados para ajudar a analisar e interpretar informações importantes. Cristal Reports facilita criação de relatórios simples e também tem ferramentas poderosas necessárias para gerar relatórios complexos ou especializados.

Criar qualquer relatório que você pode pensar

Crystal Reports é projetado para gerar o relatório que desejar a partir de praticamente qualquer fonte de dados.

Os Wizards irão guiá-lo passo a passo através da criação de relatórios e execução de tarefas comuns relacionadas ao uso de relatórios.

Fórmulas, cross-tabs, sub-relatórios e formatação condicional ajudam entender melhor os dados e descobrir relações importantes que de outra forma poderia estar oculta.

Os gráficos e mapas geográficos fornecem informações visualmente quando as palavras e os números não são suficientes.

Estender relatórios para a Web

A flexibilidade do Crystal Reports não termina com a criação de relatórios, uma vez que podem ser publicados em uma variedade de formatos, incluindo Microsoft Word e Excel, e-mail e até mesmo na web.

O tratamento posterior de relatórios sobre a Internet permite que outros membros do seu grupo de trabalho visualizar e atualizar relatórios compartilhados em seus navegadores.

Incorporar relatórios em aplicações

Desenvolvedores e aplicações Web pode economizar tempo e atender às necessidades de seus usuários, integrando o poder de processamento relatório do Crystal Reports em suas aplicações de banco de dados.

O apoio da linguagens de desenvolvimento mais utilizados fácil de adicionar relatórios para qualquer aplicação.

Se o Web Services Manager em TI, marketing manager promoção em, o administrador do banco no financiamento ou o CEO, o Crystal Reports é uma ferramenta poderosa projetada para ajudar qualquer usuário a analisar e interpretar informações importante para todos.

Page 2: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 2 de 38

Apresentando o IDE do CrystalReport

Figura 01

Page 3: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 3 de 38

Usando o Assistente para Criação de Relatórios Simples

Conexão com Fontes de DadosPodemos criar conexão com fontes de dados das mais variadas origens confor visto no tópico introdutório. Aqui, vamos utilizar conexão com uma base de dados SQL Server da Microsoft, representada pelo diagrama da Figura 01.

Figura 01

Passo 01Acesse a opção de menu Arquivo | Novo | Relatório Padrão..., observando o resultado apresentado na Figura 02.Selecionando o nó OLE DB (ADO), clique no sinal + para expandir o nó, tendo como resposta a imagem da Figura 03. Nesta fase, selecione a opção SQL Server Native client 10.0 clicando em seguida no botão Avançar.

Figura 02Figura 03

Figura 04 Figura 05

Preencha os campos Servidor, ID do Usuário, Senha e Banco de Dados respectivamente com Nome do Servidor\SQL Express, sa, 123 e BancoCrusoCSharp conforme Figura 04. Em seguida clique no botão Avançar tendo como resposta a imagem da Figura 05. Finalize clicando no botão Concluir, encerrando os passos para conexão com a base de dados.

Page 4: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 4 de 38

Passo 02Concluído a conexão, conforme exibido na Figura 06, será exibido um nó listando as tabelas da base de dados. Selecione o nó representado pela tabela Cliente clicando no botão representado pelo sinal >, em seguida, clique no botão Avançar.Tendo como referência a imagem da Figura 07, selecione do lado esquerdo da caixa de dialogo (Campos Disponíveis) os campos ID, Nome, Data e Limite_Credito, clicando no botão com o sinal de >. Repare na mesma imagem, os campos selecionados no lado direito (Campos a Serem Exibidos).

Figura 06 Figura 07

As próximas duas figuras, a saber, Figura 08 e Figura 09 não abordaremos neste momento, mas são se suma importância, pois possibilitam respectivamente configurar o relatório para apresentarem dados agrupados, além, de ordenados por algum campo ou combinação de.

Figura 08 Figura 09

Finalizando a etapa de construção do primeiro relatório, clique no botão Avançar na Figura 09, sendo direcionado para a caixa de dialogo representada pela imagem da Figura 10 onde podemos observar um preview do relatório. Clique no botão Concluir e pronto.

Figura 10

Page 5: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 5 de 38

Repare as duas abas, Projetar e Visualizar, representadas pelas Figuras 11 e 10.A aba Visualizar exibe um preview de como o relatório (neste caso com dados reais) será exibido, e impresso.Já a aba Projetar, no IDE do CrystalReport, temos acesso a estrutura física do relatório, onde podemos aplicar as bandas Cabeçalho, Detalhe, Rodapé entre outras elementos visuais tais como colunas (campos de tabelas), elementos gráficos e etc.

Figura 11

Figura 12

Salve o relatório em um diretório conforme imagem da Figura 13. Salve-o com o nome de Exemplo-01.rpt.

Figura 13

Page 6: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 6 de 38

Criando um Relatórios Padrão com Tabelas Relacionadas

Passo 01Acesso a opção de menu Arquivo | Novo | Relatório em Branco... da IDE do CrystalReport, tendo como resultado a Figura 01. Em seguida, salve e renomeie o relatório como Exemplo_02.rpt.

Figura 01

Passo 02Acione a opção de menu Banco de Dados | Especialista em Banco de Dados, em seguida, conforme a Figura 02, selecione as tabelas Cliente ItemPedido, Pedido e Produto da conexão anteriormente estabelecida. Clique no botão com o sinal > para que sejam exibidas na área Tabelas Selecionadas. Clique no botão Ok para ver a próxima tela (Figura 03) da caixa de dialogo Especialista em Banco de Dados, sobretudo a aba Link.

Figura 02

Figura 03

Observando a caixa de dialogo Especialista em Banco de Dados, aba Link, vemos as tabelas escolhidas para compor este relatório representadas como um diagrama de entidades com seus relacionamentos. Para as tabelas em questão, foi aplicado as formas Normais adequadas, sobre tudo, foi implementado os relacionamentos por intermédio da Chaves Primárias e Chaves Estrangeiras.

Page 7: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 7 de 38

Este fato, a existência destas chaves, garante conforme a opção Auto Link, o relacionamento Por Chave. De outra forma, a opção Por Nome, permitiria o relacionamento entre as tabelas (Entidades) com base nos nomes dos campos.

Clicando no botão Link, será exibido a caixa de dialogo representada pela Figura 04, onde as condições Tipo de Junção, Imposição de Junção e Tipo de Link (operador) estão disponíveis para configuração da forma de junção.

Figura 04

Já o botão Ordenar Link, naturalmente nos conduz a uma interface em que escolhemos a ordem de ordenação, escolhendo as colunas que determinarão essa ordem. As setas indicando para cima e para baixo possibilitam esta escolha.

Figura 05

Passo 03Conforme Figura 06, repare nas bandas (sessões) do relatório recém-criado, conferindo seus significados na tabela (Tabela 01) abaixo:

Banda Exibição

Cabeçalho do Relatório Exibida somente no topo da primeira página do relatório.

Cabeçalho da Página Exibida em todas as páginas do relatório, na parte superior.

Detalhes Acomoda e lista os valores dos campos de dados.

Rodapé do Relatório Exibida no final da última página (parte inferior).

Rodapé da Página Exibida na parte inferior de todas as páginas.

Tabela 01

Page 8: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 8 de 38

Agora vamos aplicar alguns campos na bada Detalhes, obtendo-os da caixa de dialogo representada pela Figura 07. Para tanto, selecione e arraste as colunas (campos) para a banda Detalhe, observando que acima, na banda Cabeçalho da Página, é aplicado o controle que representará o título da coluna (campo).Repare o resultado final na imagem da Figura 08. Os campos selecionados foram: Nome da tabela Cliente, ID da tabela Pedido, Quantidade da tabela ItemPedido e por fim, Descricao da tabela Produto.

Figura 06

Figura 07

Figura 08

Passo 04Clique na opção de menu Visualizar | Visualizar Amostra, tendo com resultado a imagem da Figura 09, onde podemos configurar a quantidade de registros a ser exibido no preview de dados.

Figura 09

Page 9: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 9 de 38

O resultado deste passo pode ser observado na Figura 10.

Figura 10

Passo 05A título de entendermos como é formado a instrução SQL enviado a fonte de dados, selecione a opção de menu Banco de Dados | Mostra Consulta SQL. A Figura 11 exibe o resultado desta ação, exibindo o código da instrução Select. Para melhor visualização da instrução Select e seus relacionamentos exibimos também o mesmo código na Listagem 01.

Figura 11

Listagem 01

1. SELECT "Cliente"."Nome", 2. "Pedido"."ID",3. "ItemPedido"."Quantidade", 4. "Produto"."Descricao"5. FROM( ("BancoCursoCSharp"."dbo"."ItemPedido" "ItemPedido" INNER JOIN 6. "BancoCursoCSharp"."dbo"."Pedido" "Pedido" ON "ItemPedido"."PedidoID"="Pedido"."ID"7. ) INNER JOIN "BancoCursoCSharp"."dbo"."Produto" "Produto" ON 8. "ItemPedido"."ProdutoID"="Produto"."Id"9. ) INNER JOIN "BancoCursoCSharp"."dbo"."Cliente" "Cliente" ON "Pedido"."ClienteID"="Cliente"."ID"

Passo 06Agora vamos definir a ordenação dos dados, já que não o fizemos na instrução SQL (Select). Para tanto, escolha a opção de menu Relatório | Especialista em Classificação de Registros. Escolha em Campos disponíveis o campo Nome do Cliente, clicando em seguida no botão > para definir ordenação dos dados por este campo.

Figura 12

Page 10: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 10 de 38

Passo 07Visando dar maior realismo ao nosso exemplo de consulta, vamos nesta etapa, adicionar um objeto Campo Parâmetro para compor na cláusula Where da instrução SQL da consulta uma sentença de filtro de registros. Naturalmente, vamos exercitar adicionando um parâmetro, mas fique livre para cria uma condição com mais sentenças.Então, na caixa de dialogo representada pela Figura 13, clicando com o botão direito do mouse sobre Campos de Parâmetros escolha a opção Novo.

Figura 13

Se baseando na Figura 14, preencha o nome do parâmetro como Par_NomeParcialCliente no campo Nome e no campo Tipo defina Sequência de Caracter. Clique no botão Ok e pronto. A Figura 15 exibe a caixa de dialogo da Figura 13 contendo agora um Campo de Parâmetro.

Figura 14

Figura 15

Passo 08Já com o Campo Parâmetro criado vamos construir a sentença que promoverá o filtro de registro, dimensionando o resultado a partir desta condição.Para tanto, escolha a opção de menu Relatórios | Fórmula de Seleção | Registro..., obtendo com resposta a caixa de dialogo representada pela Figura 16.

Page 11: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 11 de 38

Figura 16

Ainda neste passo, expanda o nó Cliente, clicando e arrastando o campo Nome para a área inferior da caixa de dialogo representada pela Figura 16. Ainda na mesma, busque em Operadores, nó Padrão, a opção Like (operador) arrastando-o para a mesma área citada anteriormente. Por fim, ao lado do operador Like, arraste o parâmetro Par_NomeParcialCliente obtido em Campos do Relatório (nó) concatenando ao mesmo '*' como caractere coringa (digitando direto na área inferior ao lado do operador Like).

Para melhor visualização segue o código resultante:

{Cliente.Nome} like {?Par_NomeParcialCliente} + '*'

Passo 09Vamos fazer um teste da solução de filtro de registros.Selecione a opção de menu Visualizar | Visualizar Amostra tendo como resposta a caixa de dialogo representada pela Figura 17. Desejando, podemos optar por visualizar somente um número específico de registros, minimizando o processo de demonstração.

Figura 17

Clicando no botão Ok (Figura 17), obteremos a interface Digitar Valores (Figura 18), para a qual sugerimos inserir a letra “C” antecedendo o caractere coringa “*”.

Figura 18

Page 12: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 12 de 38

Após clicar no botão Ok na interface da Figura 18, teremos como resposta o relatório da Figura 19.

Figura 19

Importante observar a cláusula Where da instrução Select (código SQL) gerado para a consulta. Na Listagem 02, em negrito, o valor “C*” foi substituido por “C%”, trocando o caractere curinga “*” por “%” para adequação a linguagem SQL.

Listagem 02

1. SELECT DISTINCT "Cliente"."Nome", "Pedido"."ID", "ItemPedido"."Quantidade", "Produto"."Descricao"2. FROM (("BancoCursoCSharp"."dbo"."ItemPedido" "ItemPedido" INNER JOIN3. "BancoCursoCSharp"."dbo"."Pedido" "Pedido" ON "ItemPedido"."PedidoID"="Pedido"."ID") INNER JOIN4. "BancoCursoCSharp"."dbo"."Produto" "Produto" ON "ItemPedido"."ProdutoID"="Produto"."Id") INNER JOIN5. "BancoCursoCSharp"."dbo"."Cliente" "Cliente" ON "Pedido"."ClienteID"="Cliente"."ID"6. WHERE "Cliente"."Nome" LIKE 'C%' ORDER BY "Cliente"."Nome"

Refaça o teste, mas agora mantendo exclusivamente o valor “*” para servir de argumento para o filtro. Confira esses passos e o resultado na Figura 20, Listagem 03 e Figura 21.

Figura 20

Listagem 03

1. SELECT DISTINCT "Cliente"."Nome", "Pedido"."ID", "ItemPedido"."Quantidade", "Produto"."Descricao"2. FROM (("BancoCursoCSharp"."dbo"."ItemPedido" "ItemPedido" INNER JOIN3. "BancoCursoCSharp"."dbo"."Pedido" "Pedido" ON "ItemPedido"."PedidoID"="Pedido"."ID") INNER JOIN4. "BancoCursoCSharp"."dbo"."Produto" "Produto" ON "ItemPedido"."ProdutoID"="Produto"."Id") INNER JOIN5. "BancoCursoCSharp"."dbo"."Cliente" "Cliente" ON "Pedido"."ClienteID"="Cliente"."ID"6. WHERE "Cliente"."Nome" LIKE '%' ORDER BY "Cliente"."Nome"

Figura 21

Page 13: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 13 de 38

Configurando o Visual de Elementos (objetos) do Relatório

Passo 01A

Figura 01

Figura 02

Figura 03

Figura 04

Page 14: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 14 de 38

Figura 05

Figura 06

Figura 07

Page 15: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 15 de 38

Figura 08

Figura 09

Figura 10

Figura 11

Page 16: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 16 de 38

Figura 12

Figura 13

Figura 14

Figura 15

Page 17: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 17 de 38

Criando um Relatório de Referência Cruzada

Passo 01Inicie um novo relatório, agora, optando por menu Arquivo | Novo | Relatório de Tabela de Referência Cruzada. Como de costume, o ambiente exibirá a caixa de dialogo do assistente solicitando indicarmos uma conexão existente ou criarmos uma nova. Confira a sequência se orientando pelas Figuras 01, 02, 03 e 04 clicando no botão Incluir na caixa da Figura 04.

Figura 01

Figura 02

Figura 03

Page 18: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 18 de 38

Figura 04

Concluído a etapa de conexão com a base de dados, será apresentado a caixa de dialogo representada pela Figura 05, para a qual selecionaremos as tabelas Cliente, Pedido, ItemPedido e Produto clicando em avançar em seguida. Repare na imagem da Figura 06, que resume o diagrama de relacionamento entre as tabelas selecionadas como resposta ao clique do botão Avançar da Figura 05. Clique novamente no botão Avançar observando agora o resultado exibido pela Figura 07.

Figura 05

Figura 06

Neste ponto, escolhemos os campos para gerar o relatório, alocando-as na áreas Colunas (canto superior esquerdo), Linhas (lado inferior esquerdo) e Campos de Resumo (lado inferior direito)

Figura 07

Page 19: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 19 de 38

Da forma que optamos pela escolha dos campos do relatório, considerando que é um relatório de referência cruzada e não um relatório tabular, será exibido neste modelo as colunas como sendo o Cliente (Nome do Cliente), nas linhas serão exibidos a Descrição do Produto, e por fim, a totalização da soma das Quantidades de ItemPedido (quantidade vendida por produto) apresentando uma coluna para as vendas totais de Produto por Cliente e uma coluna resumindo a venda total por Produto de todos os clientes envolvidos.

Figura 08

Nesta fase (Figura 09) simplesmente seguiremos em frente clicando no botão Avançar, não aplicando nenhum filtro.

Figura 09

Antes de finalizar, clicando no botão Concluir, escolha um estilo na lista Estilos disponíveis observando a aparência no lado direito.

Figura 10

Passo 02Para que tenhamos a possibilidade de escolha do cliente que constará no relatório, incluiremos um parâmetro no relatório, procedendo na sequência, sua utilização na cláusula Where da consulta SQL. Este parâmetro servirá ao filtro do campo Cliente.ID para o operador de igualdade.

Então, clique com o botão direito do mouse sobre o nó Campos de Parâmetro na caixa Explorador de Campos. Conforme resultado exposto na Figura 11, indique no campo nome Par_ClienteID, para o campo Tipo escolha Número e Lista de Valores como estático.

Page 20: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 20 de 38

Figura 11

Passo 02Uma vez criado o parâmetro, devemos agora utilizá-lo como filtro da instrução Select do relatório. Para tanto, selecione a opção de menu Relatório | Formas de Seleção | Registro..., criando a instrução {Cliente.ID} = {?Par_ClienteID}. Tal instrução pode ser simplesmente digitada na área adequada, ou usando o mouse para selecionar os campos.

Figura 12

Na sequência, após clicar em Salvar e Fechar na caixa da Figura 12, teremos como resposta a sequência de interfaces representada pelas Figuras 13 e 14, possibilitando um teste no relatório, agora com o devido filtro. Para tanto é necessário passar um número de Cliente (na prática o valor de Chave Primária de um Cliente).

Figura 13

Figura 14

Page 21: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 21 de 38

O resultado tanto da mostra de registro quanto da estrutura do relatório recém criado pode ser observado nas Figuras 15 e 16, respectivamente abas Visualizar e Preparar, alternando entre elas.

Figura 15

Figura 16

Passo 03Uma questão importante, é a escolha do formato do relatório no tocante a dimensão, uma vez que desejaremos imprimir e ou exportar para outros tipos de arquivo, possibilitando assim sua distribuição.

Assim sendo, clique com o botão direito do mouse sobre qualquer área de relatório, selecionando a opção Configuração da Página..., obtendo a interface da Figura 17 para qual faremos os ajustes conforme o exposto. Definimos ai coisas como altura, largura (escolhendo na lista Tamanho) bem como Orientação e Margens.

Figura 17

Page 22: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 22 de 38

Repare que agora visualizamos (Figura 18) as margens definidas já no novo formato de página (aqui A4).

Figura 18

Passo 04Agora vamos alterar o lay-out do relatório redimensionando alguns elementos. Selecione a primeira coluna (Descrição do Produto) e em seguida a segunda coluna (Nome do Cliente), clicando com o botão direito do mouse sobre as mesmas e escolhendo a opção Tamanho e Posição no menu de contexto. Aplique os valores definidos nas Figura 19 e 20 respectivamente, observando o resultado na Figura 21.

Figura 19

Figura 20

Figura 21

Page 23: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 23 de 38

Passo 05Fique livre para exercitar a formatação do relatório, selecionando no menu de contexto alcançado com o clique no botão direito do mouse sobre a área do relatório, utilizando as abas Comum, Moldura e Hiperlink. Aqui, conforme Figura 22, utilizamos aplicar um Sombra cor verde na área do relatório.

Figura 22

Figura 23

Page 24: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 24 de 38

Exercício PropostoCrie um novo relatório de Tabela de Referência Cruzado, onde possamos observar na vertical, como colunas, a Descrição do Produto.Com relação as linhas do relatório, deveremos ter a data de venda do item (ItemPedido), logo, será exibido o campo Data do Pedido. Por fim, devemos ter como totalizador de coluna o acumulado da venda de itens (linha) por data, para cada Produto (coluna).Para uma pequena ajuda, já que a proposta é o aluno desenvolver o exercício, antecipamos uma sequência de imagens (da Figura 01 a Figura 08) que você deverá percorrer.

Figura 01 Figura 02

Figura 03 Figura 04

Figura 05 Figura 06

Figura 07

Figura 08

Page 25: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 25 de 38

Criando um Aplicativo Asp.Net para Vizualizar Relatórios

Existe maneiras de visualização de relatórios gerado no CrystalReport. A mais convencional seria utilizar a própria ferramenta de desenvolvimento CrystalReport para executar seus relatórios. Na verdade é distribuído uma ferramenta denominada Crystal Reports Viewer, capaz de exibir relatórios padrão RPT, distribuídos pela companhia.

Aqui adotaremos uma solução mais avançada e de maior alcance, a partir de uma aplicação disponível pela internet ou intranet os usuários poderão selecionar e executar tais relatórios.

Normalmente, na verdade desejável, relatórios são expressões formatadas de dados dos aplicativos. É comum em algum ponto de um sistema, a saber, consultas em geral, apresentar seu resultado na forma de relatório a ser impresso ou exportado para outros formatos como planilhas eletrônica, PDF ou HTML.

Passo 01Inicie o ambiente do VisualStudio. Neste ponto veremos o IDE conforme Figura 01.

Figura 01

No menu File | New | Web Site, selecione ASP.NET Empty Web Site, conforme Figura 02.

Figura 02

Page 26: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 26 de 38

Crie um diretório para armazenar seu aplicativo, se orientando pela Figura 03.

Figura 03

Complementando esta etapa, repare na Figura 04, exibindo a Soluction Explore, onde podemos visualizar o projeto recém-criado.

Figura 04

Passo 02Na caixa de dialogo Soluction Explore (Figura 04) clique com o botão direito do mouse sobre o nó do projeto (c:\...\VisualizarWebASPX\) selecionando confirme Figura 05 a opção Add New Item.

Figura 05

Page 27: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 27 de 38

Conforme Figura 06, selecione a opção Master Page, objetivando criarmos uma página mestre para servir de modelo para todas as páginas do projeto. Esta prática é comum, uma vez que em regra geral, todas as páginas de um sistema web mantem um padrão visual. Em OOP, esta característica é definida como herança, neste caso, basicamente visual.

Figura 06

Como resultado obtemos a imagem da Figura 07, exibindo a página mestre em modo de design.

Figura 07

Se baseando na Figura 08, caixa Toolbox, aba Standard, selecione e aplique sobre a área de design da página mestre um controle Image. Este componente exibirá uma imagem confeccionada para a cabeça de nosso site, naturalmente sendo exibido em todas as páginas que que forem criadas por herança da página mestra.

Figura 08

Page 28: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 28 de 38

Conforme a Figura 10, adicione os diretórios CSS para o arquivo de folha de estilo, IMG para arquivos de imagens do site e RPT para as cópias de relatórios gerados no CrystalReport.

Caso a caixa de dialogo representada pela Figura 09 (Properties) não esteja sendo exibida, habilite-a no menu View | Properties Windows. Em seguida, configure as propriedades do controle Image conforme indicado na Tabela 01.

Tabela 01

Propriedade Valor

(ID) ImageCabecaSite

Width 1000

Height 133

ImageURL IMG/CabecaSite.jpg

Figura 09

Figura 10

Repare o resultado exibido pela Figura 11

Figura 11

Page 29: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 29 de 38

Alterne entre o modo Design e o modo Source, clicando nas respectivas abas na parte inferior. A Listagem 01 exibe o código (tags) ASPX relativo a página mestra.

Aplique (ajuste) ao código de sua página mestre, o código relativo as linhas 13, 14, 15, 22 e 23, fazendo com que o conteúdo das páginas sejam centralizados com relação a área total do browser. Repare que a tag DIV, linha 14, configura uma borda que delimita visualmente uma área útil.

Listagem 01

1. <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs"2. Inherits="MasterPage" %>3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 4. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">5. <html xmlns="http://www.w3.org/1999/xhtml">6. <head runat="server">7. <title></title>8. <asp:ContentPlaceHolder id="head" runat="server">9. </asp:ContentPlaceHolder>10. </head>11. <body>12. <form id="form1" runat="server">13. <div align="center">14. <div style="position: relative; height:500px; 15. width:1000px; border: 1px solid #808080"> 16. <asp:Image ID="ImageCabecaSite" runat="server" Height="133px" Width="1000px"17. ImageUrl="~/IMG/CabecaSite.jpg" style="z-index: 1; left: 0px; top: 0px;18. position: relative; border: 1px solid #808080"19. /> 20. <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">21. </asp:ContentPlaceHolder> 22. </div>23. </div>24. </form>25. </body>26. </html>

Executando o projeto, que até aqui só tem a página mestra, obteremos a imagem da Figura 12.

Figura 12

Page 30: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 30 de 38

Passo 03Adicione uma nova página web ao projeto, seguindo orientação fornecida pela Figura 13. Habilite o checbox Select Master Page, possibilitando na sequência (Figura 14) selecionar uma página mestra para que nossa recente página herde suas características. Salve a página nomeando-a como PageMenu.ASPX.

Figura 13

Figura 14

Passo 04Aplique a página (em tempo de design) um controle Menu, obtendo-o da Toolbox aba Navigaton conforme Figura 15.

Figura 15

Page 31: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 31 de 38

A Listagem 02 exibe o código da página PageMenu, já incluindo a tag Menu.

Listagem 02

1. <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" 2. CodeFile="PageMenu.aspx.cs" Inherits="PageMenu" %>3.4. <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">5. </asp:Content>6. <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">7. <asp:Menu ID="Menu1" runat="server">8. </asp:Menu>9. </asp:Content>

Selecione a caixa de Properties (Figura 16), alterando a propriedade (ID) para Menu e em seguida, altere também a propriedade Orientation para Horizontal e por fim Widht para 1000. O resultado pode ser observado na Figura 17.

Figura 16

Figura 17

Passo 05No lado direito do controle (assim com em todos os controles de lista) existe um icone na forma de uma seta, para qual devemos clicar, e em seguida, selecionar Edit Menu Item (Figura 18). Esta ação aciona o Menu Task (menu de tarefas inerente aos controles de lista).

Figura 18

Page 32: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 32 de 38

Se oriente pela Figura 19, visando definir os menus e seus itens. Na área Items existe icones que permitem adicionar Menu, Item de Menu e exclusão, nesta ordem.

Figura 19

Por fim, selecionando novamente o Menu Task, selecione a opção Auto Format escolhendo um padrão de formatação prédefinido para o Menu.

Figura 20

Passo 06Defina qual browser será utilizado quando no ambiente do VisualStudio executarmos o projeto. Basta clcar com o botão direito do mouse sobre o nó que representa o projeto na caixa Soluction Explore, escolhendo a opção Browser With... conforme Figura 21. Escolha um browser e clique no botão Browse.

Figura 21

Page 33: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 33 de 38

Passo 07Clique com botão direito do mouse novamente sobre o nó que representa o projeto (em Soluction Explore), selecionando a opção Start Options..., tendo como resposta a caixa de dialogo representada pela Figura 22. Marque a opção Specific page, indicando a página PageMenu.aspx como a primeira página a ser executado quando o site entrar em funcionamento.

Figura 22

Passo 08Adicione mais um Web Form salvando-a com o nome de PageRelatorioPadrao.ASPX, orientando-se pela Figura 23. Se necessário recorra aos passos anteriores para ver como proceder.

Figura 23

Passo 09No menu Tool | Options..., conforme Figura 24, habilite as opções para movimento livre de controles na área de design. Isto permitirá arrastar os controles na área de design livremente.

Figura 24

Page 34: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 34 de 38

Passo 10No código fonte da página mestra, especificamente dentro da tag Head, aplique o código abaixo, que referencia a folha de estilo que contem as classes de estilo para decorar e formatar os controles de nossas página.

<link href="CSS/Estilo.css" type="text/css" rel="stylesheet" />

Em seguida aplique um controle Label, um TextBox e dois Buttons configurando suas propriedades conforme detalhado na Tabela 02.

Para definir a posição de cada controle na página, tomo como referência a imagem da página em execução representada pela Figura 27 na sequência.

Tabela 02

Controle Propriedade Valor

Label Name LabelNomeParcial

Text Nome Parcial

CssClass LabelTexto

TextBox Name TextBoxNomeParcial

Text “mante vazio”

CssClass CaixaTexto

Button Name ButtonImprimir

Text Imprimir

CssClass Botao

Button Name ButtonVoltar

Text Voltar

CssClass Botao

Passo 11Voltando a página PageMenu.ASPX, usando o menu de tarefas (Task) do controle menu, selecione a opção de item de menu Padrão, no menu Relatórios, indicando em sua propriedade NavigateURL a página PageRelatorioPadrao.ASPX conforme indicado nas Figuras 25 e 26. assim procedendo, quando em execução, clicar nesta opção de menu redirecionará para esta página.

Figura 25

Page 35: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 35 de 38

Figura 26

A Figura 27 exibe o lay-out final da página PageRelatorioPadrao.ASPX em execução.

Figura 27

Passo 11Adicione mais uma Web Form ao projeto nomeando-o como PageExiberelatorio.ASPX (Figura 28). Esta página terá como função exibir todos os relatórios do projeto. Neste caso, a mesma não herdará de MasterPage.master, pois servirá como preview dos relatórios.

Figura 28

Page 36: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 36 de 38

Aplique os controles CrystalReportSouce e CrystalReportViewer, respectivamente controle que representa o arquivo RPT do CrystalReport e o gerador de preview para os dados do relatório. Tais controles são obtidos da aba Elaborando relatório, obtido na Toolbox. Ver Figura 29.

Aproveite e renomeie os controles CrystalReportSouce1 e CrystalReportViewer1 para CrystalReportSouce e CrystalReportViewer respectivamente.

Figura 29

Configure a propriedade Escolher origem de relatório do controle CrystalReportViewer, indicando o objeto CrystalReportSource.

Figura 30

Na sequência temos as Listagens 03, 04 e 05, onde podemos obter todo o código necessário para que o projeto funcione. Confira o mesmo, copiando e aplicando os códigos em suas respectivas páginas.

Page 37: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 37 de 38

Listagem 03 - Código Fonte da Página PageRelatorioPadrao.ASPX

1. using System;2. using System.Collections.Generic;3. using System.Linq;4. using System.Web;5. using System.Web.UI;6. using System.Web.UI.WebControls;7. using CrystalDecisions.CrystalReports.Engine;8. using CrystalDecisions.Shared;9.10. public partial class PageRelatorioPadrao : System.Web.UI.Page11. {12. protected void ButtonImprimir_Click(object sender, EventArgs e)13. {14. CrystalDecisions.Web.ParameterCollection ColecaoParametros =15. new CrystalDecisions.Web.ParameterCollection();16. CrystalDecisions.Web.Parameter Parametro =17. new CrystalDecisions.Web.Parameter();18. Parametro.Name = "Par_NomeParcialCliente";19. Parametro.DefaultValue = TextBoxNomeParcial.Text + "*";20. ColecaoParametros.Add(Parametro);21. Session["ColecaoParametros"] = ColecaoParametros; 22. Session["NomeRelatorio"] = "RPT\\Exemplo_02.RPT";23. Response.Redirect("PageExibeRelatorio.ASPX");24. }25. }

Listagem 04 - Código Fonte do Arquivo Web.Config

1. <?xml version="1.0"?>2. <configuration>3. <system.web>4. <compilation debug="false" targetFramework="4.0" />5. </system.web>6. <connectionStrings>7. <add name="conexaoSQL" 8. connectionString="Data Source=LAERCIO-NOTE\SQLEXPRESS;9. database=BancoCursoCSharp;10. user=sa;11. Password=123;12. Persist Security Info=True;" 13. providerName="System.Data.SqlClient"14. />15. </connectionStrings>16. </configuration>

Page 38: Apostila de Crystal Report

CrystalReport XI – Versão Beta 02Página 38 de 38

Listagem 05 - Código Fonte da Página PageRelatorioPadrao.ASPX

1. using System;2. using System.Collections.Generic;3. using System.Linq;4. using System.Web;5. using System.Web.UI;6. using System.Web.UI.WebControls;7. using System.Data;8. using System.Configuration;9. using System.Data.SqlClient;10. using CrystalDecisions.CrystalReports.Engine;11.12. public partial class PageExibeRelatorio : System.Web.UI.Page13. {14. protected void Page_Load(object sender, EventArgs e)15. { 16. CrystalReportSource.Report.FileName = (String)Session["NomeRelatorio"]; 17. CrystalReportViewer.ReportSource = CrystalReportSource;18. string connectionString = 19. ConfigurationManager.ConnectionStrings["ConexaoSQL"].ConnectionString; 20. SqlConnectionStringBuilder SConn = 21. new SqlConnectionStringBuilder(connectionString);22. CrystalReportSource.ReportDocument.DataSourceConnections[0].SetConnection(23. SConn.DataSource, 24. SConn.InitialCatalog, 25. SConn.UserID, 26. SConn.Password);27. foreach (CrystalDecisions.Web.Parameter Parametro in 28. (CrystalDecisions.Web.ParameterCollection)Session["ColecaoParametros"])29. {30. CrystalReportSource.Report.Parameters.Add(Parametro);31. }32. CrystalReportSource.DataBind();33. }34. }

Por fim, a Figura 31 exibindo um relatório do CrystalReport por intermédio da aplicação Asp.Net.

Figura 31