Anda di halaman 1dari 31

Crystal Report 4.

6 e
8.0

Autor:
Alexandro Vieira de Souza
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
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
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.
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.)
"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."

Download da versão 16 bits da DLL de extenso em português


ExtPor16.exe
(CRXLATE.DLL)
Download da versão 32 bits da DLL de extenso em português
ExtPor32.exe
(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,
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 )
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"


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 ="macoratti@riopreto.com.br"
.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 !!!
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 ?


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]
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"
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
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 ele
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 utiliza 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
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 sobrenome.
3- Deveremos permitir inicialmente a visualização do 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 consultas gravadas na base


de dados

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

botão Next para prosseguir.


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 impressos 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 terminado , 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:


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 determinada coluna
selecione a opção
Group Section do menu Insert. Agrupando pelo campo sobrenome
em ordem ascendente veremos na tela a figura 4.0:
figura 4.0

Conteúdo

Inserindo títulos e legendas.


Vamos inserir um título em nosso relatório e uma legenda 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 desejado, 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 sobrenome.

Conteúdo

Formatação de campos, campos especiais e desenho de linhas.


Para formatar campos basta selecionar o campo desejado e clicar na opção
Format
do menu ou clicando com o botão direito do mouse sobre o campo teremos um
menu pop-up
como na figura 5.0 abaixo:
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.
figura 5.0

Aproveitando vamos inserir um campo referente a data 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 nascimento 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 botão esquerdo do mouse
pressionado.

Se quiser colorir o retângulo clique com o botão direito 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órios.

Podemos também usar os ícones correspondentes da barra 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 Reports que pode ser
disparado
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 campo 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.
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 informa agenda).

Devemos ressaltar que a linguagem de fórmulas do Crystal Reports é


diferente do Visual
Basic , assim por exemplo , se usarmos a propriedade SelectionFormula do
Crystal
que permite definir condições para a impressão em nosso 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 entre 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 listagem style e veja á


direita o
jeitão do relatório.

Se quiser pode inserir uma figura no relatório clicando no botão Add


Picture...
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 Reports 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.Informe um


(1)
2-Destination - Direciona a impressão: 0-na tela 1-na impressora 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 abaixo.)

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\agenda.rpt"
CrystalReport1.SortFields(0) = "+{Agenda.Sobrenome}"
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 é utilizar 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
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 ele
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 utiliza 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
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 sobrenome.
3- Deveremos permitir inicialmente a visualização do 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 consultas gravadas na base


de dados

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

botão Next para prosseguir.


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 impressos 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 terminado , 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:


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 determinada coluna
selecione a opção
Group Section do menu Insert. Agrupando pelo campo sobrenome
em ordem ascendente veremos na tela a figura 4.0:
figura 4.0

Conteúdo

Inserindo títulos e legendas.


Vamos inserir um título em nosso relatório e uma legenda 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 desejado, 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 sobrenome.

Conteúdo

Formatação de campos, campos especiais e desenho de linhas.


Para formatar campos basta selecionar o campo desejado e clicar na opção
Format
do menu ou clicando com o botão direito do mouse sobre o campo teremos um
menu pop-up
como na figura 5.0 abaixo:
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.
figura 5.0

Aproveitando vamos inserir um campo referente a data 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 nascimento 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 botão esquerdo do mouse
pressionado.

Se quiser colorir o retângulo clique com o botão direito 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órios.

Podemos também usar os ícones correspondentes da barra 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 Reports que pode ser
disparado
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 campo 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.
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 informa agenda).

Devemos ressaltar que a linguagem de fórmulas do Crystal Reports é


diferente do Visual
Basic , assim por exemplo , se usarmos a propriedade SelectionFormula do
Crystal
que permite definir condições para a impressão em nosso 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 entre 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 listagem style e veja á


direita o
jeitão do relatório.

Se quiser pode inserir uma figura no relatório clicando no botão Add


Picture...
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 Reports 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.Informe um


(1)
2-Destination - Direciona a impressão: 0-na tela 1-na impressora 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 abaixo.)

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\agenda.rpt"
CrystalReport1.SortFields(0) = "+{Agenda.Sobrenome}"
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 é utilizar 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 (+).

Anda mungkin juga menyukai