SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
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.
CrystalReport XI
Apresentando o IDE do CrystalReport

Figura 01

– Versão Beta 02

Página 2 de 38
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.
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
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
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.
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
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
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
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.
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
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
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
CrystalReport XI

Figura 05

Figura 06

Figura 07

– Versão Beta 02

Página 14 de 38
CrystalReport XI

Figura 08

Figura 09

Figura 10

Figura 11

– Versão Beta 02

Página 15 de 38
CrystalReport XI

Figura 12

Figura 13

Figura 14

Figura 15

– Versão Beta 02

Página 16 de 38
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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

Mais conteúdo relacionado

Mais procurados

Mais procurados (6)

Analisis sumber penggunaan kas
Analisis sumber penggunaan kasAnalisis sumber penggunaan kas
Analisis sumber penggunaan kas
 
Kas dan piutang
Kas dan piutangKas dan piutang
Kas dan piutang
 
Akuntansi internasional (ok)
Akuntansi internasional (ok)Akuntansi internasional (ok)
Akuntansi internasional (ok)
 
Bab 4 - Analisa Laporan Keuangan
Bab 4 - Analisa Laporan KeuanganBab 4 - Analisa Laporan Keuangan
Bab 4 - Analisa Laporan Keuangan
 
Intro to-payment-processing-in-sap
Intro to-payment-processing-in-sapIntro to-payment-processing-in-sap
Intro to-payment-processing-in-sap
 
Analisis-Laporan-Keuangan.pptx
Analisis-Laporan-Keuangan.pptxAnalisis-Laporan-Keuangan.pptx
Analisis-Laporan-Keuangan.pptx
 

Destaque

Crystal reports tutorial gerando seus relatórios
Crystal reports   tutorial gerando seus relatóriosCrystal reports   tutorial gerando seus relatórios
Crystal reports tutorial gerando seus relatóriosrobinhoct
 
Crystal - Engenharia de Software
Crystal - Engenharia de SoftwareCrystal - Engenharia de Software
Crystal - Engenharia de SoftwareFelipe Bastos
 
Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)Thiago Sinésio
 
Prefeitura municipal de itapira sp
Prefeitura municipal de itapira spPrefeitura municipal de itapira sp
Prefeitura municipal de itapira spInfoMidi
 
Resultado final 6 ao 9 ano - geografia
Resultado final   6 ao 9 ano - geografiaResultado final   6 ao 9 ano - geografia
Resultado final 6 ao 9 ano - geografiasegundacoordenadoria
 
Alta books catálogo
Alta books catálogoAlta books catálogo
Alta books catálogoSergio Cabral
 
Geografia caa 1s_vol1_2010reduzido[1]
Geografia caa 1s_vol1_2010reduzido[1]Geografia caa 1s_vol1_2010reduzido[1]
Geografia caa 1s_vol1_2010reduzido[1]053114eee
 
Tabela de Regulagem de Carburadores Marca Brosol
Tabela de Regulagem de Carburadores Marca BrosolTabela de Regulagem de Carburadores Marca Brosol
Tabela de Regulagem de Carburadores Marca BrosolDanilop
 

Destaque (11)

Crystal reports tutorial gerando seus relatórios
Crystal reports   tutorial gerando seus relatóriosCrystal reports   tutorial gerando seus relatórios
Crystal reports tutorial gerando seus relatórios
 
Crystal - Engenharia de Software
Crystal - Engenharia de SoftwareCrystal - Engenharia de Software
Crystal - Engenharia de Software
 
Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)Metodologia Crystal Clear (Crystal Clear Methodologies)
Metodologia Crystal Clear (Crystal Clear Methodologies)
 
Crystal
CrystalCrystal
Crystal
 
Prefeitura municipal de itapira sp
Prefeitura municipal de itapira spPrefeitura municipal de itapira sp
Prefeitura municipal de itapira sp
 
Crystal rep
Crystal repCrystal rep
Crystal rep
 
Resultado final 6 ao 9 ano - geografia
Resultado final   6 ao 9 ano - geografiaResultado final   6 ao 9 ano - geografia
Resultado final 6 ao 9 ano - geografia
 
Alta books catálogo
Alta books catálogoAlta books catálogo
Alta books catálogo
 
