Ich möchte ein Textfeld erstellen, das Page X of Y
enthält, ohne es in zwei Teile zu teilen, wie in der üblichen Lösung. Mein Textfeld enthält "Page " + $V{currentPage} + " of " + $V{PAGE_NUMBER}"
mit evaluationTime=auto
.
Nehmen wir an, ich habe einen Bericht mit 10 Seiten. Drei sind die Titelband , sechs sind Detailband und eines ist das Summary Band . Meine Ergebnisse zeigen "Page 0 of 10"
für die Titelband s, korrekte Zählungen für die Detailband s und "Page 0 of 10"
für die Summary Band .
Wie stellen Sie sicher, dass die Variable überall und nicht nur in Detailband berechnet wird?
Bei Jaspersoft Studio v6 oder wenn die erste Seitennummer dupliziert wird, versuchen Sie diese Lösung , die $V{MASTER_CURRENT_PAGE}
verwendet. und $V{MASTER_TOTAL_PAGE}
mit einer Evaluierungszeit von Master
.
Versuchen Sie für andere Versionen von Jaspersoft Studio die in den folgenden Unterabschnitten beschriebenen Schritte.
Erstellen Sie eine Variable wie folgt:
V_CURRENT_PAGE_NUMBER
1
$V{PAGE_NUMBER}
0
anzeigt, verwenden Sie $V{PAGE_NUMBER} + 1
. 1 of Y
anzeigt, setzen Sie Ausdruck auf $V{PAGE_NUMBER}
anstelle des Anfangswertausdrucks und lassen Sie den Anfangswertausdruck leer. Page
Diese Einstellungen sind in der folgenden Abbildung dargestellt:
Wenn Sie Ausdruck auf 1
setzen, wird verhindert, dass der Wert null
lautet. Das heißt, wenn die Fußzeile Seite null von 4 anzeigt, bedeutet dies wahrscheinlich, dass der Ausdruck nicht festgelegt wurde.
Die Variable wird erstellt.
Fügen Sie wie folgt ein Seitenfuß hinzu:
Die Fußzeile wird hinzugefügt.
Erstellen Sie ein Textfeld wie folgt:
msg("Page {0} of {1}", $V{V_CURRENT_PAGE_NUMBER}, $V{PAGE_NUMBER})
Auto
Diese Einstellungen sind in der folgenden Abbildung dargestellt:
Das einzelne Textfeld wird erstellt.
Bei einem Bericht mit drei Seiten plus einer Übersichtsseite zeigt die Vorschau des Berichts Folgendes an:
Die Übersichtsseite zeigt:
Siehe Robert Ensingers Blogpost zu diesem Thema für weitere Details.
Ich habe versucht diesen Ansatz , aber endete mit falschen Seitenzahlen: {1/7, 1 / 7 , 2/7, 3/7, 4/7, 5/7, 6/7}.
Verwenden Sie für JasperReports 6+ die Systemvariablen MASTER_CURRENT_PAGE
und MASTER_TOTAL_PAGES
und vergessen Sie nicht, die Evaluierungszeit des Textfelds auf Master
:
Siehe: Ссылка
In Bezug auf die aktuelle Seitennummer ist evaluationTime=now
und $V{PAGE_NUMBER}
Ihre Antwort.
Leider glaube ich nicht, dass Sie erreichen können, was Sie wollen, weil es einen Fehler in PAGE_COUNT gibt Wenn Split Allowed für das Detailband aktiviert ist. Sonst würden evaluationTime=now
und "Page " + $V{PAGE_NUMBER} + " of " + $V{PAGE_COUNT}"
wahrscheinlich funktionieren.
Tags und Links jasper-reports