QuickReport Delphi 5
Bom dia
Em Delphi 5, no quickreport hoje consigo imprimir o numero de paginas perfeitamente:
tenho 10 paginas:
consigo imprimir: 1/10, 2/10, 3/10, 4/10, 5/10, 6/10, 7/10, 8/10, 9/10, 10/10.
Dessa forma:
procedure TfrFichaPesagem.lbPagePrint(sender: TObject; var Value: String);
begin
Value := Format( 'Folha %d/%d', [rp.QRPrinter.PageNumber, iPageCount]);
end;
* O problema:
Quero criar uma numeracao de paginas no por grupos:
tenho 10 paginas:
tenho 3 grupos (3 paginas, 2 paginas, 5 paginas)
quero imprimir: 1/3, 2/3, 3/3
1/2, 2/2
1/5, 2/5, 3/5, 4/5, 5/5
tudo na mesma impressao:
nao imagino uma forma de fazer isso, pois, no inicio da impressao nao sei ainda que meu primeiro grupo tem 3 paginas o segundo 2 e o terceiro 5
Obrigado
Eduardo
Em Delphi 5, no quickreport hoje consigo imprimir o numero de paginas perfeitamente:
tenho 10 paginas:
consigo imprimir: 1/10, 2/10, 3/10, 4/10, 5/10, 6/10, 7/10, 8/10, 9/10, 10/10.
Dessa forma:
procedure TfrFichaPesagem.lbPagePrint(sender: TObject; var Value: String);
begin
Value := Format( 'Folha %d/%d', [rp.QRPrinter.PageNumber, iPageCount]);
end;
* O problema:
Quero criar uma numeracao de paginas no por grupos:
tenho 10 paginas:
tenho 3 grupos (3 paginas, 2 paginas, 5 paginas)
quero imprimir: 1/3, 2/3, 3/3
1/2, 2/2
1/5, 2/5, 3/5, 4/5, 5/5
tudo na mesma impressao:
nao imagino uma forma de fazer isso, pois, no inicio da impressao nao sei ainda que meu primeiro grupo tem 3 paginas o segundo 2 e o terceiro 5
Obrigado
Eduardo
Eduardo Ribeiro
Curtidas 0
Respostas
Claudia Nogueira
29/10/2012
Não trabalho com QuickReport e pelo que sei ele é meio chatinho pra esse tipo de coisa.
Fiz uma gambi aqui pra testar, e funcionou pra mim.
Fiz da seguinte forma pra testar.
1 componente TQuickRep com True na propriedade HasPageFooter;
1 componente TQRGroup e em expression coloquei o nome do campo que é pra agrupar com a propriedade ForceNewPage = True;
1 componente TQRBand com o BandType = rbDetail;
No PageFooter coloquei 1 componente TQRLabel com nome QRLabel1.
Em private criei as seguintes variáveis:
Em um botão coloquei o seguinte código:
No evento onStartPage do QuickRep1 coloquei o seguinte código:
Obs.: Você precisa trocar o ClientDataSet1nome.AsString pelo campo que você irá usar no agrupamento.
Fiz uma gambi aqui pra testar, e funcionou pra mim.
Fiz da seguinte forma pra testar.
1 componente TQuickRep com True na propriedade HasPageFooter;
1 componente TQRGroup e em expression coloquei o nome do campo que é pra agrupar com a propriedade ForceNewPage = True;
1 componente TQRBand com o BandType = rbDetail;
No PageFooter coloquei 1 componente TQRLabel com nome QRLabel1.
Em private criei as seguintes variáveis:
sGrupo : String;
iPagina, iGrupo : Integer;
Em um botão coloquei o seguinte código:
sGrupo := ClientDataSet1nome.AsString; iPagina := 1; iGrupo := 1; QuickRep1.Preview;
No evento onStartPage do QuickRep1 coloquei o seguinte código:
Inc(iPagina);
if sGrupo <> ClientDataSet1nome.AsString then
begin
iPagina := 1;
iGrupo := 1;
sGrupo := ClientDataSet1nome.AsString;
end
else
Inc(iGrupo);
QRLabel1.Caption := IntToStr(iPagina) + '/' + IntToStr(iGrupo);
Obs.: Você precisa trocar o ClientDataSet1nome.AsString pelo campo que você irá usar no agrupamento.
GOSTEI 0
Eduardo Ribeiro
29/10/2012
Obrigado
Vou fazer um teste aqui
Vou fazer um teste aqui
GOSTEI 0