Jump to content


Photo

Como imprimir 2, 3 o 4 columnas sugun una condicion, en QReport


  • Please log in to reply
3 replies to this topic

#1 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 posts
  • LocationPinar del Río, Cuba

Posted 25 May 2009 - 02:42 PM

Hola a todos
Tengo un informe en QReport, en el cual se tienen que mostrar los valores de hasta 4 tipos de moneda, pero por problemas del tamaño del papel no caben las 4 columnas.
Pero como en dependencia de una condicion, la empresa en cuestion usara solo 2 (o 3).
Ejemplo:
Empresa1: Mon1 y Mon2
Empresa2: Mon3 y Mon4
Tambien puede darse el caso de: Empresa3: Mon2, Mon3 y Mon4

Como puedo hacer para segun la Empresa, mostrar las columnas correspondientes?
Cada Empresa sale en una hoja independiente
  • 0

#2 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2137 posts

Posted 27 May 2009 - 01:34 PM

Hola, la mas fácil y sencilla es hacer tres reportes y  llamar el apropiado según la condición, cosa que no es muy dificil porque los cambios a realizar entre uno y otro serí­an mí­nimos.

Saludos
  • 0

#3 cannabis

cannabis

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 257 posts
  • LocationMéxico

Posted 28 May 2009 - 01:41 AM

Supongamos que:


delphi
  1. QRDBText1.DataField:= 'Moneda1';
  2. QRDBText2.DataField:= 'Moneda2';
  3. QRDBText3.DataField:= 'Moneda3';



En el evento BeforePrint de la Banda de Detalle


delphi
  1. if <Cumple la Condición> then
  2.   QRDBText1.Enabled:= True  // Imprime el Campo
  3. else
  4.   QRDBText1.Enabled:= False;  // No Imprime el Campo



Lo mismo haces con la Banda de Encabezados o Tí­tulo de cada campo.


Salud.

  • 0

#4 JoAnCa

JoAnCa

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 775 posts
  • LocationPinar del Río, Cuba

Posted 28 May 2009 - 03:08 PM

Hablando con el cliente, se me facilitaron las cosas, pues solo pueden darse dos casos:
Entidad 1: Usa solo Moneda1 y Moneda2
Entidad 2: Usa solo Moneda3 y Moneda4

Lo resolvi usando alias en la instruccion SQL, es decir:

Para el caso 1 uso: SELECT ...., Mon1 as M1, Mon2 as M2, ...

Para el caso 2 uso: SELECT ...., Mon3 as M1, Mon4 as M2, ...

Y despues en el Reporte pongo M1 y M2, y en el evento BeforePrint cambio las etiquetas respectivas

Es una solucion sencilla, pero funciona  :D



  • 0




IP.Board spam blocked by CleanTalk.