Apostila de Crystal Report

9,386 views
9,135 views

Published on

Apostila de Crystal Report

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,386
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
627
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Apostila de Crystal Report

  1. 1. 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.
  2. 2. CrystalReport XI Apresentando o IDE do CrystalReport Figura 01 – Versão Beta 02 Página 2 de 38
  3. 3. CrystalReport XI – Versão Beta 02 Página 3 de 38 Usando o Assistente para Criação de Relatórios Simples Conexão com Fontes de Dados Podemos 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 01 Acesse 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 02 Figura 03 Figura 04 Figura 05 Preencha os campos Servidor, ID do Usuário, Senha e Banco de Dados respectivamente com Nome do ServidorSQL 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.
  4. 4. CrystalReport XI – Versão Beta 02 Página 4 de 38 Passo 02 Concluí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
  5. 5. CrystalReport XI – Versão Beta 02 Pá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
  6. 6. CrystalReport XI – Versão Beta 02 Página 6 de 38 Criando um Relatórios Padrão com Tabelas Relacionadas Passo 01 Acesso 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 02 Acione 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.
  7. 7. CrystalReport XI – Versão Beta 02 Pá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 03 Conforme 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
  8. 8. CrystalReport XI – Versão Beta 02 Pá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 04 Clique 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
  9. 9. CrystalReport XI – Versão Beta 02 Página 9 de 38 O resultado deste passo pode ser observado na Figura 10. Figura 10 Passo 05 A 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. 2. 3. 4. 5. 6. 7. 8. 9. SELECT "Cliente"."Nome", "Pedido"."ID", "ItemPedido"."Quantidade", "Produto"."Descricao" FROM( ("BancoCursoCSharp"."dbo"."ItemPedido" "ItemPedido" INNER JOIN "BancoCursoCSharp"."dbo"."Pedido" "Pedido" ON "ItemPedido"."PedidoID"="Pedido"."ID" ) INNER JOIN "BancoCursoCSharp"."dbo"."Produto" "Produto" ON "ItemPedido"."ProdutoID"="Produto"."Id" ) INNER JOIN "BancoCursoCSharp"."dbo"."Cliente" "Cliente" ON "Pedido"."ClienteID"="Cliente"."ID" Passo 06 Agora 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
  10. 10. CrystalReport XI – Versão Beta 02 Página 10 de 38 Passo 07 Visando 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 08 Já 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.
  11. 11. CrystalReport XI – Versão Beta 02 Pá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 09 Vamos 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
  12. 12. CrystalReport XI – Versão Beta 02 Pá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. 2. 3. 4. 5. 6. SELECT DISTINCT "Cliente"."Nome", "Pedido"."ID", "ItemPedido"."Quantidade", "Produto"."Descricao" FROM (("BancoCursoCSharp"."dbo"."ItemPedido" "ItemPedido" INNER JOIN "BancoCursoCSharp"."dbo"."Pedido" "Pedido" ON "ItemPedido"."PedidoID"="Pedido"."ID") INNER JOIN "BancoCursoCSharp"."dbo"."Produto" "Produto" ON "ItemPedido"."ProdutoID"="Produto"."Id") INNER JOIN "BancoCursoCSharp"."dbo"."Cliente" "Cliente" ON "Pedido"."ClienteID"="Cliente"."ID" 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. 2. 3. 4. 5. 6. SELECT DISTINCT "Cliente"."Nome", "Pedido"."ID", "ItemPedido"."Quantidade", "Produto"."Descricao" FROM (("BancoCursoCSharp"."dbo"."ItemPedido" "ItemPedido" INNER JOIN "BancoCursoCSharp"."dbo"."Pedido" "Pedido" ON "ItemPedido"."PedidoID"="Pedido"."ID") INNER JOIN "BancoCursoCSharp"."dbo"."Produto" "Produto" ON "ItemPedido"."ProdutoID"="Produto"."Id") INNER JOIN "BancoCursoCSharp"."dbo"."Cliente" "Cliente" ON "Pedido"."ClienteID"="Cliente"."ID" WHERE "Cliente"."Nome" LIKE '%' ORDER BY "Cliente"."Nome" Figura 21
  13. 13. CrystalReport XI – Versão Beta 02 Página 13 de 38 Configurando o Visual de Elementos (objetos) do Relatório Passo 01 A Figura 01 Figura 02 Figura 03 Figura 04
  14. 14. CrystalReport XI Figura 05 Figura 06 Figura 07 – Versão Beta 02 Página 14 de 38
  15. 15. CrystalReport XI Figura 08 Figura 09 Figura 10 Figura 11 – Versão Beta 02 Página 15 de 38
  16. 16. CrystalReport XI Figura 12 Figura 13 Figura 14 Figura 15 – Versão Beta 02 Página 16 de 38
  17. 17. CrystalReport XI – Versão Beta 02 Página 17 de 38 Criando um Relatório de Referência Cruzada Passo 01 Inicie 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
  18. 18. CrystalReport XI – Versão Beta 02 Pá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
  19. 19. CrystalReport XI – Versão Beta 02 Pá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 02 Para 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.
  20. 20. CrystalReport XI – Versão Beta 02 Página 20 de 38 Figura 11 Passo 02 Uma 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
  21. 21. CrystalReport XI – Versão Beta 02 Pá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 03 Uma 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
  22. 22. CrystalReport XI – Versão Beta 02 Pá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 04 Agora 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
  23. 23. CrystalReport XI – Versão Beta 02 Página 23 de 38 Passo 05 Fique 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
  24. 24. CrystalReport XI – Versão Beta 02 Página 24 de 38 Exercício Proposto Crie 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 08 Figura 07
  25. 25. CrystalReport XI – Versão Beta 02 Pá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 01 Inicie 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
  26. 26. CrystalReport XI – Versão Beta 02 Pá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 02 Na 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
  27. 27. CrystalReport XI – Versão Beta 02 Pá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
  28. 28. CrystalReport XI – Versão Beta 02 Pá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 10 Figura 09 Repare o resultado exibido pela Figura 11 Figura 11
  29. 29. CrystalReport XI – Versão Beta 02 Pá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. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. <%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server"> <div align="center"> <div style="position: relative; height:500px; width:1000px; border: 1px solid #808080"> <asp:Image ID="ImageCabecaSite" runat="server" Height="133px" Width="1000px" ImageUrl="~/IMG/CabecaSite.jpg" style="z-index: 1; left: 0px; top: 0px; position: relative; border: 1px solid #808080" /> <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </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
  30. 30. CrystalReport XI – Versão Beta 02 Página 30 de 38 Passo 03 Adicione 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 04 Aplique a página (em tempo de design) um controle Menu, obtendo-o da Toolbox aba Navigaton conforme Figura 15. Figura 15
  31. 31. CrystalReport XI – Versão Beta 02 Página 31 de 38 A Listagem 02 exibe o código da página PageMenu, já incluindo a tag Menu. Listagem 02 1. 2. 3. 4. 5. 6. 7. 8. 9. <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="PageMenu.aspx.cs" Inherits="PageMenu" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <asp:Menu ID="Menu1" runat="server"> </asp:Menu> </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 05 No 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
  32. 32. CrystalReport XI – Versão Beta 02 Pá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 06 Defina 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
  33. 33. CrystalReport XI – Versão Beta 02 Página 33 de 38 Passo 07 Clique 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 08 Adicione 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 09 No 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
  34. 34. CrystalReport XI – Versão Beta 02 Página 34 de 38 Passo 10 No 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 Name TextBoxNomeParcial Text “mante vazio” CssClass CaixaTexto Name ButtonImprimir Text Imprimir CssClass Botao Name ButtonVoltar Text Voltar CssClass Botao TextBox Button Button Passo 11 Voltando 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
  35. 35. CrystalReport XI – Versão Beta 02 Pá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 11 Adicione 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
  36. 36. CrystalReport XI – Versão Beta 02 Pá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 CrystalReportSouce e CrystalReportViewer respectivamente. CrystalReportViewer1 para 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.
  37. 37. CrystalReport XI – Versão Beta 02 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.Page 11. { 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"] = "RPTExemplo_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. 4. 5. 6. 7. 8. <system.web> <compilation debug="false" targetFramework="4.0" /> </system.web> <connectionStrings> <add name="conexaoSQL" connectionString="Data Source=LAERCIO-NOTESQLEXPRESS; 9. database=BancoCursoCSharp; 10. user=sa; 11. Password=123; 12. 13. 14. 15. Persist Security Info=True;" providerName="System.Data.SqlClient" /> </connectionStrings> 16. </configuration> Página 37 de 38
  38. 38. CrystalReport XI – Versão Beta 02 Pá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.Page 13. { 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. 33. CrystalReportSource.DataBind(); } 34. } Por fim, a Figura 31 exibindo um relatório do CrystalReport por intermédio da aplicação Asp.Net. Figura 31

×