Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-07-2003
URBANO URBANO is offline
Miembro
 
Registrado: jul 2003
Ubicación: Huelva
Posts: 126
Poder: 21
URBANO Va por buen camino
Question Forzar una nueva pagina al llegar a un punto determinado?

Hola foro, tengo el siguiente problema:
He realizado una factura con qreport y necesito que cuando llegue a un determinado número de líneas salte al siguiente folio.
Yo he utilizado lo siguiente:

procedure TFlisfactura.QRSubDetail1AfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
begin
linea:=linea+1;
if linea = 24 then
begin
QRSubDetail1.ForceNewPage:=True;
end;

end;

El problema es que cuento el número de veces que se imprime el Qrsubdetail, pero este puede variar de tamaño (el ancho) con lo cual no me vale.
Alguien sabe algun otro método?
__________________
El saber no ocupa lugar.
Responder Con Cita
  #2  
Antiguo 23-07-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Prueba cambiando "QRSubDetail1.ForceNewPage:=True;" por "NewPage;", con esto forzarás en ese momento que se cree la nueva página.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 23-07-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Thumbs down

Creo que es importante que leas la guia de estilo y que comprendás que no tiene sentido poner una pregunta en mas de un foro a la vez.

Si nadie responde tu pregunta en un foro, es quizas porque nadie puede ayudarte, porque tu pregunta está mal planteada, o porque la has puesto en el foro equivocado.

Estas son cosas, por supuesto, que debes considerar antes de poner el primer mensaje.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 24-07-2003
URBANO URBANO is offline
Miembro
 
Registrado: jul 2003
Ubicación: Huelva
Posts: 126
Poder: 21
URBANO Va por buen camino
Post

El problema no es que no funcione la creación de la nueva página, esto si lo consigo. Lo que no se como determinar el momento exacto para fozar la página, es decir, si yo quiero que se cree una nueva página y salte ha ella cuando la última linea de detalle que se halla imprimido este a 6 cm del final del folio (A4). ¿como se yo que he llegado que solo me faltan 6 cm?

jachguate, como he esplicado en el foro de SQL, me equivoque al escribir la pregunta en ese foro y como no se como eleminarla, lo único que he hecho es dar la explicación de mi error y comentar que ya había hecho la pregunta en el foro correspondiente. Mi intención no ha sido poner una pregunta en dos foros.
__________________
El saber no ocupa lugar.
Responder Con Cita
  #5  
Antiguo 24-07-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Bueno, con Report.NewPage fuerzas en ese preciso instante a que se cree una nueva página, puedes hacerlo cuando estas en un registro X con alguna condición en sus datos.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 24-07-2003
URBANO URBANO is offline
Miembro
 
Registrado: jul 2003
Ubicación: Huelva
Posts: 126
Poder: 21
URBANO Va por buen camino
Yo cuento las lineas de detalle que se imprimen y cuando llegan a 17 (sería a 6 cm del final del folio, por ejemplo) fuerzo la nueva página (esto funciona). El problema es que esto funciona siempre y cuando en cada detalle solo se imprima una sola linea, ya que si se imprimen mas (que puede pasar muy amenudo, dependiedo del texto que almena) se sigue saltando a la nueva página cuando llega a 17, pero esta última línea ya no se encuentra a 6 cm del final, luego esto no me sirve.

La idea es que independientemente del contenido de las lineas de detalle, cuando una de estas líneas se vayan a imprimir a menos de 6 cm del final del folio, se cree el siguiente folio.

Espero haberme esplicado bien.
Gracias por vuestros comentarios.
__________________
El saber no ocupa lugar.
Responder Con Cita
  #7  
Antiguo 24-07-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
¿No te sirve modificar el margen inferior del reporte?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 25-07-2003
hogol hogol is offline
Miembro
 
Registrado: jul 2003
Posts: 62
Poder: 21
hogol Va por buen camino
Hola buenas

Creo que lo más sencillo y elegante sería poner una banda de pié de página de 6 cm con lo cual en principio te solucionaría el problema.
Si eso no te funciona entonces quizás podrias cambiar el cálculo que haces de lineas impresas por la suma de los anchos impresos. Algo más o menos como esto:

procedure TFlisfactura.QRSubDetail1AfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
begin
total := total + Qrsubdetail1.height;
if total >= tope then
begin
QRSubDetail1.ForceNewPage:=True;
end;

end;



En fin , es una idea

Hogol
Responder Con Cita
  #9  
Antiguo 25-07-2003
URBANO URBANO is offline
Miembro
 
Registrado: jul 2003
Ubicación: Huelva
Posts: 126
Poder: 21
URBANO Va por buen camino
Thumbs up

La idea me ha venido de perlas.
De la manera que me has comentado ya tengo solucionado el problema.

Gracias por vuestros comentarios
__________________
El saber no ocupa lugar.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 00:45:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi