Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-03-2011
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿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;
¿Alguien sabrá como verificar el contenido de un campo BLOB en reportbuilder?
__________________

Responder Con Cita
  #2  
Antiguo 15-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero si está vacío no saldrá nada, no hace falta ponerlo invisible, no?
Responder Con Cita
  #3  
Antiguo 15-03-2011
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
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.
__________________

Responder Con Cita
  #4  
Antiguo 15-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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.
Responder Con Cita
  #5  
Antiguo 15-03-2011
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
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.
__________________

Responder Con Cita
  #6  
Antiguo 15-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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...
Responder Con Cita
  #7  
Antiguo 15-03-2011
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
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.
__________________

Responder Con Cita
  #8  
Antiguo 15-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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;
Y funciona bien.
Responder Con Cita
  #9  
Antiguo 15-03-2011
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
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;
Pero siempre se va por lado "falso" y me muestra siempre el cuadro de la imagen, a pesar de que el valor del campo es null.

¿tendrás el RTM disponible?
__________________


Última edición por ContraVeneno fecha: 16-03-2011 a las 01:37:18.
Responder Con Cita
  #10  
Antiguo 15-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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;
Edito: ya me he dado cuenta que lo has puesto entre "begin" y "end", así que no es por eso
Responder Con Cita
  #11  
Antiguo 15-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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;
Si quieres el .rtm te lo paso, aunque yo tengo un RB versión 3.xx
Responder Con Cita
  #12  
Antiguo 16-03-2011
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
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;
con esto sí me funciona como quiero... mañana seguiré indagando para ver porque con el campo BLOB no hace nada...

Muchas gracias por tu tiempo maese Casimiro.
__________________

Responder Con Cita
  #13  
Antiguo 16-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 14:17:35.


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
Copyright 1996-2007 Club Delphi