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;) |
Yo trabajando con Oracle, lo haría desde la consulta:
Código:
SELECT NVL(MATRICULA, LOCALIDAD) CAMPO1 Código:
procedure TQuickRpt.QRDBText1Print(sender: TObject; var Value: String); |
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 |
tambien podría utilizar un case en la sentencia SQL (estilo a lo que comenta d.c.a)
Código:
select campo1, campo2,..., |
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. ;) |
Cita:
Pero si lo quieres comparar a blanco, no te queda más remedio que utilizar las comillas |
La franja horaria es GMT +2. Ahora son las 11:42:28. |
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