PDA

Ver la Versión Completa : Imprimir con QRDBText un cero cuando el valor es nulo


ISKANDAR
03-10-2005, 20:58:25
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:


If VarisNull(Dataset.Field[0]) then

ó

if Dataset.field[0] = null then


en tu caso


if QRDBText = null then

ó

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