View
77
Download
0
Category
Preview:
Citation preview
QuickReport 2
QuickReport 2.0b
Registre 1997 QuSoft COMO
Para atualizaes por favor vai para http://www.qusoft.no
QuSoft COMO
Fred Olsensgt. 1
N-0152 Oslo
Noruega
Envie fax +47 22 41 74 91
Doc aceleram 1.2
1 INTRODUO 1-8
PREFCIO 1-9
SOBRE QUICKREPORT 1-11
SOBRE ESTA DOCUMENTAO 1-12
2 QUICKREPORT 2-13 USANDO
O PRIMEIRO RELATRIO 2-14
Um relatrio 2-14 simples
A faixa diferente digita 2-15
Dados 2-16 conectando
Filtrando e Ordenando os Dados 2-16
Texto somando e Dados Fields 2-17
RELATRIOS 2-19 CRIANDO
Grid, Unidades e Zune 2-19
Tamanho de papel e margens 2-20
Selecionando um Manancial 2-21
Ttulo de relatrio e Descrio 2-22
Faixas 2-22 somando
Classificando segundo o tamanho as Faixas 2-24
Faixa que Imprime Ordem 2-25
Faixas virando de tempo em tempo 2-26
Componentes Imprimveis somando para o Relatrio 2-27
Sobre o Texto Componentes 2-28
Texto 2-30 Esttico imprimindo
Banco de dados imprimindo Fields 2-31
Formas 2-32 imprimindo
Imagens 2-32 imprimindo
RichText Formatted imprimindo Memorandos 2-33
EXPRESSES 2-35 USANDO
Expresses 2-35 compondo
TQRExpr 2-38 usando
Empilhe Tamanho 2-39
GRUPOS 2-40 CRIANDO
3 TCNICAS 3-43 AVANADAS
RELATRIOS CRIANDO ATRAVS DE CDIGO 3-44
QRPRINTER 3-48 USANDO
4 QUICKREPORT 4-49 SE EXPANDINDO
SOBRE QUICKREPORT SOMAR-ONS 4-50
ESCREVENDO UM COMPONENTE 4-52 IMPRIMVEL
Uma Amostra CheckBox Componente 4-52
Dados Componentes 4-54 Atentos
AMPLIANDO A EXPRESSO EVALUATOR 4-55
5 QUICKREPORT REFERNCIA 5-57
ADDPRINTABLE MTODO 5-58
EVENTO de AFTERPREVIEW PARA TQUICKREP 5-60
EVENTO de AFTERPRINT PARA TQUICKREP 5-61
EVENTO de AFTERPRINT PARA ATA 5-62
ALINHAMENTO PROPRIEDADE 5-63
ALIGNTOBAND PROPRIEDADE 5-64
ALIGNTOBOTTOM PROPRIEDADE 5-65
ALLDATASETS PROPRIEDADE 5-66
APPLYSETTINGS MTODO 5-67
AUTOSIZE PROPRIEDADE 5-68
AUTOSTRETCH PROPRIEDADE 5-69
PROPRIEDADE 5-70 DISPONVEL
BANDLIST PROPRIEDADE 5-71
PROPRIEDADE de FAIXAS PARA TQRSUBDETAIL 5-72
FAIXAS PROPRIEDADE 5-73
BANDTYPE PROPRIEDADE 5-74
EVENTO de BEFOREPRINT DE TQUICKREP 5-76
EVENTO de BEFOREPRINT PARA ATA 5-77
ESCOVE PROPRIEDADE 5-78
LEGENDA PROPRIEDADE 5-79
CENTRE PROPRIEDADE 5-80
CHILDBAND PROPRIEDADE 5-81
COLORA PROPRIEDADE 5-82
COLUMNTOPPOSITION PROPRIEDADE 5-83
CPIAS PROPRIEDADE 5-84
CURRENTCOLUMN PROPRIEDADE 5-85
CURRENTX PROPRIEDADE 5-86
CURRENTY PROPRIEDADE 5-87
DADOS PROPRIEDADE 5-88
DATAFIELD PROPRIEDADE 5-89
DATASET PROPRIEDADE 5-90
PROPRIEDADE de DATASET PARA TQRDBTEXT 5-91
DESCRIO PROPRIEDADE 5-92
DESENHISTA PROPRIEDADE 5-93
DISPOSITIVO PROPRIEDADE 5-94
MOTORISTA PROPRIEDADE 5-95
PROPRIEDADE 5-96 HABILITADA
EXPORTFILTER PROPRIEDADE 5-97
PROPRIEDADE 5-98 EXPORTANDO
EXPORTTOFILTER MTODO 5-99
PROPRIEDADE de EXPRESSO PARA TQREXPR 5-100
PROPRIEDADE de EXPRESSO PARA TQRGROUP 5-101
MANANCIAL PROPRIEDADE 5-102
FOOTERBAND PROPRIEDADE 5-103
FORCENEWCOLUMN PROPRIEDADE 5-104
FORCENEWPAGE PROPRIEDADE 5-105
HEADERBAND PROPRIEDADE 5-106
LEFTOFFSET PROPRIEDADE 5-107
LINHAS PROPRIEDADE 5-108
MASCARE PROPRIEDADE 5-109
DOMINE PROPRIEDADE PARA TQRCHILDBAND 5-110
DOMINE PROPRIEDADE PARA TQREXPR 5-111
NEWCOLUMN MTODO 5-112
NEWPAGE MTODO 5-113
ONENDPAGE EVENTO 5-114
ONNEEDDATA EVENTO 5-115
ONPREVIEW EVENTO 5-116
ONSTARTPAGE EVENTO 5-117
OPES PROPRIEDADE 5-118
ORIENTAO PROPRIEDADE 5-119
OUTPUTBIN PROPRIEDADE 5-120
CHAME PROPRIEDADE 5-121
PAGENUMBER PROPRIEDADE 5-122
PAPERLENGTH PROPRIEDADE 5-123
PAPERSIZE PROPRIEDADE 5-124
PAPERSIZESUPPORTED PROPRIEDADE 5-125
PAPERWIDTH PROPRIEDADE 5-126
PARENTFONT PROPRIEDADE 5-127
PIXELSPERX PROPRIEDADE 5-128
PIXELSPERY PROPRIEDADE 5-129
PREPARE MTODO 5-130
PREVEJA MTODO 5-131
IMPRIMA MTODO 5-132
IMPRESSORA PROPRIEDADE 5-133
PRINTERSETTINGS PROPRIEDADE 5-134
PRINTERSETUP MTODO 5-135
PRINTBACKGROUND MTODO 5-136
PRINTIFEMPTY PROPRIEDADE 5-137
QRPRINTER PROPRIEDADE 5-138
RECORDCOUNT PROPRIEDADE 5-139
RECORDNUMBER PROPRIEDADE 5-140
REPORTTITLE PROPRIEDADE 5-141
RESETAFTERPRINT PROPRIEDADE 5-142
RESETPAGEFOOTERSIZE MTODO 5-143
SHOWPROGRESS PROPRIEDADE 5-144
ESTIRE PROPRIEDADE 5-145
TEXTO PROPRIEDADE 5-146
TPRINTERSETTINGS CLASS 5-147
TQRABOUTBOX CLASS 5-149
TQRBAND COMPONENTE 5-150
TQRCHILDBAND COMPONENTE 5-152
TQRDBIMAGE COMPONENTE 5-154
TQRDBTEXT COMPONENTE 5-155
TQREXPR COMPONENTE 5-157
TQRIMAGE COMPONENTE 5-159
TQRLABEL COMPONENTE 5-160
TQRMEMO COMPONENTE 5-162
TQRSHAPE COMPONENTE 5-163
TQRSHAPETYPE TYPE 5-164
TQRSUBDETAIL COMPONENTE 5-165
TQRSYSDATA COMPONENTE 5-167
TQUICKREP COMPONENTE 5-168
PROPRIEDADE 5-170 TRANSPARENTE
AMOLDE PROPRIEDADE 5-171
CLASSIFIQUE SEGUNDO O TAMANHO PROPRIEDADE PARA ATA 5-172
UNIDADES PROPRIEDADE 5-173
WORDWRAP PROPRIEDADE 5-174
ZUNA PROPRIEDADE 5-175
6 APNDICES 6-176
Um - CLASSE de QUICKREPORT HIERARQUIA 6-177
B - ARQUIVO DESCRIES 6-179
C - CONVERTENDO DE QUICKREPORT 1 6-180
7 QUICKREPORT ORDENANDO 2.0 PROFISSIONAL 7-181
1 introduo
Prefcio e informao geral sobre QuickReport e esta documentao
PREFCIO
Quando eu comecei escrevendo para QuickReport isto primeiro era criar uma soluo de impresso mnima para um pouco projeto escrito em Delphi. Evoluiu logo em um projeto separado se querido ficar mais familiar com o Delphi VCL e escreve componentes e programao de Windows geral. Pensando que talvez outra pessoa pudesse usar isto que eu lancei uma verso muito cedo como uma utilidade de impresso livre na Internet em 1995 de junho.
Julgando da resposta de outros fomentador de Delphi eu no estava a favor o nico com a necessidade por este tipo de ferramentas e desde ento ningum mais estava na ocasio disponvel a deciso foi tomada ampliar isto um pouco mais e lana isto como shareware.
A beleza de QuickReport 1 era a simplicidade. Podendo criar quase qualquer tipo de relatrio com um gerador de relatrio realmente escrito em menos de 5.000 linhas de cdigo mostra a fora da ferramenta subjacente. QuickReport usado o desenhista de forma de Delphi como um desenhista de relatrio, as conexes de banco de dados de Delphi para adquirir dados e at mesmo o deixar usam Delphi codificam para manipular o relatrio diretamente durante preparao.
At mesmo algumas pessoas a Borland gostaram de QuickReport e quando Delphi 2.0 foi lanado 1996 cedo incluiu a 32 verso de pedao cheia de QuickReport. Este chumbo para um aumento enorme no nmero de usurios e QuickReport realmente foi empurrado a seus limites - se lembra foi projetado para fazer um trabalho muito simples originalmente e tinha superado quase seu desgnio interno e estrutura agora. Ficou claro logo que a prxima gerao de QuickReport precisaria ser um total reescreva, no quebrar com as idias de como QuickReport deveria trabalhar mas renovar um desgnio mais pensativo, prtico e flexvel de solo.
O resultado o que voc tem agora, QuickReport 2.0. consiste de cerca de 15.000 linhas de cdigo mas no soma muito mais para uma aplicao que verso 1 fez! mais rpido e mais poderoso que antes de e pode ser ampliado mais adiante em muitas formas. Este lanamento s o primeiro passo em caminho que conduz um at mesmo mais poderoso, flexvel e fcil usar informando ferramenta. As idias e caractersticas para a prxima gerao de QuickReport j so fixas e por favor esto preparado ser surpreendido!
Embora escrevendo para QuickReport fosse principalmente um um trabalho de homem h algumas pessoas que merecem muito crdito. Borland International foi muito til, especial graas a Diane, Danny e Pancada. David Berneda, o autor de TeeChart e Magne Nilsen de Software de Vega tambm foi de grande ajuda.
Finalmente graas a todos os usurios de Delphi que apoiaram QuickReport, notificaes de bicho enviadas e palavras encorajadoras.
Allan Lochert
SOBRE QUICKREPORT
QuickReport 2.0 inclui as caractersticas seguintes:
Banded gerador de relatrio
desgnio de relatrio Visual
Delphi VCL Nativo escrito em 100% Objeto Pascal
plano de relatrio Extremamente preciso
Compatible com Delphi 1.0, 2.0 e 3.0
100 - 350Kb pegada, dependendo de caractersticas usadas,
Multithreaded
pr-estria Imediato
relatrios de durao Ilimitados
campos de memorando de durao Ilimitados
RichText formatou memorandos
Report de qualquer BDE fonte de dados compatvel, inclusive ODBC,
Report qualquer dados que usa evento dirigido relatrios
Link nmero ilimitado de jogos de dados em relatrios de detalhe de mestre
nmero Ilimitado de grupos
Combinao relatrios
End usurio relatrio desgnio componente
pr-estria de Customizable
Expandable com componentes imprimveis novos como quadros, cdigos de barra, formatos de grficos avanados e mais
evaluator de expresso Avanado com construtor de expresso
Report o perito
Report criao classifica para criar relatrios
controle de impressora Cheio
Preview MDI e SDI compatvel, pr-estria nmero ilimitado de relatrios simultaneamente
Export relatrios para texto de ASCII, vrgula delimitou ou HTML. Escreva prprio adicione filtros de exportao
que cdigo de fonte Cheio incluiu
Backed por Borland internacional e apoiou por Borland apoio Tcnico
SOBRE ESTA DOCUMENTAO
2 QuickReport usando
Esta parte d uma explicao de como criar relatrios bsicos e como prever e os imprimir em momento de desgnio e em momento de corrida de suas aplicaes
O PRIMEIRO RELATRIO
Esta seo uma explicao pequena de como montar um relatrio bsico. Os componentes de QuickReport mais comuns so descritos brevemente junto com como conectar seu relatrio para uma mesa e chamar isto de sua aplicao.
Um relatrio simples
QuickReport um gerador de relatrio atado. Seus relatrios so construdos de sees (faixas) com texto e componentes de grficos neles. Estas faixas so reproduzidas de acordo com seus dados para criar o relatrio final. Um relatrio simples poderia incluir estes componentes colocados em uma forma:
Dataset (TTable)
que componente de QuickReport conectou ao dataset
Detail faixa no componente de relatrio
texto Imprimvel (TQRDBText) na faixa de detalhe
Siga estes passos para criar o relatrio:
Start um projeto novo
Drop um componente de TTable na forma. Selecione o DBDemos pseudnimo como DatabaseName, Cliente como TableName e jogo Ativo Retificar
Drop um componente de TQuickRep na forma principal e fixou a propriedade de DataSet para Table1
Expand a propriedade de Faixas
Set HasDetail True. Isto somar uma faixa de detalhe para o relatrio
Drop um componente de TQRDBText na faixa de detalhe, DataSet fixo para Table1 e DataField para Companhia
Estes so todos os componentes que voc precisa criar um relatrio bsico.
Prever o relatrio voc pode corrigir faa tique-taque em algum lugar no componente de TQuickRep e Pr-estria seleto do cardpio de popup. Se voc fizesse tudo direito que voc deveria ver uma janela de pr-estria agora com seu relatrio.
To agora voc tem um relatrio que trabalha em momento de desgnio mas voc quer isto para tambm trabalhar a runtime. Siga estes passos ativam o relatrio a runtime:
Add um boto para sua forma principal e fixou a Legenda para ' Preview'
Double trinco no boto para somar um evento de OnClick e somar a linha seguinte de cdigo:
QuickRep1.Preview;
Corra sua aplicao e clique o boto de Pr-estria para ver o relatrio. Imprimir o relatrio diretamente voc chama o mtodo de Impresso em vez de Pr-estria.
Voc criou um relatrio de tipo de lista simples. Nos captulos seguintes ns passaremos por muitos passos criando todos os tipos de relatrios.
A faixa diferente digita
importante saber os tipos de faixa diferentes e quando os usar. Ampliando a propriedade de Faixas dos componentes de TQuickRep voc somar e remove os seis a maioria tipos de faixa comuns. As faixas aparecero no componente de TQuickRep na ordem que eles sero imprimidos finalmente.
Faixas tambm podem ser somadas derrubando um TQRBand da paleta de componente sobre o componente de TQuickRep. Voc tem que levar ento se preocupa fixar a propriedade de BandType para o propicie valor. Tambm uma idia boa para dar para o componente de faixa um nome descritivo, como PageHeaderBand, DetailBand e assim por diante. Isto automaticamente todo acabado se voc soma as faixas usando a propriedade de TQuickRep.Bands.
Alm destas faixas h faixas por se agrupar criar e domina relatrios de detalhe.
Dados conectando
QuickReport pode recobrar dados de muitos tipos de dados. Normalmente voc conectar seu relatrio para um Delphi componente de DataSet, um TTable ou um TQuery. O dataset podem estar na mesma forma como o relatrio, em outra forma em seu projeto ou em um Mdulo de Dados. Se o dataset simplesmente armazenado fora da forma de relatrio some aquela forma ou mdulo de dados para os Usos liste da forma de relatrio. Ento fixe a propriedade de DataSet do componente de TQuickRep para unir ao dataset.
O dataset devem ser ativos para um relatrio a ser imprimido. Se no , nenhum relatrio ser gerado.
Filtrando e Ordenando os Dados
O prprio QuickReport no tem nenhuma caracterstica assim dados de tipo. Dados sempre est impresso na ordem apresentada a QuickReport por Delphi e o BDE. Mudar a ordem de tipo de um relatrio conectada a um componente de TTable ativam um ndice semelhante para a ordem de tipo que voc quer. Se nenhum tal ndice est disponvel que voc poderia considerar somando um ou poderia imprimir ao invs de uma questo ordenada.
Quando imprimindo de um TQuery voc ajustam a ordem de impresso mudando a ordem de tipo na questo. Se o propicie documentao de banco de dados para informao sobre escrever declaraes de SQL.
Filtrando dados podem ser feitos de vrios modos. Se voc imprime de um TTable e voc usa Delphi 2.0 ou depois voc pode usar a propriedade de TTable.Filter para somar uma condio filtrando. Se lembre de tambm fixar a propriedade de TTable.Filtered para Retificar.
Outra aproximao imprimir de um componente de TQuery e usar o Onde clusula selecione quais registros para recobrar. Delphi lhe deixa criar parameterized examina que faz isto fcil de mudar a seleo de dados. Por favor observe isto na documentao de Delphi para mais informao.
Uma terceira opo usar o evento de BeforePrint de sua faixa de detalhe para virar imprimindo de tempo em tempo desta faixa. Berro um exemplo de tal um manipulador de evento:
procedimento TrepList.ReportDetailPrintEvent(Sender: TComponent;
PrintBand: boolean);
comece
PrintBand := CustomerTableCompany.Value> ' H';
fim;
Texto somando e Dados o Fields
Imprimir texto em um relatrio voc soma componentes imprimveis para seu relatrio. Os dois componentes de texto imprimveis bsicos so TQRLabel e TQRDBText.
O componente de TQRLabel usado para imprimir texto esttico ou texto e nmeros que so calculados por sua aplicao durante gerao de relatrio. Imprimir um texto esttico s gota o componente em uma faixa, posicione e entre no texto que voc quer na propriedade de Legenda. O texto aparecer agora nisto faixa de pai e sido imprimido naquela posio de parente cada tempo a prpria faixa est estando impressa.
Voc pode mudar o manancial e cor de manancial modificando a propriedade de Mananciais. QuickReport apia qualquer TrueType ou mananciais de Ps-escrito.
Voc pode mudar a propriedade de Legenda em todo caso os manipuladores durante gerao de relatrio. Deste modo voc pode fazer clculos ou operao de fio diretamente em Delphi codifique e imprima o resultado em um relatrio. Podem ser achados mais informao e exemplos nisto depois neste documento.
Campos de banco de dados podem ser imprimidos usando o componente de TQRDBText. Derrube o componente em uma faixa e una a propriedade de DataSet para a mesa ou examine voc quer imprimir dados de. Ento selecione um campo na propriedade de DataField.
Voc tambm pode usar o componente de TQRExpr para imprimir texto esttico e dinmico e campos de banco de dados.
RELATRIOS CRIANDO
O primeiro passo quando criando um QuickReport criar uma forma para armazenar seu componente de TQuickRep. Ns nos referimos a esta forma como um ' Relatrio Form' desde que atos justos como um recipiente para seus relatrios e nunca significado ser mostrado ao usurio de fim de sua aplicao. A forma de relatrio listada na Delphi Projeto Gerente e therefor uma idia boa para dar isto um nome que identificar isto como uma forma de relatrio.
Comeando todos os nomes de forma de relatrio com ' rep' lhes faro se salientar. Voc poderia querer fazer o mesmo com os nomes de unidade de forma.
O segundo passo pr um componente de TQuickRep em sua forma de relatrio. Considerando que voc j nomeou a forma para descrever o relatrio que uma idia boa para dar para todos os componentes de relatrio o mesmo nome. Nomeando o componente de TQuickRep simplesmente ' Report' voc vai referncia eles como repCustomerListing.Report, repSalesListing.Report e assim por diante.
Grid, Unidades e Zoom
Quando derrubando o componente de TQuickRep em uma forma voc vo se um grid para agir como um guia por posicionar componentes. O grid mostrado nas unidades de QuickReport atuais. Voc pode fazer plano de relatrio muito preciso posicionando e classificando segundo o tamanho componentes de QuickReport em 1/100 de uma polegada ou 1/100 de um MM. Voc selecione o atualmente unidade ativa mudando a propriedade de TQuickRep.Units no inspetor de propriedade. O grid sero atualizados quando voc muda esta propriedade.
Em a maioria dos monitores poderia ser difcil de ver o componente de TQuickRep inteiro desde que leva o tamanho do tamanho de papel atual selecionado. Adquirir um quadro mais claro voc pode mudar a propriedade de Zoom. Mudando o zoom sero refletidos imediatamente no desenhista de forma. Esta caracterstica tambm pode ser usada para zunir em em detalhes importantes por posicionar preciso e classificar segundo o tamanho.
Tamanho de papel e margens
Voc pode fazer ligao precisa de sua pgina ampliando a propriedade de Pgina do componente de TQuickRep. Trinco dobro no ' +' assine esquerda da propriedade para ampliar as propriedades de substituto. Voc ver todas as colocaes que controlam o plano de pgina agora. Os valores dados esto na unidade atualmente selecionada. O slected de margens podem ser vistos como linhas pontilhadas azuis no componente de TQuickRep. Suas faixas sero classificadas segundo o tamanho para ajustar dentro das margens.
Voc pode escolher entre retrato e plano de pgina de paisagem e voc podem virar o grid em e de com a propriedade de Regra.
PaperSize pode ser fixado a quaisquer dos valores seguintes: Carta, LetterSmall, Tablide, Ledger, Legal, Declarao, Executivo, A3, A4, A4Small, A5, B4, B5, Flio, Quarto, que qr10X14, qr11X17, Notam, Env9, Env10, Env11, Env12, Env14, CSheet, DSheet, e ESheet,,.
Estes so todos os tamanhos de papel de falta definidos em Windows. Selecionando um tamanho de papel sero refletidos automaticamente no PaperLength e propriedades de PaperWidth. Voc tambm pode fixar PaperSize para Costume e pode selecionar qualquer PaperLength e PaperWidth que voc quer. No note isso todas as impressoras apiam todos os tamanhos de papel. Tambm, muitas impressoras no apiam tamanho de papel de costume ou podem ter s tamanho de costume dentro de certos valores. Se voc seleciona um tamanho de papel no apoiado por uma impressora que QuickReport trocar automaticamente ao tamanho de papel de falta quando preparando o relatrio. O tamanho de papel de falta selecionado na ligao de motorista de impressora.
Alguns motoristas de impressora definem tamanhos de papel adicionais. Estes tamanhos no podem ser fixados automaticamente nesta verso de QuickReport mas voc normalmente pode criar um papel de costume com o mesmo tamanho.
Tambm h motoristas de impressora que no apiam fixando os valores de tamanho de costume de aplicaes. Voc ter que selecionar tamanho de papel de costume no motorista de impressora e definir o papel ento. Fixe ser o tamanho de papel de falta para a impressora e finalmente fixar a propriedade de TQuickRep.Page.PaperSize para Deixar de comparecer para isto. Seu tamanho de costume ser escolhido agora em runtime.
Selecionando um Manancial
Voc fixou o manancial de falta para seu relatrio na propriedade de TQuickRep.Font. Por dobre fazendo tique-taque na propriedade voc adquirir o Delphi manancial dilogo onde voc pode selecionar nome de manancial e pode classificar segundo o tamanho, atributos de manancial fixos como tipo negrito, itlico e seleciona a cor de manancial. Os mananciais listados so todo o Windows mananciais de sistemas, tudo instalaram Verdadeiros mananciais de Tipo e qualquer manancial de Ps-escritos (se Adobe TypeManager instalado). Voc pode usar qualquer combinao de mananciais em seus relatrios mas ns conselho o uso de TrueType ou mananciais de Ps-escrito se voc permitir para o usurio prever o relatrio. Os mananciais de sistemas esto s disponveis em tamanhos limitados e no escalam muito bem em pr-estria.
Algumas impressoras de matriz de ponto imprimem muito mais rpido se voc j seleciona um manancial construa no hardware de impressora, tipicamente chamou um ' font' de impressora. Estes mananciais no so listados por QuickReport mas pode ser fixado a runtime fixando a propriedade de manancial atravs de cdigo:
repCustomerListing.Report.Font.Name := ' TEMPOS de CG;
Atravs de falta todos os componentes no relatrio herdam o manancial que fixa do relatrio. Qualquer componente que tem seu manancial explicitamente jogo ou tem sua propriedade de ParentFont fixado para Falso no herdar a colocao de manancial de relatrio. Nota que voc tambm pode anular o manancial ao nvel de faixa.
O readability de seu relatrio depende muito de sua seleo de manancial. Voc deveria considerar isto cuidadosamente quando selecionando mananciais. Usar muitos mananciais diferentes, cores e estilos em um relatrio podem fazer isto facilmente olhar atravancado e difcil ler.
Ttulo de relatrio e Descrio
Um relatrio pode ter um ttulo e uma descrio. Estas propriedades so principalmente por identificar e descrever o relatrio em sua aplicao. Tipicamente voc pode ter um sistema de cardpio listando todos seus relatrios e mostrando a descrio quando o usurio seleciona um relatrio. Um exemplo disto pode ser visto no QuickReport exemplo projeto.
O ttulo de relatrio tambm pode ser imprimido em um relatrio com o componente de TQRSysData.
Faixas somando
QuickReport um gerador de relatrio atado, conseqentemente faixas so uma parte muito importante de seus relatrios. Se voc pouco conhecido com geradores de relatrio atados que voc pode pensar nisto como folhas pequenas de modelos de papel que voc copia sobre uma pgina e preenche com dados. So copiados modelos diferentes em partes diferentes da pgina (relatrio).
O modo mais fcil para somar faixas ampliar a propriedade de TQuickRep.Bands no inspetor de propriedade. Clique no ' +' assine esquerda da propriedade para ampliar a lista de faixas comuns.
Os tipos de faixa so listados agora e o inspetor de objeto mostra se aquele tipo de faixa existe no relatrio ou no. Voc pode somar ou pode apagar uma faixa simplesmente mudando uma propriedade de Verdadeiro para Falso ou vice-versa. Quando uma faixa criada deste modo adquirir um nome de faixa descritivo, como DetailBand1, PageHeaderBand1 e assim por diante. O tipo de faixa tambm ser fixado automaticamente.
Voc tambm pode somar faixas selecionando o componente de TQRBand na paleta de componente e derrubando isto no relatrio. Voc tem que levar se preocupa fixar o tipo de faixa desejado e tambm deveria dar isto um nome descritivo. A propriedade de Faixas no inspetor de objeto tambm refletir faixas somadas deste modo ao relatrio.
A faixa digita voc pode somar ao relatrio que estes dois modos so:
PageHeader que A primeira faixa imprimiu em todas as pginas. No primeiro pgina imprimir dependido da propriedade de TQuickRep.Options.FirstPageHeader. A falta no imprimir o primeiro header de pgina.
Intitule UMA faixa de ttulo a primeira faixa imprimida a um relatrio (depois do muito primeiro header de pgina). til para imprimir o ttulo de relatrio, criteria de seleo de dados, data de criao e tempo e assim por diante.
ColumnHeader A faixa de header de coluna est impressa em cima de cada coluna de relatrio. Em um nico relatrio de coluna regular a faixa est uma vez impressa por pgina e segue o header de pgina (e o ttulo ata para a primeira pgina). Para um relatrio de coluna de multi est uma vez impresso para cada coluna. muito til para imprimir nomes de campo.
Detalhe Uma faixa de detalhe est impressa para cada registro (fila) de dados em seu dataset. Esta talvez a faixa mais importante em seu relatrio e normalmente o que leva a maioria do espao na produo final. Voc poria dados tipicamente controles imprimveis atentos (TQRDBText e outros) nesta faixa.
Resumo afinal de contas faixas de detalhe estiveram impressas voc pode imprimir uma faixa sumria. Isto freqentemente usado para imprimir totais de campos numricos.
PageFooter que A ltima faixa imprimiu em todas as pginas. No ltimo pgina imprimir dependido da propriedade de TQuickRep.Options.LastPageFooter. A falta no imprimir o ltimo footer de pgina.
Quando voc soma faixas para um relatrio que eles empilham automaticamente para cima na ordem de impresso atual. Voc ver que a faixa de PageHeader est em cima, seguiu pela faixa de Ttulo, header de coluna atam e assim por diante.
As faixas tero o tipo de faixa imprimido com muito letras minsculas nisto so mais baixo canto esquerdo. Isto feito para ajudar identificando as faixas enquanto projetando o relatrio. Este texto no ser imprimido no relatrio final.
Enquanto possvel somar uma faixa manualmente e fixar seu tipo para SubDetail ou GroupHeader isto no significado ser feito. Estes atam tipos so reservados para o TQRSubDetail e componentes de TQRGroup. Fixando estes atam tipos poderiam causar o relatrio para imprimir de um modo errado.
Classificando segundo o tamanho as Faixas
Faixas adquirem o tamanho horizontal deles/delas automaticamente. Para um nico relatrio de coluna esta a largura de pgina menos as margens. O nico modo para mudar uma largura de faixa ajustar as margens.
A largura de algumas faixas tambm depende da propriedade de Page.Columns do componente de TQuickRep. Se voc cria um relatrio de coluna de multi (como um telefnico dicionrio) a largura do header de coluna, detalhe, sub detalhe, header de grupo e faixas de footer de grupo ajustaro para refletir a largura disponvel para uma nica coluna.
Voc pode ajustar a durao vertical das faixas. Isto acabado selecionando uma faixa e resizing simplesmente isto com o rato. Se voc quer controle preciso da durao de faixa que voc pode ampliar a propriedade de TQRBand.Size e pode fixar um valor exato que usa a unidade de QuickReport atualmente selecionada.
Embora voc pode fixar um valor pela largura de faixa no inspetor de objeto que este valor no refletido em momento de corrida e significado como s leu s informao.
Faixa que Imprime Ordem
Faixas aparecem no componente de TQuickRep na ordem de impresso atual. Porm bom entender por que as faixas se alinham o modo que eles fazem. Geralmente faixa imprimir na ordem seguinte:
Header de pgina repetiram para todas as pginas
|
Ttulo (primeiro pgina)
|
Header de coluna repetiram para todas as colunas
|
Detalhe repetiu para todos os registros
|
Resumo (ltima pgina)
|
Footer de pgina repetiram para todas as pginas
Ficar um pouco mais complicado quando inclusive detalhes de substituto e faixas de grupo mas se voc se lembra deste plano ento que o resto ser mais fcil.
Faixas virando de tempo em tempo
Voc s vezes poderia querer incapacitar imprimindo de uma faixa que depende de alguma condio, ou em momento de desgnio ou em momento de corrida. Em momento de desgnio isto pode ser feito fixando a propriedade de TQRBand.Enabled para Falso. Esta propriedade tambm pode ser fixada a runtime, antes de o relatrio seja gerado ou em todo caso o manipulador durante gerao de relatrio.
Durante gerao de relatrio voc pode incapacitar imprimindo temporariamente tambm de uma faixa do evento de BeforePrint daquela faixa. Este evento adquire um parmetro, PrintBand que pode ser fixado para Falso. Isto causar a faixa a ser incapacitada para aquela nica instncia. O da prxima vez o evento de BeforePrint chamado para a mesma faixa voc tem que fazer o cheque e tem que fixar o parmetro novamente para incapacitar isto. Isto pode ser usado como uma caracterstica filtrando simples:
procedimento TrepCusList.RepDetailBeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
comece
se CustTableTotalSales> 3000000 ento
PrintBand := verdadeiro
outro
PrintBand := falso;
fim;
freqentemente fcil esquecer que o cheque sobre pode ser feito mais rapidamente e menor gosta disto:
procedimento TrepCusList.RepDetailBeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
comece
PrintBand := CustTableTotalSales> 3000000;
fim;
Se voc vira que seu footer de pgina atam isto ter o efeito de deixar um espao em branco ao fundo da pgina em vez de encher isto de faixas de detalhe. Isto porque QuickReport no confere a durao do footers de pgina todo o tempo - reduziria a velocidade muito desempenho. Se voc muda a propriedade habilitada de seu footer de pgina que voc deveria chamar o mtodo de QuickRep.ResetPageFooterSize assim QuickReport pode atualizar sua informao de footer de pgina.
Componentes Imprimveis somando para o Relatrio
Imprimir um pouco de informao de fato em seus relatrios voc soma componentes imprimveis para voc faixas. H muitos componentes imprimveis includos com QuickReport e voc pode criar seu prprio ou adquire adiciona componentes se voc precisa de caractersticas especiais no achadas em quaisquer dos componentes acionrios. A mesa seguinte mostra os componentes imprimveis includos com QuickReport:
TQRLabel Prints texto esttico muito como um TLabel para formas de Delphi. A propriedade de Legenda pode ser mudada durante gerao de relatrio.
TQRDBText Prints campos de banco de dados, muito como um TDBText para formas de Delphi. Tambm imprime campos de memorando de mesas (campos de gota).
TQRExpr Evaluates e imprime qualquer expresso de QuickReport. Veja o captulo em Expresses para explicao deste componente.
TQRSysData imprimia informao como ttulo de relatrio, nmero de pgina, data e tempo. Note que alguma desta informao tambm podem ser imprimidos com o componente de TQRExpr.
TQRMemo Much como um TQRLabel, a no ser que aceita linhas mltiplas de introduza texto. Normalmente usado para reas de texto estticas longas.
TQRRichText Prints um RichText formatou memorando. Pode ser unido a um componente de RichEdit em uma forma e pode ser imprimido os contedos. S disponvel na 32 verso de pedao (Delphi 2.0 e 3.0).
Dados de TQRDBRichText verso atenta de TQRRichText. (S disponvel na 32 verso de pedao (Delphi 2.0 e 3.0).
TQRShape Prints retngulos, crculos e linhas horizontais e verticais.
TQRImage imprimia imagens estticas. Possa imprimir um bitmap (BMP), metafile (WMF) ou cone.
Dados de TQRDBImage verso atenta de TQRImage. Recobra a imagem de um campo de gota, muito como um TDBImage para formas de Delphi.
Sobre os Componentes de Texto
Todos os QuickReport texto componentes compartilham um pouco de funcionalidade bsica que eles herdam da classe de pai comum deles/delas. Se voc quer mais informao sobre a classe imprimvel bsica e classe de texto leu o captulo em ampliar QuickReport.
AutoSize
Componentes ou podem os classificar segundo o tamanho horizontally de ego para ajustar qualquer texto seja posto neles ou eles podem ter uma largura prefixada. Se a largura prefixada que texto ser cortado para ajustar o determinado retngulo.
WordWrap
Se AutoSize que Verdadeiro texto pode medir linhas mltiplas WordWrap fixado para Retificar.
AutoStretch
Se WordWrap Verdade, componentes podem ampliar vertically se eles esto a favor para pequeno do texto ajustar. Se um componente se expande que tambm ampliar sua faixa de pai, contanto que a propriedade de CanExpand de faixa seja fixada para Retificar. Uma faixa pode se expandir em cima de pginas de mltiplo para imprimir textos longos.
Note que se um componente se expande que no rebaixar outros componentes na mesma faixa. Se voc tem que componentes cuja posio dependida da durao de um texto estirando voc deveriam colocar esses em uma faixa de criana. Veja o captulo em criana ata para mais informao sobre isto.
Tamanho
Todos os componentes imprimveis compartilham a propriedade de Tamanho. Se AutoSize Falso que voc pode usar esta propriedade para fixar o tamanho exato do componente. Tambm ache aqui a posio do componente relativo para sua faixa de pai.
As unidades so determinadas nas unidades de QuickReport atualmente selecionadas e posicionar assim podem ser muito exatos.
Se AutoSize fixado para falso que voc tambm enlata resize e componentes de posio arrastando as manivelas de rato.
Estilo de manancial e Cor de Texto
Componentes de texto imprimveis podem ter um manancial individual que fixa ou podem usar o manancial disto band/report de pai. Usa a propriedade de manancial para anular o manancial que fixa da faixa de pai e usar a propriedade de ParentFont para fixar se o componente na verdade obter o manancial de seu pai.
Alinhamento
Componentes podem permanecer ou direito alinhou ou centrou. Para componentes de AutoSized isto resultar no componente que se expande esquerda (para direito alinhou texto), direito (para esquerda alinhada) texto ou ambos (para texto centrado).
Para componentes com AutoSize fixados para falso isto resultar no texto que alinhado corretamente dentro de seu retngulo prefixado
AlignToBand
Atravs de componentes de falta print/align vo posio comeada o desenhista. s vezes poderia ser mais prtico alinhar componentes relativo para a faixa na qual colocado. Voc poderia querer centrar um ttulo na pgina ou direito alinha um nmero de pgina para a pgina. Fixando componentes de texto para AlignToBand True seu alinhamento atual usar relativo a sua faixa de pai em vez de seu prprio retngulo de texto.
Cor de fundo e Transparncia
Texto pode ser transparente (opaco) ou no. Se o texto no transparente que a propriedade de Cor usada para encher o fundo do componente de texto.
Armao
Todos os componentes de texto podem ter uma armao. Veja o captulo em Armaes para mais informao.
Habilitado e Incapacitou
S gosta voc pode habilitar e pode incapacitar faixas voc pode habilitar e pode incapacitar componentes de texto fixando a propriedade Habilitada para Retificar ou Falso. Isto pode ser feito em momento de desgnio, a runtime antes de gerar o relatrio ou de qualquer manipulador de evento durante gerao de relatrio.
procedimento repList.ReportDetailPrint(Sender: TObject;
var PrintBand: boolean);
comece
{Imprima valores negativos em vermelho, positivo em verde, remova valor nulo}
se CustTableCredit.Value 5000, ' order' Grande, ' order' Pequeno) Lucros ' order' Grande se AmountPaid maior que 5000, outro ' order' Pequeno
if(CheckField, ' X', ' ') Imprime um X se CheckField Verdade
TQRExpr usando
Imprimir expresses em um relatrio voc usa o componente de TQRExpr. Entre na expresso na propriedade de Expresso ou trinco dobro na propriedade expor o construtor de expresso dialogue.
O construtor de expresso lhe deixa projetar sua expresso visualmente e pode ser til aprender criar expresses.
Use a propriedade de Mscara para formatar a produo de uma expresso. Formatar busca acabado as mesmas regras como para o componente de TQRDBText.
Se sua expresso inclui que qualquer agregao funciona, como SOMA ou CONTA voc tem que unir a propriedade de Mestre para o dataset que ser usado para atualizar a expresso. Para um relatrio simples estes ser normalmente o mesmo dataset como uniu a seu componente de TQuickRep, mas em um relatrio complicado com muitos datasets que voc tem que levar se preocupam unir ao correto. Uma expresso com uma funo de agregao ser recalculated cada tempo o ponteiro de registro do mestre unido est avanado.
A ltima propriedade importante para conhecer por TQRExpr ResetAfterPrint. Se voc usa uma funo de agregao em uma expresso que voc pode ou poderia no querer clarear a expresso depois que esteja impresso. Se no reajustado que h pouco continuar atualizando, mas voc poderia querer freqentemente pr expresses em footers de grupo fazer clculos em dados naquele grupo. Fixar ResetAfterPrint True faro a expresso ento calcular o resultado ao invs para cada grupo se o relatrio inteiro.
Empilhe Tamanho
A verso atual do evaluator de expresso usa o pilha de sua aplicao para passar parmetros enquanto preparando uma expresso. Quando preparando uma expresso complexa com muitos nveis de parnteses o uso de pilha podem ser vrios kilobytes. Em Delphi 1.0 o tamanho de pilha de falta fixado a 16Kb e isto pode ser excedido facilmente e pode ser dado para um Runtime erro 202 se empilha conferindo virado em. Aumentar o tamanho de pilha em Delphi 1.0 Opes seletas | Projeto no cardpio, v para a pgina de Linker e aumente o tamanho de pilha para pelo menos 32768 bytes. Uma mais recente verso de QuickReport no usar empilhe espao quando preparando expresses.
GRUPOS CRIANDO
Com QuickReport voc pode criar relatrios muito simples e altamente complicados com grupos. Podem ser aninhados grupos a nveis ilimitados e se voc une vrios datasets em seu relatrio que voc pode fazer se agrupando em qualquer dataset voc quer.
O componente de TQRGroup achado na QuickReport componente paleta pgina e pode ser derrubado em um relatrio. Quando criou aparece como uma faixa. Esta faixa ser o header de grupo. Toda vez o grupo quebra (ou um grupo nivelado mais alto quebra) o esta faixa de header ser imprimida. Alm voc tambm pode somar uma faixa de footer de grupo. Fazer isto, selecione o componente de TQRBand na paleta e derrube no relatrio. Una a propriedade de TQRGroup.FooterBand para a faixa recentemente criada.
TQRGroup tem uma propriedade de Mestre que ser fixada automaticamente ao componente de QuickReport principal. Deveria aparecer sobre qualquer faixa de detalhe no relatrio. Uma faixa de footer de grupo corretamente unida deveria aparecer berro a faixa de detalhe.
A propriedade mais importante de TQRGroup exclui o Mestre Expresso. Entre em qualquer expresso de QuickReport vlida no inspetor de objeto ou exponha o evaluator de expresso para ajudar projetando a expresso. O grupo quebrar sempre que o resultado das mudanas de expresso. Considere uma mesa de cliente com um ndice ativo em Estado + Companhia. Imprimir um header de grupo cada tempo o relatrio chega a um estado novo voc entraria em Estado ou Customer.State simplesmente como a expresso de grupo. O QuickReport expresso evaluator localizaro o campo Estatal e imprimiro o header de grupo antes de qualquer estado novo. Um footer de grupo fixo sero imprimidos quando so listados todos os clientes em um estado, til por contar o nmero de clientes no estado, acumulando vendas e assim por diante.
O berro de plano de relatrio usado para criar um cliente listando:
O componente de TQuery usa a questo seguinte:
selecione * de ordem de cliente atravs de estado, companhia
A expresso de grupo diz Estado simplesmente. Note os dois componentes de TQRExpr usados no relatrio. O primeiro TQRExpr colocado no header de grupo e usos a expresso seguinte:
if(State '', Declare, ' state' Desconhecido)
Desde ento no todos os clientes tm um estado registrado esta expresso devolver ' state' Desconhecido para esses e volta para o estado atual para os outros.
O componente de TQRExpr no footer de grupo tem a expresso seguinte:
' Os clientes em ' + Estado + ': ' + Str(Count)
Esta expresso imprimir uma conta de cliente para cada estado. A propriedade de Mestre unida ao componente de TQuickRep e ResetAfterPrint fixado para Retificar assim a Conta reiniciar para cada estado. Berro como o relatrio olha em um pr-estria:
3 Tcnicas avanadas
RELATRIOS CRIANDO ATRAVS DE CDIGO
Em algumas aplicaes voc poderia precisar criar relatrios de dados no conhecido em momento de desgnio. Claro que isto pode ser feito por um usurio de fim com o editor de relatrio mas poderia ser tempos quando mais prtico criar o relatrio interiormente em sua aplicao. Isto poderia ser to simples quanto deixando para um usurio selecionar qualquer mesa e h pouco poderia listar os campos na mesa ou pode ser avanado relatrios mais.
Considerando que relatrios projetaram com QuickReport basicamente Delphi forma com componentes neles pode ser criado dynamically em sua aplicao. Voc pode criar uma forma em branco, crie um componente de relatrio, some faixas e componentes, conecte dados e voc ter um relatrio. Considerando que tudo isso pode ser um trabalho tedioso que QuickReport prov alguns mecanismos para firmar o processo e muito mais fcil.
O Relatrio Construtor Classes
QuickReport 2 introduz a classe de TQRBuilder. Esta uma bonita classe de abstrato que pode ser usada para criar uma armao de relatrio. Isso um componente de TQuickRep com uma faixa de ttulo e header de pgina e footer.
O berro de procedimento de cdigo usar esta classe para criar uma armao de relatrio vazia. Se lembre de USAR a unidade de QREXTRA na unidade onde voc tenta isto:
procedimento MyForm.CreateReport;
comece
com TQRBuilder.Create(Self) faa
prova
Ttulo := ' Report' Em branco;
Ativo := Verdadeiro;
prova
FetchReport.Preview;
finalmente
Livre;
finalmente
Livre;
fim;
fim;
TQRLisBuilder uma subdiviso de classe de TQRBuilder. Soma a funcionalidade para criar um dados relatrio atento:
procedimento MyForm.CreateDataReport;
var
aReport: TQuickRep;
comece
com TQRListBuilder.Create(Self) faa
prova
DataSet := CustomerTable; {assume CustomerTable existem}
Ttulo := ' Cliente Listing';
Ativo := Verdadeiro;
prova
aReport := FetchReport;
aReport.Preview;
finalmente
aReport.Free;
fim;
finalmente
Livre;
fim;
fim;
A funo de QRCreateList faz isto at mais fcil lhe devolvendo um relatrio que usa uma nica linha de cdigo:
procedimento MyForm.CreateDataReport;
var
aReport: TQuickRep;
comece
QRCreateList(aReport, Ego, CustomerTable, ' Cliente Listing', nada);
aReport.Preview;
aReport.Free;
fim;
O parmetro de nada de fato uma lista de fio que lista os campos que ns queremos incluir no relatrio. Enviando nada causaro todos os campos que ajustaram na pgina a ser includa. O berro de exemplo cria um relatrio com s trs campos da mesa de Cliente:
procedimento MyForm.CreateDataReport;
var
aReport: TQuickRep;
SomeFields: Tlist;
comece
SomeFields := TList.Create;
SomeField.Add (' Company');
SomeFields.Add (' Contact');
SomeFields.Add (' Phone');
QRCreateList(aReport, Ego, CustomerTable,
' Cliente Listing', SomeFields);
aReport.Preview;
aReport.Free;
fim;
Modelos usando com classes de Construtor de Relatrio
Avanar at mesmo se expandem nisto voc pode passar um j componente de relatrio existente para o construtor de lista classifica ou a funo de QRCreateList. O relatrio novo ser criado ento em cima dos relatrios existentes e ser deixado qualquer faixa e componentes que j esto l intatos. Deste modo voc pode ter um modelo de relatrio genrico com um pouco de informao bsica e talvez um logotipo de companhia e QuickReport deixado constroem um relatrio em cima deste modelo.
Indo para um mais baixo nvel
Atualmente o TQRListBuilder a nica classe de construtor de relatrio includa com QuickReport. Depois verses incluiro classes para auto crie muitos outros tipos de relatrios. Porm voc pode ampliar um relatrio facilmente voc ou at mesmo pode criar um relatrio que usa os mtodos do nada provido por QuickReport.
O primeiro passo criar um componente de TQuickRep. Voc pode somar as faixas ento fixando as Faixas substitua propriedades:
procedimento MyForm.CreateReport;
var
aReport: TQuickRep;
comece
aReport := TQuickRep.Create(Self);
aReport.Parent := Ego;
com aReport faa
comece
DataSet := CustomerTable;
Bands.HasTitle := Verdadeiro;
Bands.HadDetail := Verdadeiro;
Voc pode somar componentes imprimveis agora para as faixas que usam o mtodo de TQRBand.AddPrintable:
com Bands.DetailBand1.AddPrintable(TQRDBText) faa
comece
Size.Top := 5;
Size.Left := 20;
DataSet := CustomerTable;
FieldName := ' Company';
fim;
fim;
aReport.Preview;
aReport.Free
fim;
AddPrintable criar um componente imprimvel da classe passado a isto como um parmetro e por isto na faixa.
QRPRINTER USANDO
Se voc acha que voc no pode criar o tipo de printout voc quer usar QuickReport diretamente mas ainda gosta da funcionalidade de pr-estria e a habilidade para economizar e carregar um ' printout' voc pode usar o objeto de QRPrinter. Cada QuickReport tem seu prprio QRPrinter privado e h um QRPrinter global definiu a startup de aplicao. Isto pode ser usado para quase qualquer tipo de impresso em vez do objeto de Impressora de ao de Delphi. Imprimindo Tela de QRPrinter voc a funcionalidade de pr-estria de QuickReport pode usar com suas prprias rotinas de impresso.
Um Trabalho de Impresso de Amostra
QRPrinter soma alguns mtodos, propriedades e eventos em cima do TPrinter standard. Produzir um printout de pr-estria voc passar pelo seguinte pisa:
Check se QRPrinter.Status mpReady
Call QRPrinter.Preview para expor a janela de pr-estria
Call QRPrinter.BeginDoc para comear um trabalho
Use o Delphi mtodos de TCanvas para puxar e imprimir texto para o QRPrinter.Canvas
Call QRPrinter.NewPage entre pginas
Call QRPrinter.EndDoc quando todas as pginas so acabado
4 QuickReport se expandindo
SOBRE QUICKREPORT SOMAR-ONS
QuickReport projetado para ser expansvel de vrios modos. Somar-ons estar disponvel ambos de QSD e outro Delphi somar-em fomentador de ferramenta. Alm voc poderia querer escrever seu prprio somar-ons se voc no pode achar um ajustando sua necessidade particular. Este captulo cobrir como escrever quatro tipos diferentes de QuickReport somar-ons.
Componentes imprimveis
Embora QuickReport inclui componentes imprimveis para muitos propsitos poderia haver situaes onde voc precisa ter tipos de componente adicionais. Alguns tipos de componentes includos com QuickReport so componentes por imprimir barra-cdigos, formatos de arquivo grficos avanados, componentes de texto especializados, etiquetas caprichosas e muito mais.
Para um componente ser imprimido por QuickReport precisa descer do componente imprimvel bsico, TQRPrintable. Voc pode criar os descendentes diretamente ou pode escrever envolturas ao redor de componentes existentes. Criando um componente imprimvel inclui alguns ou tudo o seguinte pisam
Create a funcionalidade de impresso bsica do componente
Make o componente aparece no fim usurio relatrio desenhista
Include funcionalidade de exportao
Filtros de exportao
Alm do ASCII texto exportao filtro includo com QuickReport voc poderia precisar de funcionalidade para exportar relatrios para outros formatos de arquivo como Microsoft Excel, Formule, RTF ou outros formatos. QuickReport inclui os ganchos e classes bsicas precisaram criar filtros de exportao para qualquer formato de arquivo.
Bibliotecas de funo
O evaluator de expresso de QuickReport podem ser ampliados com bibliotecas de funo que implementam quase qualquer funo digita voc pode imaginar. Funes matemticas, baixo acesso de arquivo de nvel, formatos de banco de dados especiais no apoiados pelo dataset de Delphi fio dirigindo modelo, avanado, clculo de data exemplos de bibliotecas que podem ser somadas. QuickReport inclui as classes que voc precisa escrever sua prpria biblioteca de funo facilmente. Uma vez implementado voc pode usar isto em qualquer expresso dentro de QuickReport ou outras partes de sua aplicao utilizando o QuickReport expresso evaluator.
Informe os Editores
O fim usurio relatrio editor includo com QuickReport pode ser substitudo facilmente por outros editores e a construo em desenhista que funcionalidade atenta de todas as classes de QuickReport faz para criando seu prprio editor de relatrio muito fcil. Basicamente QuickReport usa uma trs aproximao de nvel para terminar usurio relatrio editando. Usando o non includo TQRDesigner visual classifique voc pode somar seu prprio editor visual sem o desagrado habitual com mensagens de Windows, API chama e baixa programao nivelada. De fato o editor em QuickReport, TQREditor, implementado em menos de 200 linhas de cdigo!
ESCREVENDO UM COMPONENTE IMPRIMVEL
Provavelmente os mais teis adicionam caracterstica de QuickReport a habilidade para criar um componente imprimvel. Usando um objeto orientado desgnio QuickReport vira o relatrio que imprime conceito um pouco de cabea para baixo. QuickReport no sabe imprimir qualquer coisa especial. Sabe sobre imprimir algo - o TQRPrintable fundam classe. A coisa atual que est impresso ter que ser uma subdiviso de classe de TQRPrintable e tem que saber se imprimir!
So projetados todos os componentes imprimveis acionrios em QuickReport deste modo. Um componente imprimvel herdar algumas propriedades da classe bsica e pode somar suas prprias propriedades.
Uma Amostra Componente de CheckBox
Um exemplo pode ser um componente de checkbox que somar uma propriedade Conferida. Anular o mtodo de Pintura ento (para aparecimento de tempo de desgnio) e o mtodo de Impresso (para pr-estria e imprimindo). Na Pintura e Imprime mtodos puxaria um checkbox e um sinal de conferido que dependem da propriedade Conferida. A fonte para tal um componente listada berro:
qrcb de unidade;
interface
usos classificam, quickrp;
tipo
TQRCheckBox = class(TQRPrintable)
privado
FChecked: boolean;
procedimento SetChecked(Value: boolean);
pblico
constructor Create(AOwner: TComponent); anule;
Pintura de procedimento; anule;
procedimento Print(OfsX, OfsY,: inteiro); anule;
publicado
propriedade Conferiu: boolean leram FChecked escrevem para SetChecked;
fim;
Registro de procedimento;
implementao
constructor TQRCheckBox.Create(AOwner: TComponent);
comece
Create(AOwner herdado);
FChecked := Falso;
fim;
procedimento TQRCheckBox.SetChecked(Value: boolean);
comece
se Valor FChecked ento
comece
FChecked := Valor;
Invalide;
fim;
fim;
procedimento TQRCheckBox.Paint;
comece
com Tela faa
comece
Pen.Color := clBlack;
Pen.Width := 1;
Rectangle(0, 0, largura - 1, Altura - 1);
se Conferiu ento
comece
MoveTo(0, 0);
LineTo(Width - 1, Altura - 1);
MoveTo(0, altura - 1);
LineTo(Width - 1, 0);
fim;
fim;
fim;
procedimento TQRCheckBox.Print(OfsX, OfsY,: inteiro);
var
CalcLeft,
CalcTop,
CalcRight,
CalcBottom: Longint;
comece
com ParentReport.QRPrinter faa
comece
Canvas.Pen.Color := clBlack;
Canvas.Pen.Width := 1;
CalcLeft := XPos(OfsX + Size.Left);
CalcTop := YPos(OfsY + Size.Top);
CalcRight := XPos(OfsX + Size.Left + Size.Width)
CalcBottom := YPos(OfsY + Size.Top + Size.Height)
Canvas.Rectangle(Left, Tampe, Corrija, Fundo);
se Conferiu ento
comece
MoveTo(Left, Topo);
LineTo(Right, Fundo);
MoveTo(Left, Fundo);
LineTo(Right, Topo);
fim;
fim;
fim;
Registro de procedimento;
comece
RegisterComponents (' QReport', [TQRCheckBox]);
fim;
Dados Componentes Atentos
Dados escrevendo componentes atentos esto muito como uma mistura entre um componente imprimvel standard e uns dados de Delphi standards componente atento. Porm obedecer o padro de QuickReport de referencing um DataSet em vez de um DataSource voc querero registrar um editor de propriedade especial para sua propriedade de FieldName provavelmente e imitaro a funcionalidade do Delphi o FieldName propriedade editor para componentes com uma propriedade de DataSource - listando todos os campos naquele DataSet. Este editor de propriedade implementado na unidade de QREPORT desde que um tempo de desgnio s caracterstica.
AMPLIANDO A EXPRESSO EVALUATOR
A construo em evaluator de expresso pode ser ampliada por suas prprias funes. De fato, so implementadas todas as funes no evaluator de expresses como adiciona funes, no h nenhuma funo codificada dura no prprio parser. Criando um adicione funo requer dois passos:
Writing uma classe de funo, herdando de TQREvElementFunction,
Registering a funo
H dois tipos bsicos de adicione funes - funes simples e funes agregadas. Ambos estes funcionam tipos podem ser com ou sem parmetros. Funes tambm podem aceitar um nmero varivel de parmetros.
Exemplos nos tipos de funo diferentes so:
Simples sem Tempo de parmetros
Simples com parmetros
EVENTO de AFTERPREVIEW PARA TQUICKREP
Declarao
propriedade AfterPreview: TQRAfterPreviewEvent
Aplica
TQuickRep
Propsito
O evento de AfterPreview chamado sempre que um relatrio foi previsto e a forma de pr-estria est fechada. Uso tpico para este evento pode ser livrar um objeto de relatrio que foi previsto em um pr-estria de modeless.
Tambm veja
AfterPrint
EVENTO de AFTERPRINT PARA TQUICKREP
Declarao
propriedade AfterPrint: TQRAfterPrintEvent
Aplica
TQuickRep
Propsito
O evento de AfterPrint chamado sempre que o um relatrio esteve impresso. Uso tpico para este evento livrar um objeto de relatrio que esteve impresso em uma linha de fundo.
Tambm veja
AfterPreview
EVENTO de AFTERPRINT PARA FAIXAS
Declarao
propriedade AfterPrint(Sender: TQRCustomBand; BandPrinted: Boolean)
Aplica
TQRBand, TQRChildBand,
Propsito
AfterPrint chamado sempre que uma faixa esteve impressa. Voc pode usar o evento para fazer qualquer tipo de clculo ou lookup requerido depois de uma certa faixa est impresso. O parmetro de BandPrinted contar o resultado do manipulador de evento de qualquer evento de BeforePrint para a faixa.
Tambm veja
BeforePrint
PROPRIEDADE de ALINHAMENTO
Declarao
Alinhamento de propriedade: TAlignment (taLeftJustify)
Aplica
TQRDBText
TQRExpr
TQRLabel
TQRMemo
TQRSysData
Propsito
Alinhamento controla como texto alinhado dentro de um controle ou uma faixa. Se AlignToBand que Falso texto ser alinhado dentro do espao horizontal do prprio componente enquanto ser alinhado dentro da pgina inteira ou coluna se AlignToBand Verdade.
Significado de valor
taLeftJustify Alinham texto para lado de esquerda de controle de page/column (falta)
taRightJustify Alinham texto para corrigir lado de controle ou page/column
taCenter Centram texto dentro de controle ou page/column
Tambm veja
AlignToBand
PROPRIEDADE de ALIGNTOBAND
Declarao
propriedade AlignToBand: Boolean (falso)
Aplica
TQRDBText
TQRExpr
TQRLabel
TQRMemo
TQRSysData
Propsito
A propriedade de AlignToBand decide se texto ser alinhe dentro de um controle isto ou dentro de sua faixa de pai. Alinhamento estar de acordo com a colocao da propriedade de Alinhamento.
Significado de valor
Falso Alinhamento ser executado dentro do prprio controle (falta)
Verdadeiro Alinhamento ser executado dentro da faixa de pai de controles
Tambm veja
Alinhamento
PROPRIEDADE de ALIGNTOBOTTOM
Declarao
propriedade AlignToBottom: boolean
Aplica
TQRBand, TQRChildBand,
Propsito
AlignToBottom True fixo se voc quer imprimir qualquer faixa s sobre o footer de pgina em vez da colocao regular corrija berro a faixa prvia. A propriedade til quando voc quer imprimir uma faixa sumria ao fundo da ltima pgina ou imprimir um resumo em uma frmula de preprinted, i.e. um cheque.
PROPRIEDADE de ALLDATASETS
Declarao
propriedade AllDataSets: TList;
Aplica
TQuickRep
Propsito
AllDataSets uma lista de todo o referenced de datasets em um relatrio. Componentes de QRExpr podem ter acesso valores de campo de datasets includo nesta lista. Se voc quer ter acesso campos de outro datasets que voc pode os somar para isto lista.
Exemplo
CustReport.AllDataSets.Add(Employee)
MTODO de APPLYSETTINGS
Declarao
procedimento ApplySettings
Aplica
TPrinterSettings
Propsito
ApplySettings fixar as colocaes de impressora atualmente selecionadas fisicamente na impressora selecionada. O mtodo chamado automaticamente por QuickReport quando um relatrio est sendo comeado.
Tambm veja
TPrinterSettings
PROPRIEDADE de AUTOSIZE
Declarao
propriedade AutoSize: boolean (verdadeiro)
Aplica
TQRDBText
TQRExpr
TQRImage
TQRLabel
TQRMemo
TQRSysData
Propsito
Esta propriedade decide se o controle se ampliar horizontally para ajustar o texto. Para multiline (memorando) componentes ajustar a durao da linha mais longa enquanto para nicos componentes de linha (i.e. TQRLabel) isto significar a durao do texto inteiro. Note aqueles nicos componentes de linha no estiraro vertically se esta propriedade Verdade. Para AutoSize fixo classificando segundo o tamanho vertical para Falso e AutoStretch True.
Tarefas
para fazer um columnar informar onde texto no sobrepor AutoSize fixo para Falso e manualmente fixou a largura do componente para o mximo permitiu valor.
Significado de valor
Verdadeiro Componente ampliar horizontally para ajustar o texto (falta)
Falso Componente no mudar largura
Tambm veja
AutoStretch, Altura, Classificam segundo o tamanho, Largura, WordWrap,
PROPRIEDADE de AUTOSTRETCH
Declarao
propriedade AutoStretch: Boolean (falso)
Aplica
TQRDBText
TQRExpr
TQRLabel
TQRMemo
Propsito
AutoStretch usado para selecionar como componentes se comportaro se no h bastante espao para imprimir todo o texto dentro de sua determinada altura. Se AutoStretch Verdade que o componente se expandir vertically um enfileiram de cada vez at todo o texto est impresso. A faixa de pai tambm ser ampliada. Se no h bastante espao na coluna ou na pgina ser comeado um column/page novo. Nota que um pouco de cuidado deveria ser tomado quando relatrios artificiosos com estirar controles. Para agora voc s um componente estirando deveria colocar em cada faixa.
Tarefas
para rebaixar outros componentes automaticamente quando umas extenses de componente somam um ChildBand para a faixa atual e movem estes controles para aquela faixa.
Significado de valor
Verdadeiro Componente ampliar vertically se no h bastante quarto para o texto
Falso Componente no ampliar vertically. Texto ser cortado (falta)
Tambm veja
AutoSize, WordWrap,
PROPRIEDADE DISPONVEL
Declarao
propriedade Disponvel: boolean
Aplica
TQuickRep
Propsito
Use a propriedade Disponvel para determinar se um componente de relatrio est em tal um estado que lhe lhe permitem para chamar o Pr-estria ou para Imprimir mtodos. Disponvel Falso sempre que um relatrio est no meio de uma preparao ou imprimindo processo. Impresso chamando ou Pr-estria enquanto Disponvel Falso no elevar uma exceo, o mtodo h pouco devolver sem qualquer advertncia adicional.
PROPRIEDADE de BANDLIST
Declarao
Propriedade BandList: TList
Aplica
TQuickRep
Propsito
BandList uma lista de todas as faixas includa em um relatrio. Geralmente no nenhuma razo para voc ter acesso esta lista exclui se voc est escrevendo algum especial adicione componentes. As faixas so listadas na mesma ordem como eles aparecem no componente de TQuickRep.
PROPRIEDADE de FAIXAS PARA TQRSUBDETAIL
Declarao
Faixas de propriedade: TQRSubDetailGroupBands
Aplica
TQRSubDetail
Propsito
A propriedade de TQRSubDetail.Bands tem duas propriedades de substituto, HasHeader e HasFooter. Eles podem ser usados criar e destruir header e footer ata para um componente de TQRSubDetail. Criando faixas com esta propriedade em vez de derrubar uma faixa da paleta de componente e unir isto manualmente voc assegura que o tipo de faixa e unir corretamente acabado. Tambm um muito aproximao mais rpida.
O header e faixas de footer aparecero no deles/delas propicie imprimindo posio no componente de relatrio.
Tarefas
para somar uma faixa de header para um jogo de QRSubDetail o Bands.HasHeader True
para remover uma faixa de header Bands.HasHeader fixo para Falso
para somar uma faixa de footer Bands.HasFooter True fixo
para remover uma faixa de footer Bands.HasFooter fixo para Falso
Tambm veja
TQRSubDetail
PROPRIEDADE de FAIXAS
Declarao
Faixas de propriedade: TQuickRepBands (TQuickRep)
Faixas de propriedade: TQRSubDetailGroupBands (TQRSubDetail)
Aplica
TQuickRep
TQRSubDetail
Propsito
A propriedade de Faixas usada para selecionar que tipos de faixa quer voc para incluir em um relatrio. Ampliando a propriedade de Faixas e fixando um das propriedades de substituto para Retificar criaro uma faixa do tipo especificado. Faixas tambm podem ser somadas por seleciona o componente de TQRBand na Delphi componente paleta, derruba isto em um relatrio e fixa o tipo de Faixa e Nomeia mas somando isto com a propriedade de Faixas requerem muito menos clicando. Fixando esta propriedade em cdigo voc tambm pode somar e pode remover faixas a runtime
Exemplo
MyReport.Bands.HasDetail := Verdadeiro;
PROPRIEDADE de BANDTYPE
Declarao
propriedade BandType: TQRBandType
Aplica
TQRBand, TQRChildBand,
Propsito
BandType instri QuickReport que papel tem uma faixa em um relatrio. O tipo de faixa automaticamente fixo quando faixas so somadas fixando uma propriedade de substituto da propriedade de TQuickRep.Bands para Retificar. Se voc soma uma faixa escolhendo isto da paleta de componente voc tem que levar se preocupa fixar o tipo de faixa certo.
Significado de valor
rbTitle Intitulam faixa, imprimida uma vez na primeira pgina do relatrio, logo aps o header de pgina se isso habilitado na primeira pgina.
rbPageHeader Imprimiram em cima de todas as pginas. Imprimindo na primeira pgina depende da colocao da propriedade de TQuickRep.Options.FirstPageHeader.
rbDetail Imprimiram uma vez para cada registro (fila) no dataset de mestre em seu relatrio.
rbPageFooter Imprimiram no fundo de cada pgina. Imprimindo na ltima pgina depende da colocao da propriedade de TQuickRep.Options.LastPageFooter.
rbSummary Imprimiram afinal de contas na ltima pgina faixas de detalhe.
rbGroupHeader TQRGroup usa este tipo de faixa. Tambm usado como uma faixa de header para um TQRSubDetail
rbGroupFooter que Footer atam para um TQRGroup ou um TQRSubDetail
rbSubDetail tipo de faixa Especial usado pelo componente de TQRSubDetail. No fixe este tipo de faixa manualmente.
rbColumnHeader Imprimiram em cima de cada coluna em um relatrio. til por imprimir nomes de campo em um relatrio de coluna de multi.
rbOverlay no usaram em QuickReport 2. Incluiu para para trs compatibilidade
rbChild tipo de faixa Especial usado por TQRChildBand. No fixe este tipo de faixa manualmente.
EVENTO de BEFOREPRINT DE TQUICKREP
Declarao
propriedade BeforePrint: TQRBeforePrintEvent
Aplica
TQuickRep
Propsito
O evento de BeforePrint chamado sempre que um relatrio aproximadamente para ser gerado. Note que este testamento aconteceu ambos antes de um pr-estria e imprime - um nome melhor para este evento provavelmente seria BeforeGenerate mas o nome atual mantido para para trs compatibilidade. Uso tpico deste evento inicializar qualquer varivel voc precisa em outros manipuladores de evento durante gerao de relatrio.
EVENTO de BEFOREPRINT PARA FAIXAS
Declarao
propriedade BeforePrint(sender: TObject; var PrintBand: boolean)
Aplica
TQRBand
TQRChildBand
TQRSubDetail
TQRGroup
Propsito
O evento de BeforePrint incendiado toda vez uma faixa aproximadamente ser imprimido. Voc pode executar clculos ou legendas de jogo de componentes durante este evento. Voc pode incapacitar imprimindo da faixa para a instncia atual fixando o parmetro de PrintBand para Falso.
Tambm veja
AfterPrint
ESCOVE PROPRIEDADE
Declarao
Escova de propriedade: TBrush
Aplica
TQRShape
Propsito
Use escova para fixar o estilo de abastecimento para componentes de TQRShape fixe para imprimir um retngulo ou crculo. Para mais informao sobre TBrush por favor veja o Delphi ajuda on-line.
Tarefas
para imprimir uma forma transparente Brush.Style fixo para bsClear
Set cor de abastecimento com Brush.Color
Tambm veja
Caneta
PROPRIEDADE de LEGENDA
Declarao
Legenda de propriedade: fio
Aplica
TQRLabel
Propsito
Legenda o texto que ser imprimido pelo componente. A propriedade de Legenda pode ser mudada em eventos durante gerao de relatrio. Se classificar segundo o tamanho de acordo com tal muda e as colocaes de AutoSize e AutoStretch.
CENTRE PROPRIEDADE
Declarao
Centro de propriedade: Boolean (Verdadeiro)
Aplica
TQRDBImage
TQRImage
Propsito
Centro usado para decidir como uma imagem se alinhar dentro do componente.
Significado de valor
Retifique A imagem ser centrada dentro da cliente se dirija
Falso A imagem ser alinhada com canto esquerdo superior da rea de cliente
Tambm veja
Extenso
PROPRIEDADE de CHILDBAND
Declarao
propriedade ChildBand: TQRCustomBand (runtime, s leia)
Aplica
TQRBand,
TQRChildBand,
TQRSubDetail,
TQRGroup
Propsito
ChildBand devolve qualquer faixa de criana que tem a faixa atual como o mestre. Voc no fixa esta propriedade diretamente mas jogo isto pela faixa de criana.
COLORA PROPRIEDADE
Declarao
Cor de propriedade: TColor
Aplica
TQRDBText
TQRExpr
TQRLabel
TQRMemo
TQRSysData
Propsito
A propriedade de Cor fixa a cor de fundo do componente.
Tambm veja
Transparente
Manancial
PROPRIEDADE de COLUMNTOPPOSITION
Declarao
propriedade ColumnTopPosition: inteiro
Aplica
TQuickRep
Propsito
ColumnTopPosition devolve a posio vertical na pgina onde a ColumnHeader band/Detail faixa comear impresso. O valor est em 1/10 MM e s definido quando TQuickRep.Available Falso. Voc provavelmente ter nunca a referncia este valor.
PROPRIEDADE de CPIAS
Declarao
Cpias de propriedade: inteiro
Aplica
TPrinterSettings
Propsito
Propsito
Tarefas
Tarefas
PROPRIEDADE de CURRENTCOLUMN
Declarao
propriedade CurrentColumn: inteiro
Aplica
TQuickRep
Propsito
CurrentColumn lhe falar que coluna do relatrio est estando atualmente preparada. Em um nico relatrio de coluna este sempre 1, como tambm o caso durante imprimir de headers de Pgina e Footers e faixas de Title/summary.
Tambm veja
Colunas
PROPRIEDADE de CURRENTX
Declarao
propriedade CurrentX: inteiro
Aplica
TQuickRep
Propsito
CurrentX o atualmente posio horizontal ativa durante gerao de relatrio. Esta a posio esquerda da faixa atual. O valor est nas unidades de QuickReport nativas (1/10 MM) e s definido enquanto Disponvel Falso.
Tambm veja
CurrentY
PROPRIEDADE de CURRENTY
Declarao
propriedade CurrentY: inteiro;
Aplica
TQuickRep
Propsito
CurrentY o atualmente posio vertical ativa no relatrio durante gerao de relatrio. Esta a posio de topo da faixa atual. O valor est no nateive unidades de QuickReport (1/10 MM) e s definido enquanto Disponvel Falso.
Tambm veja
CurrentX
PROPRIEDADE de DADOS
Declarao
Dados de propriedade: TQRSysDataType
Propsito
A propriedade de dados usada para selecionar que artigo de dados de sistema imprimir o componente de TQRSysData.
Tarefas
Tarefas
Significado de valor
qrsColumnNo nmero de coluna Atual (sempre 1 para um nico relatrio de coluna)
qrsDate data Atual
qrsDateTime data Atual e tempo
qrsDetailCount Somam nmero de registros em seu dataset. Se voc tem vrias mesas em seu relatrio que esta a conta de registro para a mesa de mestre. Este dados sempre no est disponvel quando voc est usando um servidor de SQL
qrsDetailNo O nmero de registro atual em seu dataset. Se voc tem vrias mesas em seu relatrio que este o nmero de registro para a mesa de mestre
qrsPageNumber nmero de pgina Atual
qrsPageCount Exibe o nmero total de pginas no relatrio. Nota que isto requer que o relatrio est preparado como um dois relatrio de passagem (TQuickRep.Options.TwoPass). Isto poderia levar tempo significativamente mais longo.
qrsReportTitle O ttulo de relatrio (TQuickRep.ReportTitle)
qrsTime tempo Atual
PROPRIEDADE de DATAFIELD
Declarao
propriedade DataField: fio
Aplica
TQRDBImage
TQRDBText
Propsito
A propriedade de DataField seleciona o campo ser imprimido pelo componente de TQRDBText. Entre no nome do campo ou selecione da gota abaixo lista no inspetor de propriedade. TQRDBText pode ser conectado a qualquer texto ou campos numricos, inclusive campos de memorando. TQRDBImage deveria ser conectado a um campo de grficos.
Tambm veja
DataSource, TQRDBText,
PROPRIEDADE de DATASET
Declarao
propriedade DataSet: TDataSet
Aplica
TQuickRep
TQRSubDetail
Propsito
A propriedade de DataSet une o relatrio ou sub detalhe para um TTable ou componente de TQuery. O dataset devem ser ativos para um relatrio a ser imprimido.
O dataset podem estar na forma de relatrio ou em um mdulo de dados (Delphi 2 e 3).
Sero imprimidos registros na ordem de tipo provida pelo dataset. Mudar a ordem de impresso dos registros ativam um ndice que emparelha a ordem desejada ou cria uma questo ordenada.
PROPRIEDADE de DATASET PARA TQRDBTEXT
Declarao
propriedade DataSet: TDataSet
Aplica
TQRDBText
TQRDBImage
Propsito
DataSet une o TQRDBText ou componente de TQRDBImage para uma mesa ou componente de questo. O campo a ser exibido pode ser selecionado ento com a propriedade de DataField. O dataset podem estar em uma forma separada ou em um mdulo de dados (Delphi 2.0 e depois).
PROPRIEDADE de DESCRIO
Declarao
Descrio de propriedade: TStrings
Aplica
TQuickRep
Propsito
Descrio pode ser usada para armazenar informao sobre um relatrio. Um uso tpico disto exibir a descrio quando um usurio seleciona um relatrio para imprimir ou prever.
Tambm veja
ReportTitle
DESENHISTA PROPERTY
Declarao
Desenhista de propriedade: TQRDesigner
Aplica
TQuickRep
Propsito
Desenhista unido automaticamente para o atualmente objeto de desenhista ativo sempre que voc expe um relatrio em um componente de QREditor. O desenhista responsvel para dirigir toda a interao entre o QuickReport e o QREditor atual. Voc regularmente no ter acesso este valor.
PROPRIEDADE de DISPOSITIVO
Declarao
Dispositivo de propriedade: fio
Aplica
TPrinterSettings
Propsito
A propriedade de Dispositivo devolve o nome do dispositivo de impressora atualmente selecionado em um objeto de PrinterSettings.
Tambm veja
Motorista, Porto,
MOTORISTA PROPERTY
Declarao
Motorista de propriedade: fio
Aplica
TPrinterSettings
Propsito
A propriedade de Motorista devolve o nome do motorista de impressora para a impressora atualmente selecionada em um objeto de PrinterSettings.
Tambm veja
Dispositivo, Porto,
PROPRIEDADE HABILITADA
Declarao
propriedade Habilitou: boolean
Aplica
TQRBand
TQRChildBand
TQRSubDetail
TQRGroup
TQRLabel
TQRDBText
TQRExpr
Propsito
Contanto que esta propriedade seja Verdade que o componente ativo e ser imprimido no relatrio. Se Falso que o componente no ser imprimido. Para faixas este resultado em todos os componentes imprimveis na faixa que no est impresso. Habilitado pode ser mudado de eventos durante gerao de relatrio.
Se voc muda a propriedade Habilitada de uma faixa de PageFooter ou uma faixa de criana de um PageFooter que voc deveria chamar o mtodo de TQuickRep.ResetPageFooterSize.
O evento de BeforePrint para faixas e evento de OnPrint para componentes imprimveis pode ser usado para virar temporariamente de tempo em tempo componentes.
Tambm veja
BeforePrint
OnPrint
PROPRIEDADE de EXPORTFILTER
Declarao
propriedade ExportFilter: TQRExportFilter
Aplica
TQuickRep
Propsito
Quando uma classe de filtro de exportao referenced na propriedade de ExportFilter que o filtro ser ativado durante qualquer preparao de relatrio. Normalmente voc usar o mtodo de ExportToFilter para exportar um relatrio em vez de ter acesso este mtodo diretamente. Qualquer nomeou filtro de exportao destrudo automaticamente quando o componente de TQuickRep destrudo.
Exemplo
Exportar um relatrio para um filtro voc pode usar o cdigo seguinte:
MyReport.ExportFilter := TQRAsciiExportFilter.Create (' c:\report.txt ');
MyReport.Prepare;
MyReport.ExportFilter.Free;
O modo mais fcil, usar ExportToFilter se pareceriam:
MyReport.ExportToFilter(TQRAsciiExportFilter.Create (' c:\report.txt ');
Tambm veja
ExportToFilter
PROPRIEDADE EXPORTANDO
Declarao
propriedade Exportando: boolean (s leia)
Aplica
TQuickRep
Propsito
Se um filtro de exportao nomeado atualmente ao ExportFilter propriedade Exportando devolver Verdadeiro, caso contrrio devolver Falso. Exportando s definido enquanto Disponvel Falso
Tambm veja
ExportFilter
MTODO de EXPORTTOFILTER
Declarao
procedimento ExportToFilter(AFilter: TQRExportFilter)
Aplica
TQuickRep
Propsito
Chame ExportToFilter quando voc quer economizar um relatrio para um arquivo externo que usa um QuickReport exportao filtro. Crie uma instncia de uma classe de filtro de exportao e passe como um parmetro para o mtodo:
MyReport.ExportToFilter(TQRASCIIExportFilter.Create (' REPORT.TXT'));
Tambm veja
ExportFilter
PROPRIEDADE de EXPRESSO PARA TQREXPR
Declarao
Expresso de propriedade: fio
Aplica
TQRExpr
Propsito
Entre em qualquer expresso de QuickReport vlida na propriedade de expresso. Para mais informao sobre criar expresses veja o captulo separado neste tpico. Se lembre de fixar a propriedade de Mestre se voc cria uma expresso agregada.
Tambm veja
Mestre
PROPRIEDADE de EXPRESSO PARA TQRGROUP
Declarao
Expresso de propriedade: fio
Aplica
TQRGroup
Propsito
Entre em qualquer expresso de QuickReport vlida na propriedade de expresso. O grupo quebrar sempre que o resultado das mudanas de expresso. Para mais informao veja o captulo em criar expresses e em criar relatrios se agrupados.
PROPRIEDADE de MANANCIAL
Declarao
Manancial de propriedade: TFont
Aplica
TQRDBText
TQRExpr
TQRLabel
TQRMemo
TQRSysData
Propsito
A propriedade de Manancial fixa as caractersticas de manancial do componente, inclusive typeface, classificam segundo o tamanho, atributos e cor. Para uma descrio cheia da propriedade de Manancial o Delphi Online vem ajuda ou documentao impressa.
QuickReport 2.0 apia TrueType e mananciais de impressora.
Tarefas
para expor um dilogo de seleo de manancial direita trinco dobro coluna desta propriedade no inspetor de propriedade.
Tambm veja
Colora, ParentFont, Transparente,
PROPRIEDADE de FOOTERBAND
Declarao
propriedade FooterBand: TQRCustomBand
Aplica
TQRSubDetail
TQRGroup
Propsito
FooterBand usado para unir um TQRSubDetail ou componente de TQRGroup para uma faixa de footer de grupo. O modo mais fcil para criar um footer de grupo para um TQRSubDetail fixar a propriedade de Bands.HasFooter para Retificar. Para TQRGroup voc tem que somar uma faixa da paleta de componente e fixar a propriedade de FooterBand para unir faixa recentemente criada. Este testamento fixou o tipo de faixa correto (rbGroupFooter)
Footer ata para TQRSubDetail est afinal de contas impresso registros de detalhe para um nico mestre est impresso.
Para um TQRGroup a faixa de footer est impressa sempre que a expresso de grupo muda ou umas mudanas de expresso de grupo niveladas mais altas.
Tambm veja
HeaderBand
PROPRIEDADE de FORCENEWCOLUMN
Declarao
propriedade ForceNewColumn: boolean
Aplica
TQRBand,
TQRChildBand,
TQRGroup,
TQRSubDetail
Propsito
Se voc projeta um relatrio de coluna de multi e sempre quer imprimir uma certa faixa em cima de um jogo de coluna novo esta propriedade para Retificar. Isto s vlido para Detalhe, header de grupo, footer de grupo e faixas de detalhe de substituto, mais claro que criana ata de quaisquer destes. Falta Falsa.
Tambm veja
ForceNewPage
PROPRIEDADE de FORCENEWPAGE
Declarao
propriedade ForceNewPage: boolean
Aplica
TQRBand,
TQRChildBand,
TQRGroup,
TQRSubDetail
Propsito
Se voc quer imprimir uma faixa sempre no topo de uma pgina nova fixe esta propriedade para Retificar. Isto s vlido para detalhe, header de grupo, footer de grupo e faixas de detalhe de substituto, mais faixas de criana de quaisquer destes. Falta Falsa.
PROPRIEDADE de HEADERBAND
Declarao
propriedade HeaderBand: TQRCustomBand
Aplica
TQRSubDetail
Propsito
HeaderBand usado para unir um componente de TQRSubDetail para uma faixa de header de grupo. O modo mais fcil para criar um header de grupo para um TQRSubDetail fixar a propriedade de Bands.HasHeader para Retificar.
Faixas de Header esto impressas antes de todos os registros de detalhe para um nico mestre est impresso.
Tambm veja
FooterBand
PROPRIEDADE de LEFTOFFSET
Declarao
propriedade LeftOffset: inteiro
Aplica
TPrinterSettings
Propsito
LeftOffset um leia s propriedade que devolve a rea no publicvel no lado esquerdo do papel para a impressora atualmente selecionada em um objeto de PrinterSettings. O valor est em 1/10 de milmetros.
Tambm veja
TopOffset
PROPRIEDADE de LINHAS
Declarao
Linhas de propriedade: TStrings
Aplica
TQRMemo
Propsito
Todo o texto no componente de QRMemo pode ser tido acesso pela propriedade de Linhas. Os contedos podem ser mudados durante gerao de relatrio se desejou.
Tarefas
para nomear para os contedos de um uso de StringList o mtodo de Lines.Assign.
MASCARE PROPRIEDADE
Declarao
Mscara de propriedade: fio
Aplica
TQRDBText
TQRExpr
Propsito
A propriedade de Mscara formatar a produo de um dados atento de componente calculado. Se nenhuma mscara formatando fixo ser executado de acordo com a colocao dos campos propriedade de DisplayFormat ou falta que formatam para o tipo de dados respectivo.
Para TDateField, TDateTimeField, e TTimeField, formatando executado por DateTimeToStr. Se nenhuma Mscara ou DisplayFormat no nomeado um fio, o valor formatado de acordo com a falta especificaes de Windows no [Internacional] seo do arquivo de WIN.INI.
Para TBCDField, TCurrencyField, e TFloatField, formatando executado por FloatToTextFmt. Se nenhuma Mscara ou DisplayFormat no nomeado um fio, o valor formatado de acordo com o valor da propriedade de Moeda corrente do campo.
DOMINE PROPRIEDADE PARA TQRCHILDBAND
Declarao
Mestre de propriedade: TQRCustomBand
Aplica
TQRChildBand
Propsito
Vnculos de mestre uma faixa de criana para uma faixa de mestre. Se voc une que a criana mltipla ata a um nico mestre eles deveriam ser unidos em uma cadeia - uma faixa nunca deveria ter mais que uma criana que aponta diretamente a isto.
DOMINE PROPRIEDADE PARA TQREXPR
Declarao
Mestre de propriedade: TComponent
Aplica
TQRExpr
Propsito
A propriedade de Mestre usada quando voc quer criar uma expresso que agrega um campo ao longo do relatrio. Um exemplo de tal uma funo SUM(AmountPaid) onde voc quer imprimir a quantia total pagada todas as ordens ao fundo de um relatrio. Sempre que voc usa qualquer funo de agregao em uma expresso que voc precisar fixar o mestre.
A propriedade de Mestre conta para QuickReport quando atualizar o valor de expresso. Voc pode unir o Mestre para seu componente de QuickRep ou qualquer componente de QRSubDetail em um relatrio. Sempre que QuickReport avana ao prximo registro no dataset conectado ao Mestre que o valor de expresso atualizado.
Se tambm
Expresso, Operao, ResetAfterPrint,
MTODO de NEWCOLUMN
Declarao
procedimento NewColumn;
Aplica
TQuickRep
Propsito
Chame NewColumn de manipuladores de evento durante gerao de relatrio mover prxima coluna na pgina. Se voc est imprimindo um nico relatrio de coluna que o fluxo continuar na prxima pgina. Este mtodo pode ser chamado seguramente do evento de BeforePrint de qualquer faixa ou evento de AfterPrint mas no deveria ser chamado de um imprimvel controla evento de OnPrint ou um OnStartPage ou evento de OnEndPage.
Tambm veja
NewPage
MTODO de NEWPAGE
Declarao
procedimento NewPage
Aplica
TQuickRep
Propsito
Chame NewPage de manipuladores de evento durante gerao de relatrio mover prxima pgina do relatrio. Este mtodo pode ser chamado seguramente do evento de BeforePrint de qualquer faixa ou evento de AfterPrint mas no deveria ser chamado de um imprimvel controla evento de OnPrint ou um OnStartPage ou evento de OnEndPage.
Tambm veja
NewColumn
EVENTO de ONENDPAGE
Declarao
propriedade OnEndPage: TQREndPageEvent;
Aplica
TQuickRep
Propsito
OnEndPage chamado sempre que uma pgina acabado durante gerao de relatrio. Voc pode usar este evento para atualizar ou reajustar qualquer varivel usou em outro manipulador de evento ou faz qualquer tela atualiza voc precisa por alguma razo especial.
Tambm veja
OnStartPage
EVENTO de ONNEEDDATA
Declarao
propriedade OnNeedData: procedimento (Remetente: Tobject; MoreData: boolean)
Aplica
TQuickRep,
TQRSubDetail
Propsito
OnNeedData usado quando criando relatrios de fontes diferente de datasources de Delphi, como listas de fio, ordens, texto arquiva e quase qualquer outra fonte imaginvel. OnNeedData chamado sempre que QuickReport emitiria um comando de DataSet.Next normalmente para mover ao prximo registro de um dataset. MoreData fixando para Falso causar o relatrio (ou sub detalhe) terminar.
Exemplo
Este cdigo imprimir todos os fios em um TStringList para em um relatrio:
var
CurrentItem: Inteiro;
SomeStringList: TStringList;
procedimento TForm1.QuickRep1BeforePrint(Sender: TQuickRep;
var
PrintReport: Boolean);
comece
CurrentItem := 0;
PrintReport := SomeStringList.Count> 0;
fim;
procedimento TForm1.QuickRep1NeedData(Sender: TObject; var MoreData; Boolean);
comece
se CurrentItem
Recommended