• Sábado 21 de Diciembre de 2024, 15:41

Autor Tema:  Re: QuickReport  (Leído 3104 veces)

sdirr

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: QuickReport
« en: Martes 13 de Mayo de 2003, 17:59 »
0
Necesito imprimir 2 columnas de etiquetas en Quick report, qué banda puedo utilizar para avanzar de a 2???
:ahora:

cancun

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: QuickReport
« Respuesta #1 en: Martes 13 de Mayo de 2003, 19:16 »
0
Hola

Puedes copiar los componentes 2 veces para cada etiqueta y listo.

Pero si vas a imprimir diferentes cantidades de etiquetas para diferentes productos, es un poco mas complicado

Hice un reporte de etiquetas en D5 con QR, es para etiquetar
varios articulos, con una cantidad de etiquetas
distinta para cada articulo y considerando que la
hoja pueden faltarle etiquetas al principio (usadas en
una impresión anterior), los pasos que seguí son:

- Configurar la propiedad Columns en Page del QuickRep
segun la cantidad de columnas de las etiquetas (en tu
caso 2)

- Agrego la banda de Detalle y le asigno una altura de
acuerdo a la etiqueta, coloco los datos que se
imprimiran, hago unas pruebas para estar seguro.

- Coloco una banda del tipo TQRStringsBand antes de la
banda de detalle y otra despues de la banda de detalle
y en esta ultima copio los datos que se imprimiran.

Ahora el código para que esto funcione es así:

En el evento OnBeforePrint del QuickRep, asignamos
la cantidad de etiquetas vacias (dato que previamente
debes solicitar al usuario), agregando a la primera
banda tantos Items en su propiedad Strings como
etiquetas vacias queramos.

QrsVacios.Items.Clear;
For X:=2 To Vacios Do QrsVacios.Items.Add('');

Nota: Utilizo un 2 en el For por que pido a partir
de que etiqueta se va a imprimir y por Default asumo
que la 1 (primera etiqueta de la hoja).

En la banda de detalle se imprimirá la primera etiqueta
para cada articulo, y en la otra banda del tipo
TQRStringList las adicionales que se requieran, por
lo tanto en el evento OnBeforePrint de la banda de
detalle, asignamos la cantidad de etiquetas adicionales
a imprimir:

C:=DR.TblEtiquetas.FieldByName('Cantidad').AsInteger;
QrsAdicionales.Enabled:=C>1;
QrsAdicionales.Items.Clear;
For X:=2 To C Do QrsAdicionales.Items.Add('');

Como verás uso una tabla donde guardo la cantidad
de etiquetas a imprimir por articulo.

Y en el evento OnAfterPrint de la banda de detalle:

QrsVacios.Items.Clear;

Para que no deje más etiquetas vacias.

Espero haber sido claro y ojalá te sirva, si tienes
alguna duda estoy para servirte.
Roger Ruiz
Cancun, México
IMACO SC

sdirr

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
QuickReport
« Respuesta #2 en: Martes 13 de Mayo de 2003, 19:45 »
0
Roger:
No tengo distintas cantidades para imprimir, asi que podría copiar 2 veces los componentes, pero como hago para avanzar de a 2 registros en la consulta o tabla??:ball: