FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
Yo trabajando con Oracle, lo haría desde la consulta:
Código:
SELECT NVL(MATRICULA, LOCALIDAD) CAMPO1 FROM TABLA Código:
procedure TQuickRpt.QRDBText1Print(sender: TObject; var Value: String); begin if Value = '' Then Value := Query1.FieldByName('LOCALIDAD').AsString; end;
__________________
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. |
#3
|
||||
|
||||
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 |
#4
|
|||
|
|||
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 |
#5
|
|||
|
|||
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. |
#6
|
|||
|
|||
Cita:
Pero si lo quieres comparar a blanco, no te queda más remedio que utilizar las comillas |
|
|
|