Regra de impressão no Quick Report

Delphi

20/02/2008

Entreguei ao cliente o sistema pronto daí em um dos relatórios ele quer que crie uma regra, que é:

Quando não tiver mais espaço no final da página para imprimir três linhas de detail ele pula para próxima página dando sequencia na outra.

Tem como fazer isso?
Que faço?


Jpauloss

Jpauloss

Curtidas 0

Respostas

Jpauloss

Jpauloss

20/02/2008

sobe


GOSTEI 0
Ffabiop

Ffabiop

20/02/2008

você sabe qtos detalhes cabem na página?
tem algum agrupapento? se tem ele equivale a quantas linhas de detalhe na altura?


GOSTEI 0
Jpauloss

Jpauloss

20/02/2008

você sabe qtos detalhes cabem na página? tem algum agrupapento? se tem ele equivale a quantas linhas de detalhe na altura?

E tem como saber isso?
Tem agrupamento.
Que faço?


GOSTEI 0
Ffabiop

Ffabiop

20/02/2008

Quantas linhas detail aparecem impressas no folha qdo emite o relatório?

A idéia é ter um total de linhas as ser impresso e ir descontando a cada linha listada, depois que imprimir o rodapé do grupo ver se resta menos de 3 linhas para imprimir na folha e forçar uma quebra de página no detalhe que vem a seguir... mais ou menos isso...


GOSTEI 0
Jpauloss

Jpauloss

20/02/2008

Quantas linhas detail aparecem impressas no folha qdo emite o relatório? A idéia é ter um total de linhas as ser impresso e ir descontando a cada linha listada, depois que imprimir o rodapé do grupo ver se resta menos de 3 linhas para imprimir na folha e forçar uma quebra de página no detalhe que vem a seguir... mais ou menos isso...

28 details que imprime, como vou fazer isso? Em que evento?


GOSTEI 0
Ffabiop

Ffabiop

20/02/2008

Vamos ter que declarar uma variável global, pode ser lá na seção private:
Linhas: integer;

Depois no evento BeforePrint do Relatório, colocamos o número de linhas detalhe do relatório:
Linhas := 28;

Agora vamos controlar a quebra no evento AfterPrint da banda detalhe:
Linhas := Linhas - 1; // aqui vai contando quantas linas resta na página
if QRBand3.ForceNewPage = true then
QRBand3.ForceNewPage := false;

if linhas < 3 then // se restam menos de 3 linhas na página
begin
QRBand3.ForceNewPage := True; //o próximo detalhe vai forçar uma nova página
linhas := 28; //nova página temos 28 linhas de novo
end;

Mais oumenos assim, veja o que acontece colega...


GOSTEI 0
Jpauloss

Jpauloss

20/02/2008

Vamos ter que declarar uma variável global, pode ser lá na seção private: Linhas: integer; Depois no evento BeforePrint do Relatório, colocamos o número de linhas detalhe do relatório: Linhas := 28; Agora vamos controlar a quebra no evento AfterPrint da banda detalhe: Linhas := Linhas - 1; // aqui vai contando quantas linas resta na página if QRBand3.ForceNewPage = true then QRBand3.ForceNewPage := false; if linhas < 3 then // se restam menos de 3 linhas na página begin QRBand3.ForceNewPage := True; //o próximo detalhe vai forçar uma nova página linhas := 28; //nova página temos 28 linhas de novo end; Mais oumenos assim, veja o que acontece colega...

Valeu


GOSTEI 0
Jpauloss

Jpauloss

20/02/2008

Vamos ter que declarar uma variável global, pode ser lá na seção private: Linhas: integer; Depois no evento BeforePrint do Relatório, colocamos o número de linhas detalhe do relatório: Linhas := 28; Agora vamos controlar a quebra no evento AfterPrint da banda detalhe: Linhas := Linhas - 1; // aqui vai contando quantas linas resta na página if QRBand3.ForceNewPage = true then QRBand3.ForceNewPage := false; if linhas < 3 then // se restam menos de 3 linhas na página begin QRBand3.ForceNewPage := True; //o próximo detalhe vai forçar uma nova página linhas := 28; //nova página temos 28 linhas de novo end; Mais oumenos assim, veja o que acontece colega...

Fábio, e no caso desse tópico [url]http://forum.devmedia.com.br/viewtopic.php?t=93371&highlight=[/url]
Fica como?


GOSTEI 0
POSTAR