Domanda

Ho una situazione nel reporting BIRT. Un rapporto che ho creato insiste per la visualizzazione di alcuni campi come vuoto piuttosto che zero. La situazione si verifica quando il campo è in realtà un sub-SELECT che non restituisce alcuna riga.

Così, per esempio, se la selezione include:

0 as p3,

poi il 0 viene visualizzato bene. Se, tuttavia, il SELECT ha:

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

il campo sta visualizzando vuoto.

Modifica dei dati in modo che esistano righe per i risultati sub-select in un essere valore visualizzato, anche se il loro valore risultante è zero .

Così sto pensando che in qualche modo BIRT sta trattando un sub-selezionare il ritorno zero righe come un NULL (che mostra anche come una cella vuota), piuttosto che uno zero. Qualcuno ha qualche idea di come costringere BIRT nella visualizzazione di un vero e proprio 0 piuttosto che una cella vuota?

Sto usando DB2 / z v8 se necessario a chiunque di inviare una risposta DBMS specifico, anche se i suggerimenti anche sulla base di altri fornitori sarebbe apprezzato.

È stato utile?

Soluzione

Provare a utilizzare la funzione COALESCE per forzare un valore quando una colonna o un'espressione potrebbero restituire NULL.

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

Altri suggerimenti

Un altro modo, anche se non così elegante, ma a volte necessario (ad esempio, se il vostro sono in esecuzione un procedue memorizzata che si non può cambiare), sarebbe quella di utilizzare JavaScript per forzare la visualizzazione di "0" in fase di esecuzione tempo.

Utilizza la seguente espressione per i dati binding:

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

A seconda del tipo di dati che potrebbe essere necessario aggiungere le citazioni allo zero

"0"

per rappresentare le stringhe, senza virgolette viene trattato come un intero.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top