31
Crystal Report 4.6 e 8.0 Autor: Alexandro Vieira de Souza

63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Embed Size (px)

Citation preview

Page 1: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Crystal Report 4.6 e 8.0

Autor: Alexandro Vieira de Souza

Page 2: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Crystal Reports 4.6 - Manual de sobrevivência

Embora já tenhamos abordado temas básicos relacionados ao Crystal Reports vamos agora procurar aprofundar nosso conhecimento sobre esta ferramenta tratando de questões que fazem parte da maioria das dúvidas que surgem quando vamos usar o Crystal Reports. Novamente iremos usar o sistema de perguntas e respostas . A versão abordada será a 4.6 do Crystal Reports , embora o a versão atual seja a 8.0 , pois assim estaremos atingindo um maior número de usuários.

Se você instalou o Crystal Reports na versão 5.0 do VB não terá que instalá-lo novamente quando migrar para a versão 6.0. Se você não instalou , o Crystal Reports não é instalado automaticamente com a versão 6.0 e você vai precisar instalá-lo separadamente. Para isto inicialize o arquivo de instalação Crystl32.exe presente no diretório \COMMON\TOOLS\VB\CRYSREPT no CD 1 do seu VB 6.0

1 - Como Criar Etiquetas no Crystal Reports ?

1- Inicie o Crystal Reports

no Menu File selecione a opção New. A seguir selecione na janela - Create New Report - o Expert - Mail Label

Page 3: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Na janela - Create Report Expert - clique sobre o ícone Data file , selecione o banco de dados com o qual deseja trabalhar e a seguir clique no botão Add e depois no botão Done.

2- Na aba Fields selecione os campos da tabela para a qual deseja gera as etiquetas

3- A seguir , na aba Label , você deve selecionar o tipo de etiquetas que pretende usar (opção Choose Mailing Label Type) , caso a etiqueta que você vai usar não apareça na relação você deverá criar uma indicando as medidas , selecionando a opção User Defined Label

Page 4: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

4- No Frame - Printing direction - você deve informar a ordem de impressão dos registros , pode ser "Across then Down" pois as etiquetas serão impressas na ordem horizontal.

5- No Frame - Number of Labels - Após você selecionar a etiqueta ou informar as medidas aqui deverá aparecer o número de colunas que você tem em Across Page e quantas etiquetas tem em cada coluna. Se os valores não conferirem com o da sua página verifique as medidas .

6- No frame - Page Margins - Você pode definir as margens das páginas 7- No frame - Label size - Tome cuidado aqui se você for criar as suas próprias medidas. Informe em Width = largura da etiqueta (em centímetros) e em Height = altura da etiqueta (em centímetros) 8- No frame - Gap between labels- Você informa o espaço entre uma etiqueta e outra nos sentidos horizontal e vertical. 9- Para visualizar o relatório clique no botão Preview Report .

Obs - Voce deve configurar a impressora na opção Selecione Printer Setup do menu File indicando a impressora a ser utilizada, lembrando que na configuração da impressora deve estar selecionado o tamanho do papel a ser utilizado, pois o Crystal faz a leitura do setup da impressora para formatar o relatório.

Page 5: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

10- No menu File selecione a opção File Set label layout e verifique se o número de etiquetas por página (number of labels) se está de acordo, pois quando você está definindo as medidas o Crystal não atualiza este campo. Se estiver ok, continue em frente senão altere as medidas até encontrar o número correto. Volte para a tela padrão do relatório.

11- Ao visualizar o relatório você tem acesso somente à área esquerda do relatório (como se fosse uma etiqueta). Os campos devem estar na ordem que você quer que apareçam na etiqueta. Feito isto selecione preview e verifique se a página está aparecendo corretamente (porém lembre-se que WYSIWYG (What you see is what you get) não funciona no Crystal Reports). O que você está vendo pode não ser exatamente o que você terá.

Bem a esta altura só falta imprimir e verificar , ajustando quando necessário. Se você tiver problemas vamos ver alguns pontos que devem ser verificados. a) Se você estiver usando o driver Genérico/Texto , verifique se você colocou mas medidas corretas do papel e ainda se está configurado para com ou sem quebra de página. b) O tipo de fonte utilizado também influi no resultado final (Usar a fonte-padrão da impressora pode aumentar a velocidade)

c)Se puder, mande imprimir em impressora laser ou jato de tinta que o resultado deverá ser melhor.

d)Verifique ainda a versão que você está usando do Crystal Reports.

2 - Como imprimir por extenso no Crystal Reports ?

A resposta a essa pergunta é dada pelo próprio pessoal da ETZ , a distribuidora do Crystal no Brasiil. (Eu pessoalmente não testei.)

Page 6: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

"Já está disponível no Brasil a função que irá permitir os usuários Crystal Reports a imprimir valores por extenso em português, isto é possível através da CRXLATE.DLL (16 Bits) ou da CRXLAT32.DLL (32 Bits), para se fazer o extenso, basta copiar a DLL correspondente ao seu ambiente no lugar da DLL que têm o mesmo nome desta, ela deve estar localizado ou no \WINDOWS\SYSTEM ou no \WINDOWS\CRYSTAL.

Após feito isto, basta entrar no Crystal, criar uma fórmula e usar a função ToWords(número). Qualquer dúvida, contate o Suporte Crystal."

ExtPor16.exe Download da versão 16 bits da DLL de extenso em português (CRXLATE.DLL)

ExtPor32.exe Download da versão 32 bits da DLL de extenso em português (CRXLAT32.DLL)

3 - Considerações Sobre Uso de Impressoras com Crystal Reports

É importante entender como Seagate Crystal Reports trata os ajustes de parâmetros de impressoras. Quando seu relatório estiver carregado, vá para o menu Arquivo (File) e escolha Configurar Impressora (Printer Setup).

Esta tela de diálogo é a que controla como e onde um relatório irá imprimir. É importante se levar em conta que algumas destas funcionalidades irão mudar como outro usuário (um cliente) imprime o mesmo relatório.

A primeira coisa a se verificar nesta janela é ONDE o relatório irá ser impresso, que impressora ele irá usar. Isto é controlado pela caixa "Nome da Impressora (Printer Name)".

