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 17-10-2003
kia kia is offline
Miembro
 
Registrado: jul 2003
Posts: 78
Poder: 22
kia Va por buen camino
Question Evitar listados con Campos en blanco?

Hola foristas.
Utilizo D5 - QuickReport y SQL de novata.
Vereis tengo una tabla con 6 campos, y un listado con 5 de los campos de la tabla y va bien.

En el listado uno de esos campos es 'Matricula' pero hay registros que no tienen matricula, y quisiera que :
Cuando la Matricula sea =' ' sea sustituida por el valor del campo 6 de la tabla que se llama 'Localidad'.
Conseguiria evitar huecos en los listados, no tendria que comprimir.
Se puede conseguir? Gracias Kia
__________________
Nadie nace enseñado, pide y se te dara.
Responder Con Cita
  #2  
Antiguo 17-10-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.954
Poder: 27
delphi.com.ar Va camino a la fama
Yo trabajando con Oracle, lo haría desde la consulta:
Código:
SELECT NVL(MATRICULA, LOCALIDAD) CAMPO1
FROM TABLA
... si en el motor en que trabajas no tienes una función como esta (SqlServer= ISNULL, Access= NZ), puedes hacerlo en el evento OnPrint del QRDBText:
Código:
procedure TQuickRpt.QRDBText1Print(sender: TObject; var Value: String);
begin
  if Value = '' Then
    Value := Query1.FieldByName('LOCALIDAD').AsString;
end;
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 17-10-2003 a las 22:59:25.
Responder Con Cita
  #3  
Antiguo 17-10-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Una solución podría ser agregar un campo calculado al dataset con que alimentes el reporte. En el evento OnCalcFields del dataset pones el valor del nuevo campo al de localidad o maticula dependiendo de si matricula está o no en blanco.

// Saludos
Responder Con Cita
  #4  
Antiguo 18-10-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
tambien podría utilizar un case en la sentencia SQL (estilo a lo que comenta d.c.a)

Código:
select campo1, campo2,..., 
               case when MATRICULA <> '' then MATRICULA
                    else LOCALIDAD
               end
from tabla
where condiciones
si el motor de BD lo soporta, claro
Responder Con Cita
  #5  
Antiguo 18-10-2003
kia kia is offline
Miembro
 
Registrado: jul 2003
Posts: 78
Poder: 22
kia Va por buen camino
Hola de nuevo.
Gracias por las respuestas.
He probado las dos soluciones y por aquello de no estar al nivel los campos calculados no he llegado todavia. pero llegare.
He tenido que hacerlo asi:
// QREXpr10---es el Campo LOCALIDAD

procedure TI_movil.QRExpr10Print(sender: TObject; var Value: String);
begin
if (Value <> '') and (Query1MATRICULA.Value<>'')Then
Value := Query1.FieldByName('MATRICULA').AsString;
end;

De la solucion vuestra.
No reconoce el campo en blanco, solo me funciona cuando sustituyo el campò localidad y por que siempre tiene un valor.
Hay alguna manera de decirle que el campo es nulo o en blanco sin emplear las ''.
Salu2. y Merci Kia.
__________________
Nadie nace enseñado, pide y se te dara.
Responder Con Cita
  #6  
Antiguo 18-10-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Posteado originalmente por kia
Hay alguna manera de decirle que el campo es nulo o en blanco sin emplear las ''.
Query1.FieldByName('campo').IsNull

Pero si lo quieres comparar a blanco, no te queda más remedio que utilizar las comillas
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


La franja horaria es GMT +2. Ahora son las 01:27:22.


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