manual qreport

Upload: alexvrd

Post on 30-Oct-2015

77 views

Category:

Documents


0 download

TRANSCRIPT

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