Geografia caa 1s_vol1_2010reduzido[1]
Geografia caa 1s_vol1_2010reduzido[1]Geografia caa 1s_vol1_2010reduzido[1]
Geografia caa 1s_vol1_2010reduzido[1]
 
Tabela de Regulagem de Carburadores Marca Brosol
Tabela de Regulagem de Carburadores Marca BrosolTabela de Regulagem de Carburadores Marca Brosol
Tabela de Regulagem de Carburadores Marca Brosol
 
Resposta ava
Resposta avaResposta ava
Resposta ava
 

Semelhante a Crystal Report XI - Relatório sobre o Crystal Reports

Apostila - Jornada do Excel aula 2.pdf
Apostila - Jornada do Excel aula 2.pdfApostila - Jornada do Excel aula 2.pdf
Apostila - Jornada do Excel aula 2.pdfandre94454
 
Microsoft access 2007 - Aula 01
Microsoft access 2007 - Aula 01Microsoft access 2007 - Aula 01
Microsoft access 2007 - Aula 01Junior Moreira
 
Por que o Microsoft Power BI? Um breve overview sobre BI
Por que o Microsoft Power BI? Um breve overview sobre BIPor que o Microsoft Power BI? Um breve overview sobre BI
Por que o Microsoft Power BI? Um breve overview sobre BILeonardo Karpinski
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#André Luiz
 
Desenvolvimento Delphi
Desenvolvimento DelphiDesenvolvimento Delphi
Desenvolvimento Delphihildebertomelo
 
ODI Series - Importar Arquivos Texto para Tabelas
ODI Series - Importar Arquivos Texto para TabelasODI Series - Importar Arquivos Texto para Tabelas
ODI Series - Importar Arquivos Texto para TabelasCaio Lima
 
Treinamento Do Microsoft®Office
Treinamento Do Microsoft®OfficeTreinamento Do Microsoft®Office
Treinamento Do Microsoft®OfficeCristiana Pulquerio
 
Unidade 7 - Estruturando Banco de Dados com o BR Office Base - parte 2
Unidade 7  - Estruturando Banco de Dados com o BR Office Base - parte 2Unidade 7  - Estruturando Banco de Dados com o BR Office Base - parte 2
Unidade 7 - Estruturando Banco de Dados com o BR Office Base - parte 2Rogerio P C do Nascimento
 
Apostila excel 2010 avançado
Apostila excel 2010 avançadoApostila excel 2010 avançado
Apostila excel 2010 avançadoIzabella Werneck
 
QualityIndex - Software (www.datalink.inf.br)
QualityIndex - Software (www.datalink.inf.br)QualityIndex - Software (www.datalink.inf.br)
QualityIndex - Software (www.datalink.inf.br)datalinksoftwares
 
ODI Series - Exportar Tabelas para Arquivo Texto
ODI Series -  Exportar Tabelas para Arquivo TextoODI Series -  Exportar Tabelas para Arquivo Texto
ODI Series - Exportar Tabelas para Arquivo TextoCaio Lima
 
Base de Dados -Tics_022744.docx
Base de Dados -Tics_022744.docxBase de Dados -Tics_022744.docx
Base de Dados -Tics_022744.docxViana Nacolonha
 
Apostila Access 2000.pdf
Apostila Access 2000.pdfApostila Access 2000.pdf
Apostila Access 2000.pdfssuser382e50
 

Semelhante a Crystal Report XI - Relatório sobre o Crystal Reports (20)

Ns tutorial so
Ns tutorial soNs tutorial so
Ns tutorial so
 
Aula3
Aula3Aula3
Aula3
 
Apostila de Power BI - Aula 1.pdf
Apostila de Power BI - Aula 1.pdfApostila de Power BI - Aula 1.pdf
Apostila de Power BI - Aula 1.pdf
 
Apostila - Jornada do Excel aula 2.pdf
Apostila - Jornada do Excel aula 2.pdfApostila - Jornada do Excel aula 2.pdf
Apostila - Jornada do Excel aula 2.pdf
 
Microsoft access 2007 - Aula 01
Microsoft access 2007 - Aula 01Microsoft access 2007 - Aula 01
Microsoft access 2007 - Aula 01
 
Rm1150130412rmglobais
Rm1150130412rmglobaisRm1150130412rmglobais
Rm1150130412rmglobais
 
