Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Imprimir con QRDBText un cero cuando el valor es nulo (https://www.clubdelphi.com/foros/showthread.php?t=25772)

ISKANDAR 03-10-2005 20:58:25

Imprimir con QRDBText un cero cuando el valor es nulo
 
Hola a todos! Hace tanto tiempo que no me conecto. Lo que me trae al foro el día de hoy es el siguiente subterfugio que se me presentó. Quizá sea una tontería, pero casi no trabajo con impresiones, generalmente lo hago con interfaces por pantalla. Busqué en el foro, pero es muy difícil escontrar un hilo, puesto que los títulos son vagos al extremo.
Tengo una planilla inundada de QRDBText, que forman una matriz. Reflejan el resultado de un JOIN bastante importante, cuyas columnas son en un 90% numéricas con valores enteros de uno (dos dígitos en casos excepcionales). El usuario quiere que en la planilla, cuando no hay valores figure un cero (0), y no un espacio en blanco (como me sucede). Cómo puedo hacer para que cuando el valor del datafield de un QRDBText sea NULL, dicho componente me muestre un cero? Desde ya muchas gracias por su tiempo.

lucasarts_18 03-10-2005 21:07:38

Hola:

Función VarisNull.

Un ejemplo sencillo:

Código Delphi [-]
 
 If VarisNull(Dataset.Field[0]) then
ó
Código Delphi [-]
 
 if Dataset.field[0] = null then

en tu caso

Código Delphi [-]
 if QRDBText = null then
ó
Código Delphi [-]
 if VarisNull(QRDBText ) then


;)

vtdeleon 03-10-2005 21:08:30

Saludos

Este tiene una propiedad Mask y "creo" que dando el valor de ###,##0.00 se consigue lo que dices

Caro 03-10-2005 21:19:03

En vez de usar un QRDBText podrias usar QRExpr que es donde manejar varias expresiones, ahi tendrias que hacer una condicional

propiedad express->IF(table.campo=NULL,'0',table.campo), si es nulo te muestra 0 y si te muestra la informacion de dicho campo.

ISKANDAR 03-10-2005 21:19:16

Hola, probé las soluciones de lucasarts_18 pero ninguna solucionaba realmente el problema. Luego intenté un enfonque muy similar al que encontré por parte de vtdeleon cuando entré a comentar que lo había resuelto. Jejeje, debo estar medio dormido, porque no se me ocurrió esto antes. En los campos del Dataset coloqué '#0' en la propiedad DisplayFormat. Gracias a uds. por su tiempo.
Saludos

lucasarts_18 03-10-2005 21:29:02

Hola:

Alguien sabe que hace el caracter #

Saludos..

ISKANDAR 03-10-2005 21:41:25

En su funcionamiento básico, el caracter '#' es similar a la función Chr(). Según el ejemplo citado en la ayuda de Delphi, si escribes esto de esta manera: #89#111#117 obtendrás como resultado el string 'You'.

ContraVeneno 03-10-2005 23:03:52

Cosa totalmente distinta a como este funciona cuando lo utilizas en un mask o en format, el cuál indica que en esa posición debe de ir un dígito. (Que es como lo esta utilizando vtdeleon).

ISKANDAR 03-10-2005 23:06:12

Si, es obvio que no es lo mismo, pero es resultado si. Igual, no me funcionó para todas las líneas del detalle; pero después probe usando el QRExpr y funcionó muy bien.

ISKANDAR 03-10-2005 23:08:06

AHHHHHHHHHHHHHH ahora caigo, jajajajaja, te referías al carcater '#' en el mask, jejeje. Yo hablaba de otra cosa de la solución al problemita. Coincidimos en lo que dices ContraVeneno. Saludos


La franja horaria es GMT +2. Ahora son las 02:35:43.

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