Apostila de Crystal Reports 4.6 e 8.0 (Págs.31)_Elisete

Embed Size (px)

Citation preview

Crystal Report 4.6 e 8.0

Autor: Alexandro Vieira de Souza

Crystal Reports 4.6 - Manual de sobrevivncia

Embora j tenhamos abordado temas bsicos relacionados ao Crystal Reports vamos agora procurar aprofundar nosso conhecimento sobre esta ferramenta tratando de questes que fazem parte da maioria das dvidas que surgem quando vamos usar o Crystal Reports. Novamente iremos usar o sistema de perguntas e respostas . A verso abordada ser a 4.6 do Crystal Reports , embora o a verso atual seja a 8.0 , pois assim estaremos atingindo um maior nmero de usurios. Se voc instalou o Crystal Reports na verso 5.0 do VB no ter que instal-lo novamente quando migrar para a verso 6.0. Se voc no instalou , o Crystal Reports no instalado automaticamente com a verso 6.0 e voc vai precisar instal-lo separadamente. Para isto inicialize o arquivo de instalao Crystl32.exe presente no diretrio \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 opo New. A seguir selecione na janela - Create New Report - o Expert - Mail Label

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 boto Add e depois no boto 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 (opo Choose Mailing Label Type) , caso a etiqueta que voc vai usar no aparea na relao voc dever criar uma indicando as medidas , selecionando a opo User Defined Label

4- No Frame - Printing direction - voc deve informar a ordem de impresso dos registros , pode ser "Across then Down" pois as etiquetas sero impressas na ordem horizontal. 5- No Frame - Number of Labels - Aps voc selecionar a etiqueta ou informar as medidas aqui dever aparecer o nmero de colunas que voc tem em Across Page e quantas etiquetas tem em cada coluna. Se os valores no conferirem com o da sua pgina verifique as medidas . 6- No frame - Page Margins - Voc pode definir as margens das pginas 7- No frame - Label size - Tome cuidado aqui se voc for criar as suas prprias medidas. Informe em Width = largura da etiqueta (em centmetros) e em Height = altura da etiqueta (em centmetros) 8- No frame - Gap between labels- Voc informa o espao entre uma etiqueta e outra nos sentidos horizontal e vertical. 9- Para visualizar o relatrio clique no boto Preview Report . Obs - Voce deve configurar a impressora na opo Selecione Printer Setup do menu File indicando a impressora a ser utilizada, lembrando que na configurao 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 relatrio.

10- No menu File selecione a opo File Set label layout e verifique se o nmero de etiquetas por pgina (number of labels) se est de acordo, pois quando voc est definindo as medidas o Crystal no atualiza este campo. Se estiver ok, continue em frente seno altere as medidas at encontrar o nmero correto. Volte para a tela padro do relatrio. 11- Ao visualizar o relatrio voc tem acesso somente rea esquerda do relatrio (como se fosse uma etiqueta). Os campos devem estar na ordem que voc quer que apaream na etiqueta. Feito isto selecione preview e verifique se a pgina est aparecendo corretamente (porm lembre-se que WYSIWYG (What you see is what you get) no funciona no Crystal Reports). O que voc est vendo pode no ser exatamente o que voc ter.

