Fórum QuickReport Delphi 5 #427456

29/10/2012

0

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
Eduardo Ribeiro

Eduardo Ribeiro

Responder

Posts

29/10/2012

Claudia Nogueira

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:


    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.
Responder

Gostei + 0

29/10/2012

Eduardo Ribeiro

Obrigado
Vou fazer um teste aqui
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar