FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Qreport Sobre Un Formulario
Estoy armando un qreport que debe imprimirse sobre un
formulario. Tengo un Groupheader, un SubDetail y un GroupFooter. Necesito que el SubDetail ocupe siempre la misma cantidad de lineas sin importar la cantidad de lineas del subdetail. Esto es para que "calce" dentro del formulario. Como hago?. Gracias anticipadas. |
#2
|
||||
|
||||
Con las líneas creo que no hay nada que hacer, prueba con altura.
Es decir si quieres que siempre mida una longitud determinada. MiSubdetail.Height:=LoQueSea; Puedes incluso darle dicha medida en tiempo de diseño. Un Saludo. |
#3
|
|||
|
|||
Otra idea es tener una variable global que vas incrementando en el GeforePrint de la banda. Cuando este llega al numero que tu quieres, pones la propiedad ForceNewPage a true y luego la vuelves a poner a false reiniciando el contador
Código:
procedure TDbGrid.QRSubDetail1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); begin if QRSubDetail1.ForceNewPage then begin QRSubDetail1.ForceNewPage := false; Conta := 0; end; inc(Conta); if Conta = TuNumero then QRSubDetail1.ForceNewPage := true; end; |
#4
|
|||
|
|||
marcos zorrilla:
Si modifico a altura de la banda del subdetail, lo que hago es ampliarle la altura de cada linea que imprime, y no del espacio asignado para todas las lineas. Es decir, si tengo altura = 5, cada linea ocupa 5 si la llevo a 20, entonces cada linea del subdetail estara ocupando 20. No pude encontrar como hacer para fijar el espacio total que ocupara todo el detalle. cadetill: ok, buena idea, me sirve para los casos en los cuales la cantidad de lineas es mayor de lo que yo quiero imprimir. Pero si por ejemplo quiero que el espacio sea para 10 lineas, si tengo 15 registros, perfecto en el 10 corta. Pero si tengo 3 registros, los otros 7 no los voy a tener nunca, y comenzara automaticamente a imprimir el GroupFooter. Quizas si pudiese hacer que se agreguen las 7 lineas restantes en blanco, pero no se como hacerlo, se podra agregar alguna banda que se maneje a mano. Es decir, yo la comienzo a imprimir y la imprimo la cantidad de veces que quiera.?? Gracias por sus ayudas, y espero mas. Gracias Miguel |
#5
|
||||
|
||||
Se me ha ocurrido sobre la marcha, al leer tu respuesta, si por un casual funcionara me lo dices.
Pon un segundo Subdetail o una banda para subtotales, enganchado como el primero. En el evento BeforePrint del Primero, en el que estarán las líneas reales cuentas cuantas líneas tiene y en virtud de esto le das la dimensión al segundo que solamente tendrá la misión de ocupar espacio debajo del anterior. Un Saludo. |
#6
|
|||
|
|||
A ver si te entiendo:
Tengo ahora el subdetail1. Agrego un subdetail 2, enganchado con el primero y le asigno al subdetail 2 una altura standard en tiempo de diseño, y no le agrego ningun campo ni siquiera le relacion una tabla. En tiempo de ejecucion en el before del subdetail1, cuento las lineas que voy imprimiendo. En el afterprint del subdetail2, segun la cantidad de lineas que conto el 1, calculo la altura del subdetail2, cuanto mas lineas imprimio menos altura le doy. Esto es lo que sugeris? Lo pruebo y te aviso. Gracias Miguel |
|
|
|