QRCompositeReport

Delphi

27/02/2004

Estou usando um componente Composite para juntar 03 QReport que estão dentro de um form. Eu gostaria de forçar uma quebra de página entre o segundo e terceiro QReport. Já alterei a propriedade ForceNewPage de várias QRBand nos 03 QReport, mas simplesmente não funciona. Eis o código do Evento OnAddReports:
procedure TfRelRegApuraICMS.CRRAICMSAddReports(Sender: TObject);
begin
with CRRAICMS.Reports do
begin
Add(QRRAICMSEnt);
Add(QRRAICMSSaida);

Add(QRRAICMS);
end;
end;
Alguem saberia me dizer como fazer, ou se isso é uma limitação do componente Composite?


A.leao

A.leao

Curtidas 0

Respostas

Edukobra

Edukobra

27/02/2004

Amigo, se vc estiver usando apenas um dos relatórios com a banda detail, deixe as outras bandas com o tamanho de 550 na altura et este.
Eu precisei, uma vez, utilizar um relatório com 4 quickreport, onde apenas 1 era detail e consegui resolver o problema deixando a altura da banda um pouco maior que a metade da página. Isso resolveu o problema, tente ai.


GOSTEI 0
A.leao

A.leao

27/02/2004

Eu mesmo responderei à minha própria questão, pois acredito que servirá para outro(s) programador(es), experiente(s) ou não, que assim como eu, se acha(m) em apuros :cry: para resolver algum problema. Pois bem: Depois de muita tentativa e erro eu finalmente consegui descobrir.

No evento [b:45a34a210b]BeforePrint[/b:45a34a210b] do componente [b:45a34a210b]TQuickReport[/b:45a34a210b] da página que se quer ´quebrar´ é só incluir a seguinte linha de código:

[b:45a34a210b]QRRAICMS.NewPage;[/b:45a34a210b]

onde QRRAICMS é o componente TQuickReport.
Só há um detalhe ([color=red:45a34a210b][b:45a34a210b]importante[/b:45a34a210b][/color:45a34a210b]): Dentro do componente TQuickReport que será incluída a linha de código acima, [b:45a34a210b][color=red:45a34a210b]não[/color:45a34a210b][/b:45a34a210b] pode haver nenhuma QRBand do tipo [b:45a34a210b]ColumnHeader[/b:45a34a210b], caso contrário... É ´pau´. O QuickReport não constrói a página seguinte. Dá um erro maluco de ´access violation´, aquele que acontece quando se tenta acessar algo que ainda não foi criado/declarado.
É isso. Agradecimentos ao [b:45a34a210b]edukobra[/b:45a34a210b] pela resposta à minha questão.


GOSTEI 0
Leufmt

Leufmt

27/02/2004

Muito obrigado pela dica.
Resolveu meus problemas.


GOSTEI 0
Arimateia Jr

Arimateia Jr

27/02/2004

Não sei se ainda vai servir para alguma coisa, mas vou postar mesmo assim:


No quickreport, tem uma propriedade chamada StartNewPageInComposite. É só você setar como TRUE e pronto.
GOSTEI 0
POSTAR