Se o projetista do relatório escolher a Impressora Padrão do Sistema (System's Default Printer), evidenciada pela linha dizendo Impressora Padrão Pronta ("Default Printer Ready"), então o relatório irá tentar imprimir na impressora padrão do cliente (se ele tiver alguma selecionada).

Se o relatório não for designado para a Impressora Padrão, então ele é considerado um relatório de Impressora Específica (Specific Printer),e tentará ser impresso na impressora do cliente com o MESMO NOME da impressora usada na máquina do projetista original. Então, se esta impressora não for achada, o relatório irá ser impresso na Impressora Padrão do Cliente.

A Segunda seleção mais importante nesta tela é o checkbox "Propriedades Padrão (Default Properties). Se esta caixa estiver CHECADA, então o relatório será impresso usando as Propriedades da Impressora Padrão do Cliente, NÃO as propriedades que você tenha especificado nesta tela (tipo de papel, fonte de papel, orientação de página). Se esta opção estiver NÃO CHECADA, o relatório irá tentar forçar as configurações que você tenha especificado (tipo de papel, fonte de papel, orientação de página), na impressora do cliente.

Uma vez que a impressora do cliente suporte TODAS as configurações, o relatório será impresso de maneira similar à da impressora do desenvolvedor. Se, no entanto,

Page 7: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

alguma destas configurações não for suportada pela impressora do cliente, o relatório irá usar as Propriedades Padrão da impressora do cliente.

A melhor regra a seguir é: Se você estiver querendo forçar o tipo de papel, fonte de papel (bandejas) ou orientação de página na impressora do cliente, então SEMPRE DEIXE NÃO CHECADA a caixa Propriedades Padrão.

4- Como fazer a Justificação de textos no Crystal

A opção de justificar texto não está disponível na Barra de Ferramentas, mas ela existe. Basta clicar com o botão direito do mouse, com o cursor sobre o campo que se queira justificar (campo Memo, por exemplo), e então escolher a opção Format Field (Formatar Campo).

Dentro desta opção deve haver uma sessão chamada Alignment (Alinhamento). Ajuste então para Default (Padrão), ou Center (Centrado) / Left (Esquerdo) / Right (Direito).

5- Como eu posso saber as definições usadas em um determinado relatório ?

Várias vezes nos deparamos com a necessidade de saber exatamente quais os campos, fórmulas, tabelas usados no relatório. O Crystal Reports fornece um relatório completo da montagem do relatório, através de:

1-clique na função de menu Exportar Relatórios

2-escolha Report Definition

3-por fim escolha entre imprimir ou gravar em arquivo.

6- Inserindo somente uma vez o controle CrystalReports no seu projeto ?

Você pode , e deve , incluir somente uma única vez o controle CrystalReports em seu projeto. Para usar o controle nos formulários do projeto basta fazer referência ao controle indicando a localização do controle. Assim se você inseriu o controle CR1 no formulário form1 e quer usar o controle no formulário form2 basta usar a sintaxe:

Form1.CR1. ReportFileName = "Relatório.RPT"

Fazendo assim você usa somente um único nome para o seu controle Crystal em todo o projeto.

7-Usando as funções de conversões de dados no Crystal .

O Crystal fornece algumas funções para conversão de dados. Vejamos as mais usadas.(Para ver todas leia o Help )

Page 8: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

ToNumber(x) : Converte um texto informado no argumento x em um número.

Você geralmente usa esta função quando quer converter um campo definido como texto para um formato numérico. Por exemplo:

ToNumber("45.21") retornará o número 45,21

ToNumber("123.45") = 123.45

ToNumber({file.AcctNo}/2) = 22144 para {file.AcctNo} = 44288 ToNumber({file.ZIP}) < 33333 = TRUE para {file.ZIP} = 21385

ToText(x) : Converte o número x para o formato texto

ToText(12345) retornará "12345" e ToText(45.21) retornará "45"

ToText(x,n) : Converte o número x para o formato texto usando n casas decimais. Assim temos:

ToText(12345.6789,2) retornará "12345,68" e ToText(12345.6789,0) retornará "12346"

A função arrendonda o número conforme o numero de casas decimais definido.

ToWords(x): Converte um número informado no argumento x num texto por extenso ( em inglês :-( )

ToWords(12345) retornará twelve thousand three hundred fortyfive and

ToWords(x,n): Converte um número informado no argumento x usando n casas decimais num texto por extenso.

ToWords(12345.5000,0) retornará twelve thousand three hundred forty six ( observe o arredondamento)

NumericText(x): Verifica se o conteúdo do argumento x , um texto , é um número. Se o conteúdo for um número a expressão retornada será YES caso contrário será NO. Assim:

NumericText({file.Reference}) = NO para {file.Reference} = "ABCDEFG" NumericText({file.IDNUM}) = YES para {file.IDNUM} = "12345" NumericText ({file.IDNUM} [1 to 5]) = YES para {file.IDNUM} = "12345443" NumericText({file.IDNUM}) = NO para {file.IDNUM} = "12345T"

Page 9: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

8 - Como selecionar uma impressora que não a padrão no Crystal ?

Basta acrescentar as seguintes linhas de código no seu código para imprimir o arquivo.

With CrystalReport1 .ReportFileName = "X:\caminho\relatorio.rpt" .PrinterDriver = "Epson24.drv" .PrinterPort = "LPT1" .PrinterName = "Epson - Matricial" .Action = 1 End With

ReportFileName - localização e nome do relatório que deseja imprimir PrinterDriver - O nome do driver da impressora para qual deseja imprimir PrinterPort = A porta para impressão PrinterName = O nome da impressora Action = dispara exibição do o relatório.

9 - Como enviar relatórios do Crystal pela Internet ?

With CrystalReport1 .Destination = crptMail .EMailMessage= " Aqui você coloca a sua mensagem ou relatorio" .EMailSubject="Assunto" .EMailToList ="[email protected]" .Action = 1 End With

Destination - por assumir os seguintes valores: Window - envia o relatório para uma janela Printer - envia o relatório para a impressora File - envia o relatório para um arquivo em disco EMail (via MAPI) - envia o relatório para outra pessoa na rede via MAPI Email. O relatório é anexado. EMail (via VIM ) - nvia o relatório para outra pessoa na rede via MAPI Email (cc:Mail) EMailMessage - Define o texto da mensagem que vai aparecer no corpo do EMail EMailSubject - Define a linha do subject EMailToList - Define o nome na lista para quem você quer enviar o relatório. (Para mais de um destinatário você deve usar virgulas para separar.)

10 - Como horas no formato correto no Crystal Reports ?

Você vai ter que configurar o Crystal para fazer isto.

No menu - File | Report Options - desmarque a opção - "Convert Date-Time to Date". Pronto !!!

Page 10: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Agora as datas do seu relatório serão transformadas em strings no formato "YYYY/MM/DD hh:mm:ss"

E daí ( você deve estar se pergurtando !!! ) . Bem agora basta você extrair a hora usando a função de substring do Crystal: Assim:

{Tabela.hora}[12 to 16] - Isto irá extrair os dados a partir daa posição 12 até a 16 . Justamente a hora no formato hh:mm.

11 - Extraindo subcadeias de strings/campos no Crystal Reports ?

O crystal Reports possui o operador subscript que permite a extração de subcadeias de strings da mesma forma que a função Mid$. Sua sintaxe é a seguinte:

x[n] onde: x é a string ou campo e n é o número da posição na string que desejamos extrair

Assim: "Visual Basic"[1] obtém a primeira letra da cadeia Visual Basic , ou seja , a letra V

"Visual Basic"[8] retorna a letra B

O operador admite também a seguinte sintaxe:

x[n to m] onde extraimos uma subcadeia de x iniciada em n e terminada em m

Ex: "Visual Basic"[1 to 7] => irá retornar a cadeia Visual

O operador pode ser utilizado para extrair partes dos campos das tabelas de um banco de dados . Assim para uma tabela chamada clientes onde temos o campo nome armazenando o nome do cliente podemos fazer:

{Clientes.Nome}[1 to 20] => isto extrairá os 20 primeiros caracteres do nome do cliente armazenado

Se quisermos imprimir somente os clientes cujo nome iniciem com a letra A , podemos fazer:

if {Clientes.Nome}[1]="A" then {Clientes.Nome} else ...

12 - Como formatar campos no Crystal Reports ?

Page 11: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Este é um velho e (des) conhecido problema para quem usa o crystal reports (pelo menos nas versões mais antigas). Como posso exibir o camo cep, telefone, cgc, cpf , etc.. formatado no meu relatório no crystal reports ?

A resposta é simples : Utilize as formúlas do Crystal. Como ? Vamos mostrar a seguir:

Vamos supor que você quer exibir o campo telefone que esta armazenado no seu banco de dados sem formatação ( geralmente armazenamos os campos sem formatação). Se você inserir o campo diretamente no Crystal ele irá exibir o campo do jeito que você armazenou :-( .

Para contornar o problema vamos utilizar uma fórmula para formatar o campo no padrão de exibição desejado.

Você tem a tabela clientes com os campos : codigo, nome , telefone.

O campo telefone armazena o código de área da cidade e o número do telefone da seguinte forma:

CCNNNNNNNN - onde CC é o código de área da cidade e NNNNNNNN o número do telefone . Você tem os seguinte valores armazenados para este campo: 1196701212 e 1702245521. Você quer exibir o telefone no relatório no seguinte formato: 11-9670-1212 e 17-0224-5521. Se você usar o campo diretamente no Crystal irá obter o seguinte:

Vamos usar uma fórmula para exibir o campo no relatório no formato desejado.

Carregue o relatório no Crystal e no Menu Insert selecione Formula Field Informe o nome para a fórmula e clique em OK Agora usando o operador subscript vamos separar as subcadeias desejadas e montar a cadeia no formato desejado. A fórmula fica assim:

{socios.TELEFONE}[1 to 2] + "-" + {socios.TELEFONE}[3 to 6] + "-" + {socios.TELEFONE}[7 to 10]

Page 12: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Clique no botão Accept e insira a fórmula no local desejado. Veja o resultado final:

Dependendo do seu campo a fórmula será diferente mas a maneira é sempre a mesma. (Eu estou usando a versão 4.6 do Crystal Reports)

13 - Imprimindo em outras impressoras que não a padrão .

Para imprimir em uma impressora que não seja a padrão você pode usar propriedade PrinterName em conjunto com as propriedades PrinterDriver e PrinterPort. Se você definir estas três propriedades corretamente o Crystal imprime na impressora definida caso contrário ele usa a padrão.

Sintaxe: PrinterName [form.]Report.PrinterName[= PrinterName$] Ex: Report1.PrinterName= "Epson LQ850" Define a impressora Epson LQ850

Sintaxe: PrinterDriver [form.]Report.PrinterDriver[= DriverName$] Ex: Report1.PrinterDriver = "Epson24.drv"

Page 13: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Define o driver da impressora para Epson24.drv

Sintaxe:PrinterPort [form.]Report.PrinterPort[= PortName$] Ex: Report1.PrinterPort= "LPT1" Define a porta LPT1

Veja um exemplo de código para fazer este serviço :

CrystalReport1.PrinterPort = "LPT1" CrystalReport1.PrinterDriver = "Epson24.drv" CrystalReport1.PrinterDriver = "Epson LQ850" CrystalReport1.action = 1

Page 14: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Crystal Reports - Gerando seus relatórios.

Conteúdo

Introdução:Gerando os seus relatórios com o Crystal Reports. Criando um novo relatório. Agrupando e ordenando registros. Inserindo títulos e Legendas. Formatação de campos, campos especiais e desenho de linhas e caixas. Trabalhando com fórmulas. Determinando o estilo e inserindo uma figura em seu relatório. Imprimindo o relatório a partir de sua aplicação no Visual Basic.

Introdução:Gerando os seus relatórios com o Crystal Reports. O Crystal Reports é o gerador de relatórios do Visual Basic e com el e desenhamos os relatórios de nossos aplicativos. Embora possua um objeto chamado Printer para imprimir dados, sua utilização além de complexa é trabalhosa pois tudo deve ser codificado. Ao Contrário, o Crystal Reports ut iliza uma interface gráfica a partir de onde podemos construir qualquer relatório que necessitamos.

Podemos iniciar o Crystal Reports através da opção Report Designer... do menu

Add-Ins ou pelo ícone correspondente na pasta de trabalho do Visual Basic

no Windows.

Junto com o Visual Basic 5.0 é distribuída a versão 4.6 do Crystal Reports.

Conteúdo

Page 15: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Criando um novo relatório. Vamos gerar um relatório baseado na tabela agenda que se encontra no banco de dados Controle . Nosso relatório deverá obedecer os seguintes par âmetros: 1- Campos a serem impressos : sobrenome , endereço e a data de nascimento. 2- O relatório deverá ser ordenado pelo campo sobre nome. 3- Deveremos permitir inicialmente a visualização d o relatório para posterior impressão. 4- O nome do relatório será agenda.rpt.

Selecionando a opção New do menu File teremos a tela da figura 1.0 abaixo:

figura 1.0

Após selecionar o botão Standard , devemos selecionar a base de dados na opção

Data File , para o nosso caso Controle.mdb.

A seguir temos um lista de todas as tabelas e consu ltas gravadas na base de dados

- exclua todos os elementos da lista , exceto a tab ela Agenda e clique no

botão Next para prosseguir.

Page 16: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Como nosso relatório esta baseado somente na tabela Agenda, o próximo passo Links

, pode ser dispensado, portanto clique novamente no botão Next.

Vamos selecionar os campos da tabela que serão impr essos no relatório - selecione cada

campo e clique no botão Add. Ao final devemos ter algo parecido com a figura 2.0 abaixo:

figura 2.0

A esta altura o relatório esta praticamente termina do , para visualizá-lo clique

no botão Preview Report. É mostrada a tela da figura 3.0 onde após

clicarmos na aba Design podemos notar cinco seções:

Page 17: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

figura 3.0

1- Title - para o título da aplicação.

2- Page Header - contém os elementos do cabeçalho da página.

3- Details - contém os campos de dados a serem impressos .

4- Page Footer - refere-se ao rodapé da página.

5- Summary - impressão de resumos.

Conteúdo

Agrupando e ordenando registros. Para agrupar registros , ordenando-os por uma deter minada coluna selecione a opção Group Section do menu Insert. Agrupando pelo campo sobrenome em ordem ascendente veremos na tela a figura 4.0:

Page 18: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

figura 4.0

Conteúdo

Inserindo títulos e legendas. Vamos inserir um título em nosso relatório e uma le genda para o campo sobrenome, para isso selecione a opção Text Field... do menu Insert. Na caixa de diálogo Enter Text digite o título: Agenda Pessoal e clique no botão Accept. Ao lado do ponteiro do mouse acompanha um retângulo que você deverá posicionar no local desej ado, ou seja, na seção Title. Para criar a legenda Nome para o campo sobrenome no cabeçalho de grupo, selecionte Text Field... novamente e digite Nome, clicando em Accept e posicionando a legenda mesmo local da legenda sobre nome.

Conteúdo

Formatação de campos, campos especiais e desenho de linhas. Para formatar campos basta selecionar o campo desej ado e clicar na opção Format do menu ou clicando com o botão direito do mouse so bre o campo teremos um menu pop-up como na figura 5.0 abaixo:

Page 19: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

figura 5.0

Pelo menu podemos acessar as opções pertinentes a um determinado campo do relatório.

Para o caso selecionamos o título Agenda Pessoal , vamos alterar a fonte (Change Font...) para 14 e o estilo para negrito.

Para alterar mais de um campo selecione-os mantendo a tecla Shift pressionada.

Aproveitando vamos inserir um campo referente a dat a no canto superior esquerdo. Selecione a opção Special Field... do menu Insert escolha a opção Print Date e posicione no local indicado. Clique com o botão direito do mouse sobre o campo n ascimento e selecione a opção Change Format... escolhendo o formato DMY (dia-mês-ano) e clique OK. Finalmente vamos desenhar um retângulo ao redor do título. Selecione a opção Box do Menu Insert , note que o ponteiro do mouse mudou para um lápis: Desenhe o retângulo ao redor do título mantendo o b otão esquerdo do mouse pressionado. Se quiser colorir o retângulo clique com o botão di reito do mouse sobre o mesmo e preencha-o com uma cor de sua escolha. Através do menu Insert podemos desenhar linhas, retângulos, quadrados , além de inserir figuras e até gráficos em nossos relatór ios. Podemos também usar os ícones correspondentes da ba rra de ferramentas como na figura 6.0 abaixo:

figura 6.0

Conteúdo

Trabalhando com fórmulas. Vamos montar uma fórmula para imprimir o número da página no rodapé do relatório. Para isso usamos o editor de fórmulas do Crystal Re ports que pode ser disparado

Page 20: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

através do ícone ou da opção Formula Field... do menu Insert. Após isso você deve informar o nome da fórmula no c ampo Formula Name para o nosso caso informe "pagina" e clique no botão OK. O Editor é mostrado na figura 7.0 :

figura 7.0 Agora basta digitar a fórmula na caixa Formula Text, vamos lá, digite: "Página: " + e, a seguir selecione a função TrimLeft na lista Functions; , ainda na lista Functions, selecione a função ToText e finalmente selecione o item PageNumber no final da lista Functions. Ao final deveremos ter o seguinte na caixa Formula Text: "Página: " + TrimLeft (ToText (PageNumber, 0 ) ) A função PageNumber retorna um valor númerico do número da página por isso usamos a função ToText para convertê-la em uma string , e a seguir usamos a função TrimLeft para removermos os espaços a direita. Vamos verificar a fórmula clicando no botão Check , se tudo estiver correto o crystal informa com a mensagem No errors found indicando que a sintaxe está correta. Agora basta clicar no botão Accept e posicionar a fórmula no canto esquerdo da seção Page Footer.

Page 21: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Encerrado o relatório basta salvá-lo através da opç ão Save do menu File e informar o nome para o relatório.(Nosso caso inform a agenda). Devemos ressaltar que a linguagem de fórmulas do Cr ystal Reports é diferente do Visual Basic , assim por exemplo , se usarmos a propriedad e SelectionFormula do Crystal que permite definir condições para a impressão em n osso relatório de forma a imprimir somente os nomes iniciados pela letra "J" teríamos algo como: CrystalReport1.SelectionFormula = "{AGENDA.NOME} >= " & "''" & "J" & "''" Note que a refêrencia a campos da tabela é feita en tre chaves ({}).

Conteúdo

Determinando o estilo e inserindo uma figura em seu relatório. Você pode utilizar a guia Style para escolher a forma de apresentação do relatório.

figura 8.0 Para isto selecione um dos estilos na caixa de list agem style e veja á direita o jeitão do relatório. Se quiser pode inserir uma figura no relatório clic ando no botão Add Picture...

Page 22: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

com o ícone. A caixa de texto Title lhe permite inserir o título para o relatório.

Conteúdo

Imprimindo o relatório a partir de sua aplicação no Visual Basic. Agora que nosso relatório esta pronto vamos associá -lo a nossa aplicação de forma a poder imprimí-lo a partir do Visual Basic. Para isso devemos ativar o componente do Crystal Re ports para a nossa aplicação na opção Components.. do menu Project e a seguir selecionar o controle

Crystal Reports e copiá-lo para nosso formulário. A seguir vamos definir algumas propriedades para o controle CrystalReport1 1- CopiesToPrinter - Determina o número de cópias do relatório.Inform e um (1) 2- Destination - Direciona a impressão: 0-na tela 1-na impre ssora 2-em arquivo. Informe zero (0). 3- ReportFileName - Indica a localização do relatório (arquivo .RPT ) a ser impresso. 4- WindowTitle - Título a janela Preview , informe Agenda . 5- SortFields - Configura a ordem de classificação.(Ver aba ixo.) Finalmente crie um botão de comando no formulário que irá disparar a impressão do relatório com o nome de Imprime e a seguir associe o seguinte código ao botão de comando: Private Sub imprime_Click() CrystalReport1.Destination = 0 CrystalReport1.ReportFileName = "c:\Controle\ag enda.rpt" CrystalReport1.SortFields(0) = "+{Agenda.Sobren ome}" CrystalReport1.Action = 1 End Sub A propriedade Action definida para 1 dispara a impressão do relatório. Outra forma de ordenar os registros via código é ut ilizar a propriedade sortfields. Na propriedade Sortfields , "+{Agenda.Sobrenome}" , indica que a ordem de impressão será por campo sobrenome (Agenda .sobrenome) e em ordem ascendente (+).

Conteúdo

Retorna

Page 23: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Crystal Reports - Gerando seus relatórios.

Conteúdo

Introdução:Gerando os seus relatórios com o Crystal Reports. Criando um novo relatório. Agrupando e ordenando registros. Inserindo títulos e Legendas. Formatação de campos, campos especiais e desenho de linhas e caixas. Trabalhando com fórmulas. Determinando o estilo e inserindo uma figura em seu relatório. Imprimindo o relatório a partir de sua aplicação no Visual Basic.

Introdução:Gerando os seus relatórios com o Crystal Reports. O Crystal Reports é o gerador de relatórios do Visual Basic e com el e desenhamos os relatórios de nossos aplicativos. Embora possua um objeto chamado Printer para imprimir dados, sua utilização além de complexa é trabalhosa pois tudo deve ser codificado. Ao Contrário, o Crystal Reports ut iliza uma interface gráfica a partir de onde podemos construir qualquer relatório que necessitamos.

Podemos iniciar o Crystal Reports através da opção Report Designer... do menu

Add-Ins ou pelo ícone correspondente na pasta de trabalho do Visual Basic

no Windows.

Junto com o Visual Basic 5.0 é distribuída a versão 4.6 do Crystal Reports.

Conteúdo

Page 24: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Criando um novo relatório. Vamos gerar um relatório baseado na tabela agenda que se encontra no banco de dados Controle . Nosso relatório deverá obedecer os seguintes par âmetros: 1- Campos a serem impressos : sobrenome , endereço e a data de nascimento. 2- O relatório deverá ser ordenado pelo campo sobre nome. 3- Deveremos permitir inicialmente a visualização d o relatório para posterior impressão. 4- O nome do relatório será agenda.rpt.

Selecionando a opção New do menu File teremos a tela da figura 1.0 abaixo:

figura 1.0

Após selecionar o botão Standard , devemos selecionar a base de dados na opção

Data File , para o nosso caso Controle.mdb.

A seguir temos um lista de todas as tabelas e consu ltas gravadas na base de dados

- exclua todos os elementos da lista , exceto a tab ela Agenda e clique no

botão Next para prosseguir.

Page 25: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Como nosso relatório esta baseado somente na tabela Agenda, o próximo passo Links

, pode ser dispensado, portanto clique novamente no botão Next.

Vamos selecionar os campos da tabela que serão impr essos no relatório - selecione cada

campo e clique no botão Add. Ao final devemos ter algo parecido com a figura 2.0 abaixo:

figura 2.0

A esta altura o relatório esta praticamente termina do , para visualizá-lo clique

no botão Preview Report. É mostrada a tela da figura 3.0 onde após

clicarmos na aba Design podemos notar cinco seções:

Page 26: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

figura 3.0

1- Title - para o título da aplicação.

2- Page Header - contém os elementos do cabeçalho da página.

3- Details - contém os campos de dados a serem impressos .

4- Page Footer - refere-se ao rodapé da página.

5- Summary - impressão de resumos.

Conteúdo

Agrupando e ordenando registros. Para agrupar registros , ordenando-os por uma deter minada coluna selecione a opção Group Section do menu Insert. Agrupando pelo campo sobrenome em ordem ascendente veremos na tela a figura 4.0:

Page 27: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

figura 4.0

Conteúdo

Inserindo títulos e legendas. Vamos inserir um título em nosso relatório e uma le genda para o campo sobrenome, para isso selecione a opção Text Field... do menu Insert. Na caixa de diálogo Enter Text digite o título: Agenda Pessoal e clique no botão Accept. Ao lado do ponteiro do mouse acompanha um retângulo que você deverá posicionar no local desej ado, ou seja, na seção Title. Para criar a legenda Nome para o campo sobrenome no cabeçalho de grupo, selecionte Text Field... novamente e digite Nome, clicando em Accept e posicionando a legenda mesmo local da legenda sobre nome.

Conteúdo

Formatação de campos, campos especiais e desenho de linhas. Para formatar campos basta selecionar o campo desej ado e clicar na opção Format do menu ou clicando com o botão direito do mouse so bre o campo teremos um menu pop-up como na figura 5.0 abaixo:

Page 28: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

figura 5.0

Pelo menu podemos acessar as opções pertinentes a um determinado campo do relatório.

Para o caso selecionamos o título Agenda Pessoal , vamos alterar a fonte (Change Font...) para 14 e o estilo para negrito.

Para alterar mais de um campo selecione-os mantendo a tecla Shift pressionada.

Aproveitando vamos inserir um campo referente a dat a no canto superior esquerdo. Selecione a opção Special Field... do menu Insert escolha a opção Print Date e posicione no local indicado. Clique com o botão direito do mouse sobre o campo n ascimento e selecione a opção Change Format... escolhendo o formato DMY (dia-mês-ano) e clique OK. Finalmente vamos desenhar um retângulo ao redor do título. Selecione a opção Box do Menu Insert , note que o ponteiro do mouse mudou para um lápis: Desenhe o retângulo ao redor do título mantendo o b otão esquerdo do mouse pressionado. Se quiser colorir o retângulo clique com o botão di reito do mouse sobre o mesmo e preencha-o com uma cor de sua escolha. Através do menu Insert podemos desenhar linhas, retângulos, quadrados , além de inserir figuras e até gráficos em nossos relatór ios. Podemos também usar os ícones correspondentes da ba rra de ferramentas como na figura 6.0 abaixo:

figura 6.0

Conteúdo

Trabalhando com fórmulas. Vamos montar uma fórmula para imprimir o número da página no rodapé do relatório. Para isso usamos o editor de fórmulas do Crystal Re ports que pode ser disparado

Page 29: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

através do ícone ou da opção Formula Field... do menu Insert. Após isso você deve informar o nome da fórmula no c ampo Formula Name para o nosso caso informe "pagina" e clique no botão OK. O Editor é mostrado na figura 7.0 :

figura 7.0 Agora basta digitar a fórmula na caixa Formula Text, vamos lá, digite: "Página: " + e, a seguir selecione a função TrimLeft na lista Functions; , ainda na lista Functions, selecione a função ToText e finalmente selecione o item PageNumber no final da lista Functions. Ao final deveremos ter o seguinte na caixa Formula Text: "Página: " + TrimLeft (ToText (PageNumber, 0 ) ) A função PageNumber retorna um valor númerico do número da página por isso usamos a função ToText para convertê-la em uma string , e a seguir usamos a função TrimLeft para removermos os espaços a direita. Vamos verificar a fórmula clicando no botão Check , se tudo estiver correto o crystal informa com a mensagem No errors found indicando que a sintaxe está correta. Agora basta clicar no botão Accept e posicionar a fórmula no canto esquerdo da seção Page Footer.

Page 30: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

Encerrado o relatório basta salvá-lo através da opç ão Save do menu File e informar o nome para o relatório.(Nosso caso inform a agenda). Devemos ressaltar que a linguagem de fórmulas do Cr ystal Reports é diferente do Visual Basic , assim por exemplo , se usarmos a propriedad e SelectionFormula do Crystal que permite definir condições para a impressão em n osso relatório de forma a imprimir somente os nomes iniciados pela letra "J" teríamos algo como: CrystalReport1.SelectionFormula = "{AGENDA.NOME} >= " & "''" & "J" & "''" Note que a refêrencia a campos da tabela é feita en tre chaves ({}).

Conteúdo

Determinando o estilo e inserindo uma figura em seu relatório. Você pode utilizar a guia Style para escolher a forma de apresentação do relatório.

figura 8.0 Para isto selecione um dos estilos na caixa de list agem style e veja á direita o jeitão do relatório. Se quiser pode inserir uma figura no relatório clic ando no botão Add Picture...

Page 31: 63893319 Apostila de Crystal Reports 4 6 e 8 0 Pags 31 Elisete

com o ícone. A caixa de texto Title lhe permite inserir o título para o relatório.

Conteúdo

Imprimindo o relatório a partir de sua aplicação no Visual Basic. Agora que nosso relatório esta pronto vamos associá -lo a nossa aplicação de forma a poder imprimí-lo a partir do Visual Basic. Para isso devemos ativar o componente do Crystal Re ports para a nossa aplicação na opção Components.. do menu Project e a seguir selecionar o controle

Crystal Reports e copiá-lo para nosso formulário. A seguir vamos definir algumas propriedades para o controle CrystalReport1 1- CopiesToPrinter - Determina o número de cópias do relatório.Inform e um (1) 2- Destination - Direciona a impressão: 0-na tela 1-na impre ssora 2-em arquivo. Informe zero (0). 3- ReportFileName - Indica a localização do relatório (arquivo .RPT ) a ser impresso. 4- WindowTitle - Título a janela Preview , informe Agenda . 5- SortFields - Configura a ordem de classificação.(Ver aba ixo.) Finalmente crie um botão de comando no formulário que irá disparar a impressão do relatório com o nome de Imprime e a seguir associe o seguinte código ao botão de comando: Private Sub imprime_Click() CrystalReport1.Destination = 0 CrystalReport1.ReportFileName = "c:\Controle\ag enda.rpt" CrystalReport1.SortFields(0) = "+{Agenda.Sobren ome}" CrystalReport1.Action = 1 End Sub A propriedade Action definida para 1 dispara a impressão do relatório. Outra forma de ordenar os registros via código é ut ilizar a propriedade sortfields. Na propriedade Sortfields , "+{Agenda.Sobrenome}" , indica que a ordem de impressão será por campo sobrenome (Agenda .sobrenome) e em ordem ascendente (+).