Bem a esta altura s falta imprimir e verificar , ajustando quando necessrio. Se voc tiver problemas vamos ver alguns pontos que devem ser verificados. a) Se voc estiver usando o driver Genrico/Texto , verifique se voc colocou mas medidas corretas do papel e ainda se est configurado para com ou sem quebra de pgina. b) O tipo de fonte utilizado tambm influi no resultado final (Usar a fonte-padro 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 verso que voc est usando do Crystal Reports.

2 - Como imprimir por extenso no Crystal Reports ?A resposta a essa pergunta dada pelo prprio pessoal da ETZ , a distribuidora do Crystal no Brasiil. (Eu pessoalmente no testei.)

"J est disponvel no Brasil a funo que ir permitir os usurios Crystal Reports a imprimir valores por extenso em portugus, isto possvel atravs 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 tm o mesmo nome desta, ela deve estar localizado ou no \WINDOWS\SYSTEM ou no \WINDOWS\CRYSTAL. Aps feito isto, basta entrar no Crystal, criar uma frmula e usar a funo ToWords(nmero). Qualquer dvida, contate o Suporte Crystal." Download da verso 16 bits da DLL de extenso em portugus (CRXLATE.DLL) Download da verso 32 bits da DLL de extenso em portugus (CRXLAT32.DLL)

ExtPor16.exe ExtPor32.exe

3 - Consideraes Sobre Uso de Impressoras com Crystal Reports importante entender como Seagate Crystal Reports trata os ajustes de parmetros de impressoras. Quando seu relatrio estiver carregado, v para o menu Arquivo (File) e escolha Configurar Impressora (Printer Setup). Esta tela de dilogo a que controla como e onde um relatrio ir imprimir. importante se levar em conta que algumas destas funcionalidades iro mudar como outro usurio (um cliente) imprime o mesmo relatrio. A primeira coisa a se verificar nesta janela ONDE o relatrio ir ser impresso, que impressora ele ir usar. Isto controlado pela caixa "Nome da Impressora (Printer Name)". Se o projetista do relatrio escolher a Impressora Padro do Sistema (System's Default Printer), evidenciada pela linha dizendo Impressora Padro Pronta ("Default Printer Ready"), ento o relatrio ir tentar imprimir na impressora padro do cliente (se ele tiver alguma selecionada). Se o relatrio no for designado para a Impressora Padro, ento ele considerado um relatrio de Impressora Especfica (Specific Printer),e tentar ser impresso na impressora do cliente com o MESMO NOME da impressora usada na mquina do projetista original. Ento, se esta impressora no for achada, o relatrio ir ser impresso na Impressora Padro do Cliente. A Segunda seleo mais importante nesta tela o checkbox "Propriedades Padro (Default Properties). Se esta caixa estiver CHECADA, ento o relatrio ser impresso usando as Propriedades da Impressora Padro do Cliente, NO as propriedades que voc tenha especificado nesta tela (tipo de papel, fonte de papel, orientao de pgina). Se esta opo estiver NO CHECADA, o relatrio ir tentar forar as configuraes que voc tenha especificado (tipo de papel, fonte de papel, orientao de pgina), na impressora do cliente. Uma vez que a impressora do cliente suporte TODAS as configuraes, o relatrio ser impresso de maneira similar da impressora do desenvolvedor. Se, no entanto,

alguma destas configuraes no for suportada pela impressora do cliente, o relatrio ir usar as Propriedades Padro da impressora do cliente. A melhor regra a seguir : Se voc estiver querendo forar o tipo de papel, fonte de papel (bandejas) ou orientao de pgina na impressora do cliente, ento SEMPRE DEIXE NO CHECADA a caixa Propriedades Padro.

4- Como fazer a Justificao de textos no CrystalA opo de justificar texto no est disponvel na Barra de Ferramentas, mas ela existe. Basta clicar com o boto direito do mouse, com o cursor sobre o campo que se queira justificar (campo Memo, por exemplo), e ento escolher a opo Format Field (Formatar Campo). Dentro desta opo deve haver uma sesso chamada Alignment (Alinhamento). Ajuste ento para Default (Padro), ou Center (Centrado) / Left (Esquerdo) / Right (Direito).

5- Como eu posso saber as definies usadas em um determinado relatrio ?Vrias vezes nos deparamos com a necessidade de saber exatamente quais os campos, frmulas, tabelas usados no relatrio. O Crystal Reports fornece um relatrio completo da montagem do relatrio, atravs de: 1-clique na funo de menu Exportar Relatrios 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 formulrios do projeto basta fazer referncia ao controle indicando a localizao do controle. Assim se voc inseriu o controle CR1 no formulrio form1 e quer usar o controle no formulrio form2 basta usar a sintaxe:

Form1.CR1. ReportFileName = "Relatrio.RPT"Fazendo assim voc usa somente um nico nome para o seu controle Crystal em todo o projeto.

7-Usando as funes de converses de dados no Crystal . O Crystal fornece algumas funes para converso de dados. Vejamos as mais usadas.(Para ver todas leia o Help )

ToNumber(x) : Converte um texto informado no argumento x em um nmero. Voc geralmente usa esta funo quando quer converter um campo definido como texto para um formato numrico. Por exemplo: ToNumber("45.21") retornar o nmero 45,21 ToNumber("123.45") = 123.45 ToNumber({file.AcctNo}/2) = 22144 ToNumber({file.ZIP}) < 33333 = TRUE para {file.AcctNo} = 44288 para {file.ZIP} = 21385

ToText(x) : Converte o nmero x para o formato texto ToText(12345) retornar "12345" e ToText(45.21) retornar "45" ToText(x,n) : Converte o nmero x para o formato texto usando n casas decimais. Assim temos: ToText(12345.6789,2) retornar "12345,68" "12346" e ToText(12345.6789,0) retornar

A funo arrendonda o nmero conforme o numero de casas decimais definido. ToWords(x): Converte um nmero informado no argumento x num texto por extenso ( em ingls :-( ) ToWords(12345) retornar twelve thousand three hundred fortyfive and ToWords(x,n): Converte um nmero 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 contedo do argumento x , um texto , um nmero. Se o contedo for um nmero a expresso retornada ser YES caso contrrio ser NO. Assim: NumericText({file.Reference}) = NO NumericText({file.IDNUM}) = YES para {file.Reference} = "ABCDEFG" para {file.IDNUM} = "12345"

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

8 - Como selecionar uma impressora que no a padro no Crystal ?Basta acrescentar as seguintes linhas de cdigo no seu cdigo para imprimir o arquivo. With CrystalReport1 .ReportFileName = "X:\caminho\relatorio.rpt" .PrinterDriver = "Epson24.drv" .PrinterPort = "LPT1" .PrinterName = "Epson - Matricial" .Action = 1 End With ReportFileName - localizao e nome do relatrio que deseja imprimir PrinterDriver - O nome do driver da impressora para qual deseja imprimir PrinterPort = A porta para impresso PrinterName = O nome da impressora Action = dispara exibio do o relatrio.

9 - Como enviar relatrios 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 relatrio para uma janela Printer - envia o relatrio para a impressora File - envia o relatrio para um arquivo em disco EMail (via MAPI) - envia o relatrio para outra pessoa na rede via MAPI Email. O relatrio anexado. EMail (via VIM ) - nvia o relatrio 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 relatrio. (Para mais de um destinatrio 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 opo - "Convert Date-Time to Date". Pronto !!!

Agora as datas do seu relatrio sero 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 funo de substring do Crystal: Assim:

{Tabela.hora}[12 to 16] - Isto ir extrair os dados a partir daa posio 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 extrao de subcadeias de strings da mesma forma que a funo Mid$. Sua sintaxe a seguinte:

x[n]

onde: x a string ou campo e n o nmero da posio na string que desejamos extrair Assim: "Visual Basic"[1] seja , a letra V "Visual Basic"[8] obtm a primeira letra da cadeia Visual Basic , ou

retorna a letra B

O operador admite tambm a seguinte sintaxe: x[n to m] Ex: onde extraimos uma subcadeia de x iniciada em n e terminada em m

"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] cliente armazenado => isto extrair os 20 primeiros caracteres do nome do

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 ?

Este um velho e (des) conhecido problema para quem usa o crystal reports (pelo menos nas verses mais antigas). Como posso exibir o camo cep, telefone, cgc, cpf , etc.. formatado no meu relatrio no crystal reports ? A resposta simples : Utilize as formlas do Crystal. Como ? seguir: Vamos mostrar a

Vamos supor que voc quer exibir o campo telefone que esta armazenado no seu banco de dados sem formatao ( geralmente armazenamos os campos sem formatao). 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 frmula para formatar o campo no padro de exibio desejado. Voc tem a tabela clientes com os campos : codigo, nome , telefone. O campo telefone armazena o cdigo de rea da cidade e o nmero do telefone da seguinte forma: CCNNNNNNNN - onde CC o cdigo de rea da cidade e NNNNNNNN o nmero do telefone . Voc tem os seguinte valores armazenados para este campo: 1196701212 e 1702245521. Voc quer exibir o telefone no relatrio no seguinte formato: 11-96701212 e 17-0224-5521. Se voc usar o campo diretamente no Crystal ir obter o seguinte:

Vamos usar uma frmula para exibir o campo no relatrio no formato desejado. Carregue o relatrio no Crystal e no Menu Insert selecione Formula Field Informe o nome para a frmula e clique em OK Agora usando o operador subscript vamos separar as subcadeias desejadas e montar a cadeia no formato desejado. A frmula fica assim: {socios.TELEFONE}[1 to 2] + "-" + {socios.TELEFONE}[3 to 6] + "-" + {socios.TELEFONE}[7 to 10]

Clique no boto Accept e insira a frmula no local desejado. Veja o resultado final:

Dependendo do seu campo a frmula ser diferente mas a maneira sempre a mesma. (Eu estou usando a verso 4.6 do Crystal Reports)

13 - Imprimindo em outras impressoras que no a padro .Para imprimir em uma impressora que no seja a padro voc pode usar propriedade PrinterName em conjunto com as propriedades PrinterDriver e PrinterPort. Se voc definir estas trs propriedades corretamente o Crystal imprime na impressora definida caso contrrio ele usa a padro.

Sintaxe: PrinterName [form.]Report.PrinterName[= PrinterName$] "Epson LQ850" Define a impressora Epson LQ850 Sintaxe: PrinterDriver [form.]Report.PrinterDriver[= DriverName$] "Epson24.drv"

Ex: Report1.PrinterName=

Ex: Report1.PrinterDriver =

Define o driver da impressora para Epson24.drv Sintaxe:PrinterPort [form.]Report.PrinterPort[= PortName$] "LPT1" Define a porta LPT1Veja um exemplo de cdigo para fazer este servio : CrystalReport1.PrinterPort = "LPT1" CrystalReport1.PrinterDriver = "Epson24.drv" CrystalReport1.PrinterDriver = "Epson LQ850" CrystalReport1.action = 1

Ex: Report1.PrinterPort=

Crystal Reports - Gerando seus relatrios.

ContedoIntroduo:Gerando os seus relatrios com o Crystal Reports. Criando um novo relatrio. Agrupando e ordenando registros. Inserindo ttulos e Legendas. Formatao de campos, campos especiais e desenho de linhas e caixas. Trabalhando com frmulas. Determinando o estilo e inserindo uma figura em seu relatrio. Imprimindo o relatrio a partir de sua aplicao no Visual Basic.

Introduo:Gerando os seus relatrios com o Crystal Reports.O Crystal Reports o gerador de relatrios do Visual Basic e com ele desenhamos os relatrios de nossos aplicativos. Embora possua um objeto chamado Printer para imprimir dados, sua utilizao alm de complexa trabalhosa pois tudo deve ser codificado. Ao Contrrio, o Crystal Reports utiliza uma interface grfica a partir de onde podemos construir qualquer relatrio que necessitamos.

Podemos iniciar o Crystal Reports atravs da opo Report Designer... menu

do

Add-Ins ou pelo cone correspondente na pasta de trabalho do Visual Basic no Windows.

Junto com o Visual Basic 5.0 distribuda a verso 4.6 do Crystal Reports.

Contedo

Criando um novo relatrio.Vamos gerar um relatrio baseado na tabela agenda que se encontra no banco de dados Controle . Nosso relatrio dever obedecer os seguintes parmetros:

1- Campos a serem impressos : sobrenome , endereo e a data de nascimento. 2- O relatrio dever ser ordenado pelo campo sobrenome. 3- Deveremos permitir inicialmente a visualizao do relatrio para posterior impresso. 4- O nome do relatrio ser agenda.rpt.

Selecionando a opo New do menu File teremos a tela da figura 1.0 abaixo:

figura 1.0

Aps selecionar o boto Standard , devemos selecionar a base de dados na opo Data File , para o nosso caso Controle.mdb.

A seguir temos um lista de todas as tabelas e consultas gravadas na base de dados - exclua todos os elementos da lista , exceto a tabela Agenda e clique no boto Next para prosseguir.

Como nosso relatrio esta baseado somente na tabela Agenda, o prximo passo Links , pode ser dispensado, portanto clique novamente no boto Next.

Vamos selecionar os campos da tabela que sero impressos no relatrio selecione cada campo e clique no boto Add. Ao final devemos ter algo parecido com a figura 2.0 abaixo:

figura 2.0

A esta altura o relatrio esta praticamente terminado , para visualiz-lo clique no boto Preview Report. mostrada a tela da figura 3.0 onde aps clicarmos na aba Design podemos notar cinco sees:

figura 3.0

1-Title 2-Page Header 3-Details 4-Page Footer 5-Summary

- para o ttulo da aplicao. - contm os elementos do cabealho da pgina. - contm os campos de dados a serem impressos. - refere-se ao rodap da pgina. - impresso de resumos.

Contedo

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

figura 4.0 Contedo

Inserindo ttulos e legendas.Vamos inserir um ttulo em nosso relatrio e uma legenda para o campo sobrenome, para isso selecione a opo Text Field... do menu Insert. Na caixa de dilogo Enter Text digite o ttulo: Agenda Pessoal e clique no boto Accept. Ao lado do ponteiro do mouse acompanha um retngulo que voc dever posicionar no local desejado, ou seja, na seo Title. Para criar a legenda Nome para o campo sobrenome no cabealho de grupo, selecionte Text Field... novamente e digite Nome, clicando em Accept e posicionando a legenda mesmo local da legenda sobrenome.

Contedo

Formatao de campos, campos especiais e desenho de linhas.Para formatar campos basta selecionar o campo desejado e clicar na opo Format do menu ou clicando com o boto direito do mouse sobre o campo teremos um menu pop-up como na figura 5.0 abaixo:

Pelo menu podemos acessar as opes pertinentes a um determinado campo do relatrio. Para o caso selecionamos o ttulo 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.

figura 5.0

Aproveitando vamos inserir um campo referente a data no canto superior esquerdo. Selecione a opo Special Field... do menu Insert escolha a opo Print Date e posicione no local indicado. Clique com o boto direito do mouse sobre o campo nascimento e selecione a opo Change Format... escolhendo o formato DMY (dia-ms-ano) e clique OK. Finalmente vamos desenhar um retngulo ao redor do ttulo. Selecione a opo Box do Menu Insert , note que o ponteiro do mouse mudou para um lpis: Desenhe o retngulo ao redor do ttulo mantendo o boto esquerdo do mouse pressionado. Se quiser colorir o retngulo clique com o boto direito do mouse sobre o mesmo e preencha-o com uma cor de sua escolha. Atravs do menu Insert podemos desenhar linhas, retngulos, quadrados , alm de inserir figuras e at grficos em nossos relatrios. Podemos tambm usar os cones correspondentes da barra de ferramentas como na figura 6.0 abaixo:

figura 6.0

Contedo

Trabalhando com frmulas.Vamos montar uma frmula para imprimir o nmero da pgina no rodap do relatrio. Para isso usamos o editor de frmulas do Crystal Reports que pode ser disparado

atravs do cone

ou da opo Formula Field... do menu Insert.

Aps isso voc deve informar o nome da frmula no campo Formula Name para o nosso caso informe "pagina" e clique no boto OK. O Editor mostrado na figura 7.0 :

figura 7.0Agora basta digitar a frmula na caixa Formula Text, vamos l, digite: "Pgina: " + e, a seguir selecione a funo TrimLeft na lista Functions; , ainda na lista Functions, selecione a funo ToText e finalmente selecione o item PageNumber no final da lista Functions. Ao final deveremos ter o seguinte na caixa Formula Text: "Pgina: " + TrimLeft (ToText (PageNumber, 0 ) ) A funo PageNumber retorna um valor nmerico do nmero da pgina por isso usamos a funo ToText para convert-la em uma string , e a seguir usamos a funo TrimLeft para removermos os espaos a direita. Vamos verificar a frmula clicando no boto Check , se tudo estiver correto o crystal informa com a mensagem No errors found indicando que a sintaxe est correta. Agora basta clicar no boto Accept e posicionar a frmula no canto esquerdo da seo Page Footer.

Encerrado o relatrio basta salv-lo atravs da opo Save do menu File e informar o nome para o relatrio.(Nosso caso informa agenda). Devemos ressaltar que a linguagem de frmulas do Crystal Reports diferente do Visual Basic , assim por exemplo , se usarmos a propriedade SelectionFormula do Crystal que permite definir condies para a impresso em nosso relatrio de forma a imprimir somente os nomes iniciados pela letra "J" teramos algo como: CrystalReport1.SelectionFormula = "{AGENDA.NOME} >= " & "''" & "J" & "''" Note que a refrencia a campos da tabela feita entre chaves ({}).

Contedo

Determinando o estilo e inserindo uma figura em seu relatrio.Voc pode utilizar a guia Style para escolher a forma de apresentao do relatrio.

figura 8.0Para isto selecione um dos estilos na caixa de listagem style e veja direita o jeito do relatrio. Se quiser pode inserir uma figura no relatrio clicando no boto Add Picture...

com o cone. A caixa de texto Title lhe permite inserir o ttulo para o relatrio.

Contedo

Imprimindo o relatrio a partir de sua aplicao no Visual Basic.Agora que nosso relatrio esta pronto vamos associ-lo a nossa aplicao de forma a poder imprim-lo a partir do Visual Basic. Para isso devemos ativar o componente do Crystal Reports para a nossa aplicao na opo Components.. do menu Project e a seguir selecionar o controle Crystal Reports e copi-lo para nosso formulrio.

A seguir vamos definir algumas propriedades para o controle CrystalReport1 1-CopiesToPrinter (1) 2-Destination em arquivo. Informe 3-ReportFileName ser impresso. 4-WindowTitle 5-SortFields Determina o nmero de cpias do relatrio.Informe um Direciona a impresso: 0-na tela 1-na impressora 2zero (0). Indica a localizao do relatrio (arquivo .RPT) a Ttulo a janela Preview , informe Agenda . Configura a ordem de classificao.(Ver abaixo.)

Finalmente crie um boto de comando no formulrio que ir disparar a impresso do relatrio com o nome de Imprime e a seguir associe o seguinte cdigo ao boto de comando:

Private Sub imprime_Click() CrystalReport1.Destination = 0 CrystalReport1.ReportFileName = "c:\Controle\agenda.rpt" CrystalReport1.SortFields(0) = "+{Agenda.Sobrenome}" CrystalReport1.Action = 1 End SubA propriedade Action definida para 1 dispara a impresso do relatrio. Outra forma de ordenar os registros via cdigo utilizar a propriedade sortfields. Na propriedade Sortfields , "+{Agenda.Sobrenome}" , indica que a ordem de impresso ser por campo sobrenome (Agenda.sobrenome) e em ordem ascendente (+).

Contedo Retorna

Crystal Reports - Gerando seus relatrios.

ContedoIntroduo:Gerando os seus relatrios com o Crystal Reports. Criando um novo relatrio. Agrupando e ordenando registros. Inserindo ttulos e Legendas. Formatao de campos, campos especiais e desenho de linhas e caixas. Trabalhando com frmulas. Determinando o estilo e inserindo uma figura em seu relatrio. Imprimindo o relatrio a partir de sua aplicao no Visual Basic.

Introduo:Gerando os seus relatrios com o Crystal Reports.O Crystal Reports o gerador de relatrios do Visual Basic e com ele desenhamos os relatrios de nossos aplicativos. Embora possua um objeto chamado Printer para imprimir dados, sua utilizao alm de complexa trabalhosa pois tudo deve ser codificado. Ao Contrrio, o Crystal Reports utiliza uma interface grfica a partir de onde podemos construir qualquer relatrio que necessitamos.

Podemos iniciar o Crystal Reports atravs da opo Report Designer... menu

do

Add-Ins ou pelo cone correspondente na pasta de trabalho do Visual Basic no Windows.

Junto com o Visual Basic 5.0 distribuda a verso 4.6 do Crystal Reports.

Contedo

Criando um novo relatrio.Vamos gerar um relatrio baseado na tabela agenda que se encontra no banco de dados Controle . Nosso relatrio dever obedecer os seguintes parmetros:

1- Campos a serem impressos : sobrenome , endereo e a data de nascimento. 2- O relatrio dever ser ordenado pelo campo sobrenome. 3- Deveremos permitir inicialmente a visualizao do relatrio para posterior impresso. 4- O nome do relatrio ser agenda.rpt.

Selecionando a opo New do menu File teremos a tela da figura 1.0 abaixo:

figura 1.0

Aps selecionar o boto Standard , devemos selecionar a base de dados na opo Data File , para o nosso caso Controle.mdb.

A seguir temos um lista de todas as tabelas e consultas gravadas na base de dados - exclua todos os elementos da lista , exceto a tabela Agenda e clique no boto Next para prosseguir.

Como nosso relatrio esta baseado somente na tabela Agenda, o prximo passo Links , pode ser dispensado, portanto clique novamente no boto Next.

Vamos selecionar os campos da tabela que sero impressos no relatrio selecione cada campo e clique no boto Add. Ao final devemos ter algo parecido com a figura 2.0 abaixo:

figura 2.0

A esta altura o relatrio esta praticamente terminado , para visualiz-lo clique no boto Preview Report. mostrada a tela da figura 3.0 onde aps clicarmos na aba Design podemos notar cinco sees:

figura 3.0

1-Title 2-Page Header 3-Details 4-Page Footer 5-Summary

- para o ttulo da aplicao. - contm os elementos do cabealho da pgina. - contm os campos de dados a serem impressos. - refere-se ao rodap da pgina. - impresso de resumos.

Contedo

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

figura 4.0 Contedo

Inserindo ttulos e legendas.Vamos inserir um ttulo em nosso relatrio e uma legenda para o campo sobrenome, para isso selecione a opo Text Field... do menu Insert. Na caixa de dilogo Enter Text digite o ttulo: Agenda Pessoal e clique no boto Accept. Ao lado do ponteiro do mouse acompanha um retngulo que voc dever posicionar no local desejado, ou seja, na seo Title. Para criar a legenda Nome para o campo sobrenome no cabealho de grupo, selecionte Text Field... novamente e digite Nome, clicando em Accept e posicionando a legenda mesmo local da legenda sobrenome.

Contedo

Formatao de campos, campos especiais e desenho de linhas.Para formatar campos basta selecionar o campo desejado e clicar na opo Format do menu ou clicando com o boto direito do mouse sobre o campo teremos um menu pop-up como na figura 5.0 abaixo:

Pelo menu podemos acessar as opes pertinentes a um determinado campo do relatrio. Para o caso selecionamos o ttulo 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.

figura 5.0

Aproveitando vamos inserir um campo referente a data no canto superior esquerdo. Selecione a opo Special Field... do menu Insert escolha a opo Print Date e posicione no local indicado. Clique com o boto direito do mouse sobre o campo nascimento e selecione a opo Change Format... escolhendo o formato DMY (dia-ms-ano) e clique OK. Finalmente vamos desenhar um retngulo ao redor do ttulo. Selecione a opo Box do Menu Insert , note que o ponteiro do mouse mudou para um lpis: Desenhe o retngulo ao redor do ttulo mantendo o boto esquerdo do mouse pressionado. Se quiser colorir o retngulo clique com o boto direito do mouse sobre o mesmo e preencha-o com uma cor de sua escolha. Atravs do menu Insert podemos desenhar linhas, retngulos, quadrados , alm de inserir figuras e at grficos em nossos relatrios. Podemos tambm usar os cones correspondentes da barra de ferramentas como na figura 6.0 abaixo:

figura 6.0

Contedo

Trabalhando com frmulas.Vamos montar uma frmula para imprimir o nmero da pgina no rodap do relatrio. Para isso usamos o editor de frmulas do Crystal Reports que pode ser disparado

atravs do cone

ou da opo Formula Field... do menu Insert.

Aps isso voc deve informar o nome da frmula no campo Formula Name para o nosso caso informe "pagina" e clique no boto OK. O Editor mostrado na figura 7.0 :

figura 7.0Agora basta digitar a frmula na caixa Formula Text, vamos l, digite: "Pgina: " + e, a seguir selecione a funo TrimLeft na lista Functions; , ainda na lista Functions, selecione a funo ToText e finalmente selecione o item PageNumber no final da lista Functions. Ao final deveremos ter o seguinte na caixa Formula Text: "Pgina: " + TrimLeft (ToText (PageNumber, 0 ) ) A funo PageNumber retorna um valor nmerico do nmero da pgina por isso usamos a funo ToText para convert-la em uma string , e a seguir usamos a funo TrimLeft para removermos os espaos a direita. Vamos verificar a frmula clicando no boto Check , se tudo estiver correto o crystal informa com a mensagem No errors found indicando que a sintaxe est correta. Agora basta clicar no boto Accept e posicionar a frmula no canto esquerdo da seo Page Footer.

Encerrado o relatrio basta salv-lo atravs da opo Save do menu File e informar o nome para o relatrio.(Nosso caso informa agenda). Devemos ressaltar que a linguagem de frmulas do Crystal Reports diferente do Visual Basic , assim por exemplo , se usarmos a propriedade SelectionFormula do Crystal que permite definir condies para a impresso em nosso relatrio de forma a imprimir somente os nomes iniciados pela letra "J" teramos algo como: CrystalReport1.SelectionFormula = "{AGENDA.NOME} >= " & "''" & "J" & "''" Note que a refrencia a campos da tabela feita entre chaves ({}).

Contedo

Determinando o estilo e inserindo uma figura em seu relatrio.Voc pode utilizar a guia Style para escolher a forma de apresentao do relatrio.

figura 8.0Para isto selecione um dos estilos na caixa de listagem style e veja direita o jeito do relatrio. Se quiser pode inserir uma figura no relatrio clicando no boto Add Picture...

com o cone. A caixa de texto Title lhe permite inserir o ttulo para o relatrio.

Contedo

Imprimindo o relatrio a partir de sua aplicao no Visual Basic.Agora que nosso relatrio esta pronto vamos associ-lo a nossa aplicao de forma a poder imprim-lo a partir do Visual Basic. Para isso devemos ativar o componente do Crystal Reports para a nossa aplicao na opo Components.. do menu Project e a seguir selecionar o controle Crystal Reports e copi-lo para nosso formulrio.

A seguir vamos definir algumas propriedades para o controle CrystalReport1 1-CopiesToPrinter (1) 2-Destination em arquivo. Informe 3-ReportFileName ser impresso. 4-WindowTitle 5-SortFields Determina o nmero de cpias do relatrio.Informe um Direciona a impresso: 0-na tela 1-na impressora 2zero (0). Indica a localizao do relatrio (arquivo .RPT) a Ttulo a janela Preview , informe Agenda . Configura a ordem de classificao.(Ver abaixo.)

Finalmente crie um boto de comando no formulrio que ir disparar a impresso do relatrio com o nome de Imprime e a seguir associe o seguinte cdigo ao boto de comando:

Private Sub imprime_Click() CrystalReport1.Destination = 0 CrystalReport1.ReportFileName = "c:\Controle\agenda.rpt" CrystalReport1.SortFields(0) = "+{Agenda.Sobrenome}" CrystalReport1.Action = 1 End SubA propriedade Action definida para 1 dispara a impresso do relatrio. Outra forma de ordenar os registros via cdigo utilizar a propriedade sortfields. Na propriedade Sortfields , "+{Agenda.Sobrenome}" , indica que a ordem de impresso ser por campo sobrenome (Agenda.sobrenome) e em ordem ascendente (+).