Manchmal ist es erforderlich, dass in einem Bericht mehrere Male dieselben Informationen angezeigt werden. Dies kann in Berichten erforderlich sein, die gedruckt werden sollen, z. B. Rechnungen, Visitenkarten, Ankündigungen, Einladungen usw.
Früher war es keine triviale Aufgabe. Ich musste ein Berichtsskript verwenden, um das Anzahl des Bands zu erhöhen. Zum Beispiel so:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class ReportScript { int i = 0; int count = 3; private void PageHeader1_AfterPrint(object sender, EventArgs e) { for (int i = 0; i < count - 1 ; i++) Engine.ShowBand(Data1); } private void Data1_BeforePrint(object sender, EventArgs e) { if (i == count) Data1.Visible = false; } } |
Hier mussten wir zwei Ereignisbearbeiter verwenden. Zuerst, nach der Anzeige des Überschriftsbands, vor der Anzeige des Datenbands muss man die gewünschte Anzahl von Datenbänder generieren. Dann muss man überprüfen, ob die gewünschte Anzahl von Bands erreicht wurde, bevor die Datenbänder angezeigt werden.
Diese Option ist ganz praktikabel, erfordert aber, dass der Berichtsentwickler gute Kenntnisse über den Betrieb der Generator-Engine hat, um zu verstehen, wie die Bänder auf der Seite und einige Programmierkenntnisse angezeigt werden. All dies wirft dem Entwickler Beschränkungen auf.
Ab Version 19.3.4 gibt es nun eine «festangestellte» Lösung für dieses Problem – die RepeatBandNTimes-Eigenschaft für das Band. Sie stellen einfach die gewünschte Anzahl der auszugebenden Kopien des Bands ein.
Am Ende bekommen wir das gleiche Ergebnis wie mit dem Skript:
Es ist schön, dass der Berichtsgenerator immer bequemer wird und den Berichtsentwickler nicht mit unnötiger Arbeit belastet.