FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
¿Cómo validar campos vacíos en ReportBuilder?
Que tal
Estoy utilizando reportBuilder 10.08 y tengo un reporte con algunos elementos que tienen imágenes. El detalle es que no todos los elementos tienen imágenes y quería, en esos casos, que no aparezca el componente de la imagen. Un simple "DBImage.Visible := False;". El problema es que no se como verificar si el campo imagen (que es un BLOB de Firebird 2.1) viene vacío o viene con datos. Ya probe con nil, con null, transformandolo a cadena y nada más no le encuentro como validarlo. La misma consulta en el IBExpert me dice que el campo está como NULL, pero ReportBuilder no me dice nada. Código:
{if DatoBLOB['Imagen'] = nil then begin --no hace nada} {if DatoBLOB['Imagen'] = NULL then begin --no hace nada} {if DatoBLOB['Imagen'] = '' then begin --no hace nada} DBImage1.Visible := False; end else begin DBImage1.Visible := True; end;
__________________
|
#2
|
||||
|
||||
Pero si está vacío no saldrá nada, no hace falta ponerlo invisible, no?
|
#3
|
||||
|
||||
EL problema es mas que nada en el espacio. Si no hay imagen, queda un espacio en blanco al momento de imprimirse, cosa que quiero evitar.
Si no hay imagen, todos los renglones aparecen juntos, si hay imagen, el siguiente renglón se recorre un poco. Lo mismo sería cambiar la propiedad "Height" ya sea del componente imagen o de la banda detalle. El problema es que no puedo hacer que funcione la condición para validar si el campo blob es NULL o viene con datos.
__________________
|
#4
|
||||
|
||||
Creo recordar que puedes pinchar con el botón derecho encima y seleccionar "mover relativo a..." y le dices el componente que está por encima, entonces no aparecerá ni ocupará el espacio.
|
#5
|
||||
|
||||
Precisamente esa opción es la que he utilizado siempre, para cuadros de texto, para memos, etc. Pero curiosamente el componente DBImage no lo tiene; o al menos yo no lo veo.
__________________
|
#6
|
||||
|
||||
Es que aunque lo pongas invisible te seguirá ocupando el espacio.
Si está en una "banda" entonces puedes ocultar la banda. Voy a ver si tengo alguna copia por aquí de informes con alguna imagen... a ver... |
#7
|
||||
|
||||
es que en las pruebas que estoy haciendo, el poner invisible el componente DBImage, hace que todos los renglones aparezcan correctos, sin espacio en blanco. Por eso intento ponerlo invisible. El problema es la condición nunca cambia, siempre me pone todo en "True", o si lo invierto, me lo pone todo en "False".
No logro hacer que la condición se cumpla como debe.
__________________
|
#8
|
||||
|
||||
A mí me funciona correctamente del modo esperado.
En el beforeprint del header, donde tengo puesto el logo de la empresa, he puesto: Código:
if Tbempresas['Logotipo'] = null then dbimage1.visible := false; |
#9
|
||||
|
||||
changos... ¿y tons por qué a mi no?... tengo eso mismo en el BeforePrint de la banda Detalle.
Código:
if DatoBLOB['Imagen'] = NULL then begin DBImage1.Visible := False; end else begin DBImage1.Visible := True; end; ¿tendrás el RTM disponible?
__________________
Última edición por ContraVeneno fecha: 16-03-2011 a las 01:37:18. |
#10
|
||||
|
||||
Te sobra el punto y coma después de false;
Código:
if DatoBLOB['Imagen' = null then DBImage1.visible := false <-- se te ha colado un ; ahí else DBImage1.visible := true; |
#11
|
||||
|
||||
Lo he probado con paréntesis y cambiando el "=null" por "is null" y funciona también.
Código:
if (DatoBLOB['Imagen'] is null) then DBImage1.visible := false else DBImage1.visible := true; |
#12
|
||||
|
||||
pues no tengo ni la más mínima idea de porque no me quiere funcionar ninguna de las opciones que me das... a final de cuentas he hecho lo mismo, pero diferente. Tengo un campo ID numérico para registrar la imagen y me he basado en ese campo para hacer funcionar la condición:
Código:
{este dato es entero, si es null viene en blanco, pero puedo revisar que traiga valor} if Datos['ID'] > 0 then begin DBImage1.Visible := True; end else begin DBImage1.Visible := False; end; Muchas gracias por tu tiempo maese Casimiro.
__________________
|
#13
|
||||
|
||||
Pues no sé, es posible que esa versión tenga algún bug al respecto, ya te digo, yo tengo una versión de hace por lo menos 12 años y funciona
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
erro con campos vacios en el dbgrid | DarkBlue | OOP | 5 | 12-01-2011 21:33:49 |
Comprobar campos vacios o con espacios... | Greco | Varios | 4 | 21-09-2007 03:57:11 |
crear mensaje para guardar con campos vacios formularios | redimido | OOP | 1 | 06-08-2007 20:31:12 |
consultar campos vacios | noe | SQL | 1 | 21-03-2005 17:35:42 |
Hola Como estan Todos? Validar Campos | edwin1 | OOP | 1 | 03-09-2003 19:54:11 |
|