Por que o Microsoft Power BI? Um breve overview sobre BI
Por que o Microsoft Power BI? Um breve overview sobre BIPor que o Microsoft Power BI? Um breve overview sobre BI
Por que o Microsoft Power BI? Um breve overview sobre BI
 
Metadados - Totvs RM.pdf
Metadados - Totvs RM.pdfMetadados - Totvs RM.pdf
Metadados - Totvs RM.pdf
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
 
Vba cadastro de clientes
Vba   cadastro de clientesVba   cadastro de clientes
Vba cadastro de clientes
 
Desenvolvimento Delphi
Desenvolvimento DelphiDesenvolvimento Delphi
Desenvolvimento Delphi
 
ODI Series - Importar Arquivos Texto para Tabelas
ODI Series - Importar Arquivos Texto para TabelasODI Series - Importar Arquivos Texto para Tabelas
ODI Series - Importar Arquivos Texto para Tabelas
 
Treinamento Do Microsoft®Office
Treinamento Do Microsoft®OfficeTreinamento Do Microsoft®Office
Treinamento Do Microsoft®Office
 
Criando Dashboards Wizard
Criando Dashboards WizardCriando Dashboards Wizard
Criando Dashboards Wizard
 
Unidade 7 - Estruturando Banco de Dados com o BR Office Base - parte 2
Unidade 7  - Estruturando Banco de Dados com o BR Office Base - parte 2Unidade 7  - Estruturando Banco de Dados com o BR Office Base - parte 2
Unidade 7 - Estruturando Banco de Dados com o BR Office Base - parte 2
 
Apostila excel 2010 avançado
Apostila excel 2010 avançadoApostila excel 2010 avançado
Apostila excel 2010 avançado
 
QualityIndex - Software (www.datalink.inf.br)
QualityIndex - Software (www.datalink.inf.br)QualityIndex - Software (www.datalink.inf.br)
QualityIndex - Software (www.datalink.inf.br)
 
ODI Series - Exportar Tabelas para Arquivo Texto
ODI Series -  Exportar Tabelas para Arquivo TextoODI Series -  Exportar Tabelas para Arquivo Texto
ODI Series - Exportar Tabelas para Arquivo Texto
 
Base de Dados -Tics_022744.docx
Base de Dados -Tics_022744.docxBase de Dados -Tics_022744.docx
Base de Dados -Tics_022744.docx
 
Apostila Access 2000.pdf
Apostila Access 2000.pdfApostila Access 2000.pdf
Apostila Access 2000.pdf
 

Mais de Andre Nascimento

Apostila de Introdução ao C#.net
Apostila de Introdução ao C#.netApostila de Introdução ao C#.net
Apostila de Introdução ao C#.netAndre Nascimento
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Andre Nascimento
 
Apostila de Sql Server 2005
Apostila de Sql Server 2005Apostila de Sql Server 2005
Apostila de Sql Server 2005Andre Nascimento
 

Mais de Andre Nascimento (6)

Apostila de Introdução ao C#.net
Apostila de Introdução ao C#.netApostila de Introdução ao C#.net
Apostila de Introdução ao C#.net
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
 
Apostila de C# & Asp.Net
Apostila de C# & Asp.NetApostila de C# & Asp.Net
Apostila de C# & Asp.Net
 
Apostila Oracle 10g
Apostila Oracle 10gApostila Oracle 10g
Apostila Oracle 10g
 
Apostila de Sql Server 2005
Apostila de Sql Server 2005Apostila de Sql Server 2005
Apostila de Sql Server 2005
 
Apostila Android
Apostila AndroidApostila Android
Apostila Android
 

Crystal Report XI - Relatório sobre o Crystal Reports

  • 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. CrystalReport XI Apresentando o IDE do CrystalReport Figura 01 – Versão Beta 02 Página 2 de 38
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. CrystalReport XI Figura 05 Figura 06 Figura 07 – Versão Beta 02 Página 14 de 38
  • 15. CrystalReport XI Figura 08 Figura 09 Figura 10 Figura 11 – Versão Beta 02 Página 15 de 38
  • 16. CrystalReport XI Figura 12 Figura 13 Figura 14 Figura 15 – Versão Beta 02 Página 16 de 38
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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