Question

J'ai une situation dans les rapports BIRT. Un rapport que j'ai créé insiste sur l'affichage des champs vides plutôt que zéro. La situation se produit lorsque le terrain est en fait un sous-select qui renvoie aucune ligne.

Ainsi, par exemple, si la sélection comprend:

0 as p3,

alors le 0 est affiché bien. Si toutefois, la sélection a:

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

le champ affiche vide.

Modification des données afin que les lignes existent pour les résultats sous-sélection d'une valeur affichée, même si leur valeur résultante est nulle .

Alors, je pense que d'une certaine manière BIRT est le traitement d'un sous-select zéro retour de lignes comme NULL (qui affiche également une cellule vide) au lieu d'un zéro. Quelqu'un at-il une idée de contraindre BIRT dans l'affichage d'une 0 réelle plutôt que d'une cellule vide?

J'utilise v8 DB2 / z si quelqu'un a besoin d'afficher une réponse spécifique au SGBD, bien que même des suggestions basées sur d'autres fournisseurs seraient appréciés.

Était-ce utile?

La solution

Essayez d'utiliser la fonction COALESCE pour forcer une valeur quand une colonne ou une expression peut retourner NULL.

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

Autres conseils

Une autre façon, mais pas aussi élégant mais parfois nécessaire (par exemple, si vous êtes à l'exécution d'une procedue stockée ne peut pas changer), serait d'utiliser JavaScript pour forcer l'affichage de « 0 » à l'exécution temps.

Utilisez l'expression suivante pour votre liaison de données:

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

En fonction du type de données que vous pourriez avoir besoin d'ajouter des guillemets au zéro

"0"

pour représenter des chaînes, sans les guillemets, il est traité comme un entier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top