Frage

ich eine Situation, in BIRT Reporting haben. Ein Bericht, den ich erstellt beharrt auf einige Felder als leer angezeigt wird eher als Null ist. Die Situation entsteht, wenn das Feld ist eigentlich ein Unter wählen, dass die Renditen keine Zeilen.

So zum Beispiel, wenn die Select beinhaltet:

0 as p3,

dann wird die 0 in Ordnung angezeigt. Wenn jedoch die Auswahl hat:

(select sum(other_field) from other_table where ...) as p3,

das Feld leer angezeigt wird.

Ändern der Daten, so dass Zeilen existieren für die Unterauswahl ergibt einen Wert Wesen angezeigt, auch wenn ihr resultierende Wert Null .

So denke ich, dass irgendwie ist BIRT einen Behandlungsunter wählt Rückkehr null Zeilen als NULL (was es auch zeigt, wie eine leere Zelle) statt einer Null. Hat jemand eine Idee, wie man coerce BIRT in eine tatsächliche 0, anstatt eine leere Zelle angezeigt wird?

Ich bin mit DB2 / z v8, wenn jemand braucht eine DBMS-spezifische Antwort zu schreiben, obwohl sogar Vorschläge auf der Grundlage anderer Anbieter würde geschätzt.

War es hilfreich?

Lösung

Versuchen Sie, die COALESCE-Funktion mit einem Wert zu zwingen, wenn eine Spalte oder einen Ausdruck könnte NULL zurück.

COALESCE((select sum(other_field) from other_table where ...), 0) as p3,

Andere Tipps

Eine andere Möglichkeit, wenn auch nicht so elegant, aber manchmal notwendig (zB wenn Ihr eine gespeicherte procedue ausgeführt werden, dass Sie nicht ändern kann), wäre JavaScript zu verwenden, um die Anzeige zu zwingen, „0“ zur Lauf Zeit.

Verwenden Sie den folgenden Ausdruck für die Datenbindung:

if (dataSetRow["your_data_set"] == null)
{
    0
}
else
{
    dataSetRow["your_data_set"]
}

Je nach Datentyp müssen Sie möglicherweise Anführungszeichen auf die Null

hinzufügen
"0"

darstellen Strings, ohne Anführungszeichen es als Integer behandelt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top