Wenn Sie in einigen Berichten eine Aggregatsteuerung verwenden, würden Sie lieber ein leeres Feld anstelle von 0 sehen. Es scheint keine Möglichkeit zu bestehen, dies automatisch zu tun. Hat jemand einen Weg dies zu tun? Beachten Sie, dass Sie den Wert "0" für das Feld beibehalten möchten, wenn Sie exportieren, aber beim Rendern in PDF oder HTML ein Leerzeichen anzeigen möchten.Anzeige von Leerzeichen anstelle von 0 oder 0.0 in einem BIRT-Bericht
Antwort
Nur ein FYI, nachdem ich damit eine Weile länger gearbeitet habe, habe ich festgestellt, dass es einfach ist, Sichtbarkeitsregeln zu verwenden. Der große Vorteil ist, dass Sie verschiedene Sichtbarkeit für verschiedene Ausgabeformate leicht konfigurieren können. Für PDF ist es am besten, Leerzeichen zu verwenden, aber für Excel möchten Sie vielleicht die 0-Werte.
Es gibt eine Reihe von Möglichkeiten, dies zu lösen. Die beiden primären bestehen darin, entweder Sichtbarkeitsregeln oder Hervorhebungen zu verwenden, um eine bedingte Formatierung zu erstellen. Die Sichtbarkeit ist besonders attraktiv, da es einfach ist, die Formatregeln nur auf bestimmte Ausgabetypen (z. B. HTML) anzuwenden.
Für diesen speziellen Fall gibt es zwei Probleme mit diesen Ansätzen. Zuerst möchte ich eine allgemeine Lösung, bei der ich die Textfarbe nicht angeben muss. Mit anderen Worten, wenn die Bedingung wahr ist (Wert 0), möchte ich, dass meine Textfarbe mit der Hintergrundfarbe übereinstimmt. Auf diese Weise funktioniert der Code immer noch, wenn jemand die backgroundColor für das Steuerelement ändert.
Das andere Problem ist, dass in diesem Fall bin dynamische Spaltenbindung verwenden, die Wert Lookup nicht unterstützt.
Die Lösung, die ich erstellte, war, eine JavaScript-Funktion namens hideMe hinzuzufügen, wie unten gezeigt.
function hideText (dataControl){
if (dataControl.getValue() == 0) {
var color = dataControl.getStyle().getBackgroundColor();
var parentItem = dataControl.getParent();
do {
if (color == null && parentItem != null) {
color = parentItem.getStyle().getBackgroundColor();
parentItem = parentItem.getParent();
} else {
break;
}
} while (color == null);
dataControl.getStyle().color = color;
}
}
Sobald diese Funktion dem Bericht hinzugefügt wurde (in meinem Fall eine Javascript-Datei enthalten) Ich nenne es einfach aus dem OnCreate Methode der Steuerung.
Dies kann auch mithilfe von Java Event Handlern erfolgen, aber diese Methode scheint einfacher zu sein.
- 1. Anzeige "00" anstelle von "0" in einem NumericUpDown-Steuerelement
- 2. Java (0/0) und (0/0.0) Ausgabevergleich
- 3. cout prints „-0“ anstelle von „0“
- 4. Riesige Leerzeichen anstelle von regulären Leerzeichen werden eingefügt
- 5. Warum TimeSpan.CompareTo() anstelle von < > oder =
- 6. Return 0 1 anstelle von Datenwerten
- 7. Einfügen von Leerzeichen anstelle von Tabs in ALLE Dateien
- 8. C++ Unterschied zwischen 0 und 0.0
- 9. Kulturspezifisches Äquivalent von ToString ("0.0 ##")
- 10. Angularjs $ Dokument [0] .activeElement anstelle von $ document.activeElement
- 11. Warum erscheinen Quadrate anstelle von Leerzeichen in meinem HTML?
- 12. Yii2 Anzeige Dateiliste anstelle von Projekt
- 13. Anzeige von Datenbankdaten in einem Tabellenlayout oder in Textansichten
- 14. Anzeige Enum in ComboBox mit Leerzeichen
- 15. Html Eingabesteuerung für Passwörter - keine Anzahl von Zeichen getippt oder Leerzeichen anstelle von Punkten zeigen
- 16. BYTE-Puffer (0-255) in Fließkomma-Puffer konvertieren (0.0-1.0)
- 17. Konvertieren eines [0-255] Ganzzahlbereichs in einen [0.0-1.0] Gleitkommabereich
- 18. Fehlerbild von einem Gridview-Anzeige
- 19. Einrücken mit Registerkarten anstelle von Leerzeichen in XML
- 20. Leerzeichen anstelle von TAB in Emacs Viper-Modus
- 21. Anzeige von Fehler oder Alarmmeldung in Laravel
- 22. Anzeige der Tabellennamen in einer Select-Anweisung anstelle von IDs
- 23. Warum Javascript verwenden: void (0) anstelle von # in href?
- 24. Wert 0 oder 1 von count() von XSL-Nodesätzen erhalten
- 25. Anzeige von Fehler-/Erfolgsmeldungen in einem Eingabefeld
- 26. Emacs: Anzeige Leerzeichen/Registerkarte Symbole
- 27. PDcurses Anzeige von Fragezeichen anstelle des beabsichtigten Zeichens
- 28. Trimmen von Leerzeichen in Dart Strings von Anfang oder Ende
- 29. HTML5 Nummerneingabe - Anzeige als Prozentsatz anstelle von dezimalen
- 30. Anzeige von Daten in einem Textfeld
Ja: Ich habe meine Meinung geändert. –