![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
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 21: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 |
![]() |
|
|
|