Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Ocultar contenido de un QRDBText en Quickreport (https://www.clubdelphi.com/foros/showthread.php?t=79096)

Oscar Guzmán 07-06-2012 03:29:54

Ocultar contenido de un QRDBText en Quickreport
 
Hola a todos y gracias de antemano por su ayuda. También quisiera decir que he buscado bastante en internet y en todo el foro de impresión de ClubDelphi pero no encuentro como podría colocar un cero en un QRDBText cuando el valor que se va a mostrar es negativo, digamos: -3.200,00., es decir, que si tengo una columna de valores positivos y viene desde la tabla un valor negativo quisiera cambiarlo por un cero de forma que no me reste los valores positivos. He tratado de hacerlo a través de "BeforePrint" utilizando el evento "Hide" y otras cosas pero no logro que se cambie el valor que viene desde la tabla de datos. Agradecería cualquier dato que pudieran aportar para éste problemilla.

Caral 07-06-2012 03:52:47

Hola
En ese evento tienes que crear una variable que se llene con el valor que te presentara la consulta, una vez que lo tengas simplemente creas una condición con if y se mostrara o no dependiendo de la misma.
Saludos

Oscar Guzmán 07-06-2012 05:55:34

Hola Caral, gracias por responder...
En base a lo que me indicaste estoy trantando de guardar en una variable el contenido del query dentro de una variable pero en todo caso como le indicaría de acuerdo al if que en el qrdbtext tiene que mostrarse un cero y no el valor negativo que venía originalmente?

marcoszorrilla 07-06-2012 06:51:17

Otra opción sería crear un campo calculado con la condición que indicas.

Un Saludo.

Oscar Guzmán 07-06-2012 15:30:32

Gracias Marcos, pero como creo un campo calculado, disculpa

Oscar Guzmán 07-06-2012 15:35:18

Disculpa Marcos, ya me acordé de como son los campos calculados, voy a intentar y confirmo aquí la solución, gracias de nuevo

MartinS 07-06-2012 15:51:32

Me parece buena la opcion de Marcos.

Otra mas simple seria que en vez de usar un QrDbText uses un QrLabel y le pasas el valor en el evento que indicas antes de imprimir de modo que:

Código Delphi [-]
    If TuConsulta.FieldByName('Saldo').AsCurrency < 0 then
      Qrlabel.Caption := '$ 0,00' else
      QrLabel.Caption := CurrToStr(TuConsulta.FieldByName('Saldo').ASCurrency);

Saludos.-

Perdon: Supuse que la consulta daba un solo registro. Me quedo con la opcion de Marcos

Oscar Guzmán 08-06-2012 22:05:27

A Martins gracias, por que aunque efectivamente no es un solo valor que muestra sino una columna de valores que al final tengo que sumar igual vale tu tiempo y ayuda, gracias.

A Marcos, al final utilicé CASE para los campos ya que con los campos calculados no me estaba funcionando bien, pero gracias a todos por su tiempo y aquí coloco el CASE para un de los campos que tengo que validar y consecuencia alterar el QRDBText.

Código:

Case when Monto > 0 then Monto Else 0 end as ttotal

marcoszorrilla 09-06-2012 13:22:51

Está mejor con Case, lo que sucede y por eso no lo cité es que por ejemplo en Paradox no existe y al no mencionar el motor opté por el campo calculado que funciona en todos los motores.

Un Saludo.


La franja horaria es GMT +2. Ahora son las 22:33:49.

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