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 05-05-2004
Salomon Salomon is offline
Miembro
 
Registrado: ago 2003
Ubicación: Galapagar, Madrid (España)
Posts: 25
Poder: 0
Salomon Va por buen camino
Varias copias al imprimir muchas facturas

muy buenas.

tengo un problemilla al imprimir un monton de facturas, y es que en algunas, no todas, tengo que hacer varias copias, el decir, para que quede mas claro, tengo una tabla de facturas, con un campo que COPIAS_FACTURA, que generalmente es 1, pero en algunos es 2 o mas, al imprimir tengo que imprimir el numero de copias que viene en el campo.

he probado a cambiar la propiedad
"QRFacturas.PrinterSettings.Copies := ADOQFacturas.FieldByName('COPIAS_FACTURA').AsInteger" en
tiempo de ejecucion, cocretamente en el evento
"BeforePrint" del QReport, y pasa bastante de mi.

alguien sabe como puedo hacerlo, o si de lo contrario no se puede, para no romperme mas la cabeza.

Un saludo

SALO
__________________
De donde sacara las pelas la luna para salir todas las noches!!!

P.D. La mala gente gobierna por que la buena gente no vota.

En españa eso ya no pasa....
Responder Con Cita
  #2  
Antiguo 05-05-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Una pregunta

Las imprimes todas de golpe en el mismo listado o lanzas el listado por cada factura?

Si es lo primero, olvídate de usar la propiedad Copies, ya que eso sólo sirve para TODO el listado. Si lanzas el listado para cada factura, lo de Copies debería de funcionarte.
Responder Con Cita
  #3  
Antiguo 05-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Suponiendo que lanzas un reporte por factura, yo creo que el evento BeforePrint no es el adecuado.

Supongamos que el código de QuickReport.Print es como sigue:

Código Delphi [-]
Procedure TQuickRep.Print;

Var
  i : Integer;

Begin
  for i := 1 to Copies do
  begin
    LanzarEventoBeforePrint;
    Imprimir;
  end;
end;

No funcionará cambiar copies en ese evento... en todo caso, en el ciclo que lanza la impresión, antes de llamar a print... alli si que debiera funcionar establecer el número de copias.

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 05-05-2004
Salomon Salomon is offline
Miembro
 
Registrado: ago 2003
Ubicación: Galapagar, Madrid (España)
Posts: 25
Poder: 0
Salomon Va por buen camino
Cita:
Empezado por cadetill
Una pregunta

Las imprimes todas de golpe en el mismo listado o lanzas el listado por cada factura?

Si es lo primero, olvídate de usar la propiedad Copies, ya que eso sólo sirve para TODO el listado. Si lanzas el listado para cada factura, lo de Copies debería de funcionarte.
las imprimo todas de golpe, en el mismo paquete, con una select * from....

lo que me quieres decir es que no hay solucion, que lo tengo que hacer aparte?, por que si es eso me espera un tinglao de lo ostia, pero!!, esa es la vida del programador, el usuario manda y nosotros .... le decimos que eso no se puede, jejejejeje, no es serio, me tendre que comer la cabeza para sacarlo, de todos modos muchas gracias

Un saludo

SALO!!
__________________
De donde sacara las pelas la luna para salir todas las noches!!!

P.D. La mala gente gobierna por que la buena gente no vota.

En españa eso ya no pasa....
Responder Con Cita
  #5  
Antiguo 06-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
si tu base de datos es interbase/firebird... no está muy complidado hacer un stored procedure que te devuelva el número de registros requeridos para cada factura...

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
  #6  
Antiguo 06-05-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Una solución como ya apunta el amigo Cadetill sería, una vez obtenidas las facturas a imprimir, no enviarlas todas en un informe, sino con un bucle de tal manera que se harían tantas llamadas como facturas hubiese, sino funcionara la opción "copies", simplemente pones un If y la que tenga 2 copias llamas 2 veces a quickreport.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 06-05-2004
Salomon Salomon is offline
Miembro
 
Registrado: ago 2003
Ubicación: Galapagar, Madrid (España)
Posts: 25
Poder: 0
Salomon Va por buen camino
Lo que dice jachguate parece buena idea, el problema es que nunca he creado un stored procedure y no se como se realiza. Investigare por ahi a ver si lo saco, de lo contrario tendre que hace lo que comenta marcoszorrilla, mandar las facturas en un bucle, aunque el problema es al visualizar e imprimirlas por ahi.

muchas gracias igualmente.

saludos

SALO
__________________
De donde sacara las pelas la luna para salir todas las noches!!!

P.D. La mala gente gobierna por que la buena gente no vota.

En españa eso ya no pasa....
Responder Con Cita
  #8  
Antiguo 06-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Cita:
Empezado por Salomon
Lo que dice jachguate parece buena idea
Te gatanrizo que no solo parece... lo es, y probablemente es lo que menos cambios provoque en tu aplicación. Un sutil cambio en el from del select... y listo.

Aqui en los foros hay algunos ejemplos y mucha información para crear un stored procedure que devuelva un DataSet.

La idea es anidar dos ciclos... un For Select con el query que ya tenes actualmente en tu Query actual... quizas con algunos parámetros... y dentro de este un ciclo que repita tantas veces como sea necesario cada factura.

Las relaciones maestro/detalle para imprimir las líneas seguirán funcionando tan bien como hasta ahora!!

En fin... ya te he dicho bastante.

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
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 04:31:13.


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