Você está na página 1de 4

1.

Construindo Relatrios com o QuickReport

O Presente trabalho tem como objetivo demostrar os procedimentos para criar relatrios em programas feitos em Delphi utilizando o QuickReport. O Delphi 1. j! possui um gerador de relatrios o Report"mith #ue perde em desempenho e desenvoltura em rela$%o ao QuickReport& al'm de necessitar de sua instala$%o pr'via #uando da sua utiliza$%o. Por ser um programa a parte torna(se muito lento em rela$%o a o QuickReport #ue ' uma biblioteca de componentes #ue passa a fazer parte da aplica$%o #uando da sua utiliza$%o aps a compila$%o.

1.1

QuickReport bsico

QuickReport ' um gerador de relatrios por banda. "eu relatrio ' constru)do em cima de v!rios tipos de banda& onde s%o colocados componentes vis)veis como campos de banco de dados& rtulos& imagens e outros componentes imprim)veis.

Objetos do QuickReport na Barra de Ferramentas do Delphi.

1.1.1

Componentes do QuickReport.

1.1.1.1 QuickReport
*ste ' o componente principal do QuickReport& pois ele transforma a form padr%o em um relatrio.

1.1.1.2 QRBand
+oc, constri seus relatrios com diferentes QR-ands e colocando componentes vis)veis de controle do QuickReport sobre ela. *.istem diferentes tipos de bandas& como banda de detalhes& banda de cabe$alho& banda de rodap' e outras.

1.1.1.3 QRGroup
*.iste duas maneiras de imprimir relatrios mestre/detalhes com o QuickReport. 0m ' usar um componente 1Quer2 ligado com um Quer234onsultas5 e QR6roups para grupos de datas& a outra maneira ' usar o componente Detail7ink combinado com bandas Detail6roup. 4ada m'todo tem o mesmo resultado. "e voc, tiver necessidade de relatrios mestres/detalhes com mais de duas camadas ent%o use QR6roup e 1Quer2 ter! uma probabilidade de ser melhor desempenho.

1.1.1.4 QRDetailLink
QRDetail7ink ' o segundo caminho para criar relatrios mestre/detalhes no QuickReport. 1ipicamente voc, usaria QRDetail7ink com 11ables 3ou 1Queries5 #uando voc, tem somente dois n)veis de cone.%o. 8 for$a do QRDetail7ink contudo& ' #ue voc, pode ter muitas tabelas detalhes.

1.1.1.5 QRLabel
O 4omponente QR7abel ' usado para mostrar te.tos em um relatrio. 8 propriedade 4aption31)tulo5 pode ser alterado em alguns eventos durante a prepara$%o do relatrio. "e voc, necessitar um te.to para sa)da de um campo de dados use o componente QRD-1e.t.

1.1.1.6 QRMemo
O 4omponente QR9emo ' utilizado montar linhas #ue precisam ser composta por v!rios itens de dados ou te.tos #ue precisem ser digitados para compor o relatrio.

1.1.1.7 QRDBTe t
O 4omponente QRD-1e.t ' uma controle de te.to de dados cliente. 1e.to ' conectado com um campo de banco de dados.

1.1.1.! QRDB"alc
*ste componente automatiza processos de soma e contagem de campos de dados. *m adi$%o para esta propriedade o QRD-4alc tem todas a propriedades e eventos herdados do QRD-1e.t.

1.1.1.# QR$%&Data
O 4omponente QR"2sData mostra v!rias informa$:es do sistema. *m adi$%o para as propriedade do QR"2sData tem(se todos os componentes #ue o QR7abel tem& e.ceto a propriedade 4aption.

1.1.1.1' 1.1.1.11

QR$(ape QR)re*ie+

QR"hape ' usado para mostrar linhas simples e figuras em um relatrio.

QRPrevie; ' usado para criar uma form de pr' visualiza$%o. *ste componente mostra todas as sa)das de uma visualiza$%o do previe; atual. Para chamar sua prpria form de pr' visualiza$%o ao inv's de usar uma form padr%o com QuickReport atribuindo o evento QRPrinter.OnPrevie;. <este evento voc, traz sua prprio form a #ual deve conte o componente QRPrevie;. +oc, n%o pode selecionar #ue p!gina para visualizar usando a propriedade Page<umber.

1.2

Criando Relatrios

QuickReport pode criar v!rios tipos de relatrios& de fato com um breve conhecimento de Delphi e um pouco de criatividade pode ser usado para criar #ual#uer tipo de relatrio. 7embrar #ue ainda #ue se os relatrios s%o criados como as forms& mas n%o com a inten$%o de ser mostrado na tela como forms. *m uma form relatrio deve ser inclu)do um componente 1QuickReport& e voc, usa neste componente os m'todos PR=<1 e PR*+=*> para criar seu relatrio. <%o tente usar em um relatrio os m'todos de form "?O> ou "?O>9OD87. 0ma @orm relatrio nunca dever! ser em sua aplica$%o o form principal.

1.2.1

Relatrio de lista Simples

