QReport (quebra de página)
Pessoal, estou fazendo um quickReport que possui grupos e subgrupos, ou seja
Estou com o problema abaixo exeplificado:
Nome: João da Silva
Filhos
-----Paulo
-----Pedro
Nome: Pedro Zé
Filhos
<----------AQUI INTERROMPE E VAI PRA OUTRA FOLHA!!! NÃO PODERIA
-----Luiz
-----Mariana
Porém, quando termina a página, e ele ainda não terminou o grupo principal, ele quebra no meio e continua a impressão na próxima!
Gostaria de saber se existe uma maneira de manter o grupo na mesma página.
P.S. ForceNewPage não fuinciona pois utiliza uma página para cada grupo. gostaria q se o grupo não da todo na página force p proxima página.
Estou com o problema abaixo exeplificado:
Nome: João da Silva
Filhos
-----Paulo
-----Pedro
Nome: Pedro Zé
Filhos
<----------AQUI INTERROMPE E VAI PRA OUTRA FOLHA!!! NÃO PODERIA
-----Luiz
-----Mariana
Porém, quando termina a página, e ele ainda não terminou o grupo principal, ele quebra no meio e continua a impressão na próxima!
Gostaria de saber se existe uma maneira de manter o grupo na mesma página.
P.S. ForceNewPage não fuinciona pois utiliza uma página para cada grupo. gostaria q se o grupo não da todo na página force p proxima página.
Hviana
Curtidas 0
Respostas
Hviana
20/02/2009
SOBE
GOSTEI 0
Marcosrocha
20/02/2009
Isso que você quer não é possível. Não tem como o gerador de relatórios calcular o tamanho antes de jogar os dados no report.
GOSTEI 0
Delmar
20/02/2009
Tenho esse mesmo desafio
Eu até conheço mais o QuickReport que o FastReport, sei que no fast existe eventos onde pode-se implementar o acumulo de consumo da banda/pagina a cada registro, no QR não sei se há como fazer isso
Dado esta capacidade, talvez teríamos que apurar a quantidade de registros do grupo e multiplicar pelo espaço consumido de cada registro, isso no evento beforePrint do grupo, para saber se precisaríamos forçar a quebra de página antes de começar imprimir
TAMPAGINA - CONSUMIDO = RESTA
IF RESTA < CONSUMOGRUPO então força nova pagina
zera CONSUMIDO
Pensei assim:
a queryDoGrupo
a queryDeItensDoGrupo
e uma itensQueryContarRegistros para saber antes de começar imprimir quantos registros terá no grupo
E teríamos que ter alguns cuidados de exceções:
Se o grupo é maior que o resto então novaPagina, mas se o grupo é maior que a PAGINA teríamos que forçar sua impressão, caso contrário, entraríamos em recursão de novas páginas
Não significa que vai funcionar, mas particularmente acho que é possível bolar uma solução, que não é tão óbvia, é claro, mas com persistência quase sempre conseguimos
Talvez com as idéias de outros colegas possamos evoluir esta idéia ou formular novas idéias antes de começar a colocar a mão-na-massa
Eu até conheço mais o QuickReport que o FastReport, sei que no fast existe eventos onde pode-se implementar o acumulo de consumo da banda/pagina a cada registro, no QR não sei se há como fazer isso
Dado esta capacidade, talvez teríamos que apurar a quantidade de registros do grupo e multiplicar pelo espaço consumido de cada registro, isso no evento beforePrint do grupo, para saber se precisaríamos forçar a quebra de página antes de começar imprimir
TAMPAGINA - CONSUMIDO = RESTA
IF RESTA < CONSUMOGRUPO então força nova pagina
zera CONSUMIDO
Pensei assim:
a queryDoGrupo
a queryDeItensDoGrupo
e uma itensQueryContarRegistros para saber antes de começar imprimir quantos registros terá no grupo
E teríamos que ter alguns cuidados de exceções:
Se o grupo é maior que o resto então novaPagina, mas se o grupo é maior que a PAGINA teríamos que forçar sua impressão, caso contrário, entraríamos em recursão de novas páginas
Não significa que vai funcionar, mas particularmente acho que é possível bolar uma solução, que não é tão óbvia, é claro, mas com persistência quase sempre conseguimos
Talvez com as idéias de outros colegas possamos evoluir esta idéia ou formular novas idéias antes de começar a colocar a mão-na-massa
GOSTEI 0
Hviana
20/02/2009
é Delmar eu tb pensei assim...só que da um trabalho em tanto! mais n vejo outra forma...pelo menos no QRepost
Tenho esse mesmo desafio
Eu até conheço mais o QuickReport que o FastReport, sei que no fast existe eventos onde pode-se implementar o acumulo de consumo da banda/pagina a cada registro, no QR não sei se há como fazer isso
Dado esta capacidade, talvez teríamos que apurar a quantidade de registros do grupo e multiplicar pelo espaço consumido de cada registro, isso no evento beforePrint do grupo, para saber se precisaríamos forçar a quebra de página antes de começar imprimir
TAMPAGINA - CONSUMIDO = RESTA
IF RESTA < CONSUMOGRUPO então força nova pagina
zera CONSUMIDO
Pensei assim:
a queryDoGrupo
a queryDeItensDoGrupo
e uma itensQueryContarRegistros para saber antes de começar imprimir quantos registros terá no grupo
E teríamos que ter alguns cuidados de exceções:
Se o grupo é maior que o resto então novaPagina, mas se o grupo é maior que a PAGINA teríamos que forçar sua impressão, caso contrário, entraríamos em recursão de novas páginas
Não significa que vai funcionar, mas particularmente acho que é possível bolar uma solução, que não é tão óbvia, é claro, mas com persistência quase sempre conseguimos
Talvez com as idéias de outros colegas possamos evoluir esta idéia ou formular novas idéias antes de começar a colocar a mão-na-massa
GOSTEI 0