4riar um relatrio de lista simples do conteAdo de uma tabela ou uma consulta ' muito f!cil. "iga as instru$:es passo a passo a seguir para criar um relatrio listando todos os clientes de D-Demos. 8 tabela clientes est! inclu)da no Delphi. 1. B. E. 4riar um novo projeto com um form e sobre um Anico form. *sta ' sua principal forma de aplica$%o. "alvar unidade do form como 98=<@OR9 e a aplica$%o como QR1*"1. 8dicionar um form em branco para o projeto . *stabelecer o nome para a propriedade 9CR*POR1. *stabelecer a largura3>idth5 da form para mais ou menos D . O atual nAmero n%o ' cr)tico. 8dicionar uma 11able para o componente form. <omear o componente 4ustomer1able& estabelecer a propriedade Data-ase<ame para D-D*9O" e a propriedade 1able<ame para 4O"109*R. *stabelecer a propriedade ativa para 1R0*. 8dicionar um componente 1Data"ource para o form. <omear o 4ustomerD" e estabelecer a propriedade Date"et para 4ustomer1able. 8dicionar um componente 1QuickReport para o form. <omear o componente R*P. *stabelecer a propriedade Data"ource para 4ustomerD".

F. G.

H. I. D. J. 1 . 11.

8dicionar um componente QR-and para o form. *stabelecer a propriedade -and12pe para rbDetail. 4olocar um componente 1QRD-1e.t sobre o band. *stabelecer a propriedade Data"ource para 4ustomerD" e a propriedade Data@ield para 4ompan2<ame. "alvar o form como R*POR1. +oltar K 98=<@OR9 3form principal5 e adicionar a cl!usula 0"*" 9CR*POR1 no topo do cdigo fonte. Dar um duplo cli#ue no bot%o da form principal. =sto ir! mostrar o evento O<47=4L do bot%o. 8dicionar o seguinte cdigo para o evento M 92Report.Rep.Previe;N Rode seu projeto .

+oc, criou agora um projeto com relatrio. "eu programa pode agoraM apresentar& imprimir& salvar e carregar relatriosO

1.2.2

Criando um relatrio composto

O QuickReport pode imprimir relatrios mestre e detalhes muito facilmente. *stes relatrios podem ser imprimidos juntamente com componentes 1Quer2 3consulta5 e de componentes 11able 3tabela5 conectadas com 9aster"ource 3fonte mestre5/propriedades 9aster@ield3campo mestre5. *m acr'scimo o QuickReport pode criar mestres comple.os/relatrios detalhes com registros de um nAmero ilimitado de tabelas detalhes. +oc, poder! ver como criar ambos os tipos de relatrios a seguir. Relatrios mestre/detalhes usando o componente 11able 3tabela5. 4riando um mestre/detalhes com o componente 11able 3tabela5 dei.a o relatrio muito mais r!pido e fle.)vel. *m adi$%o voc, pode incluir dados detalhes de muitas outras tabelas detalhes #ue voc, #ueira. +oc, pode criar um relatrio de uma rela$%o resumida de clientes de todos os seus clientes 3master data5 e para cada cliente da lista todas as ordens #ue o cliente tenha feito 3detail data5& todos os seus contatos pessoais com seus clientes 3detail data5& todos os produtos de uma categoria #ue o cliente esteja interessado 3detail data5 e muitas outras tabelas #ue voc, #uiser unir com a tabela clientes. 4ada uma destas tabelas detalhes podem conter a sua banda cabe$alho& banda detalhe e banda rodap'. Para criar relatrios mestre usando componentes 11able siga as instru$:es a seguir. +oc, vai ter a necessidade de olhar o relatrio 9DR*P do projeto demonstra$%o. *le e um relatrio mestre/detalhe #ue voc, pode usar como modelo. 4rie um relatrio padr%o seguindo o e.emplo deste cap)tulo 4riando Relatrios. 1. 8lterar a propriedade 92Report.Report12pe para #r9asterDetail. B. 8crescentar um novo componente 11able para o relatrio. <omear ele Orderes1able& colocar a propriedade Data-ase<ame para D-D*9O"& a propriedade 1able<ame para Orders& o 9aster"ource para 4ustomerD" e na cai.a de dialogo 9aster@ields conecte o )ndice secund!rio 3custno5 para 4ustomer. 4ustno. 4olo#ue a propriedade 8ctive da 11able para 1R0*. E. 8dicione um componente 1Data"ource para o relatrio. <omeie ele OrdersD" e colo#ue a propriedade Data"et para Orders1able F. 8dicione um 1QR-and para o relatrio. 4olo#ue a propriedade -and12pe para rb"ubdetail. <omeie ele para OrdersDetail-and. G. 8dicione um componente 1QRDetail7ink para o relatrio. 4olo#ue a propriedade Data"ource para OrdersDs. 4olo#ue a propriedade Detail-and para OrderDetail-and. 4olo#ue a propriedade 9aster para R*P.

H. 4olo#ue um componente 1QRD-1e.t sobre o OrdersDetail-and. 4olo#ue a propriedade Data"ource para OrdersD" e a Propriedade Data@ield para Order<o. I. Duplo cli#ue no componente QuickReport para visualizar o relatrio. "e voc, desejar mais tabelas de detalhes voc, dever! repetir os passos E a I para cara tabela de detalhes #ue voc, ira incluir. Para mudar a ordem de impress%o reorganize a ordem de cria$%o dos componentes 1QRDetailink. 8s 1abelas de detalhes s%o imprimidas na ordem correspondente com a cria$%o dos componentes 1QRDetailink.

Você também pode gostar