Laden...

MS Reporting Services: Tabelle über mehrere Seiten

Erstellt von bSharp vor 13 Jahren Letzter Beitrag vor 10 Jahren 3.665 Views
B
bSharp Themenstarter:in
48 Beiträge seit 2010
vor 13 Jahren
MS Reporting Services: Tabelle über mehrere Seiten

Technik: Visual Studio 2008, Microsoft-Reporting Services mit lokalen rdlc-Reports und dem ReportViewer

Hallo zusammen.

Sagen wir eine Tabelle beginnt eigentlich in der mitte einer Seite und hat so wenige Einträge, dass sie auf eine einzelne Seite in der Druckvorschau passt: Dann entscheidet sich die Render-Engine leider dazu die Tabelle komplett auf die nächste Seite in meinem Ausdruck zu verschieben. Sind es ZU VIELE Einträge für eine einzelne DIN-A4 Seite bemerkt der Renderer dies und beginnt die Tabelle in der Mitte der anfangs erwähnten Seite zu zeichnen: Seitenumbrüche müssen in dem Fall sowieso akzeptiert werden wegen der Menge der Einträge.

Ich möchte keine Lücken. Es wäre mir sehr willkommen das die Tabelleneinträge über mehrere Seiten im Ausdruck gestreckt werden. Wie also kann ich dem Renderer mitteilen, dass er derartige "Optimierungen" am Layout nicht vornehmen soll?

(Die Einstellungen "Tabelle möglichst auf eine einzelne Seite anpassen" bzw "KeepTogether" sind nicht aktiviert)

Danke und schönes Wochenende

3.728 Beiträge seit 2005
vor 13 Jahren
RDLC ist eigensinnig

Hallo bSharp,

soweit mir bekannt ist, gibt es keine Möglichkeit die Umbrüche bei Tabellen sinnvoll zu steuern, außer den von dir bereits erwähnten Einstellungen. Das ist ein großes Manko von RDLC. Bei mehrzeiligem Tabellenlayout (also mehr als eine Zeile pro Datensatz) ist das besonders übel. RDCL noch mehr Probleme. Zum Beispiel kann man den Seitenkopf nicht sinnvoll ausblenden, weil der Platz dafür trotzdem freigelassen wird.

Am Ende ist RDLC aber trotz dieser "Bugs" um Welten besser als Crystal Reports.

Du kannst also entweder damit leben, oder Dir eine eigene Rendering-Erweiterung schreiben, die solche Bugs nicht hat (Aufwändig, aber möglich). Oder Du besorgst Dir eine andere Reporting-Engine. Dafür wirst Du aber harte Euros auf den virtuellen Ladentisch legen müssen.

WPF bringt zwar Print-Unterstützung mit FixedDocument und FlowDocument mit, aber das kann nicht als einsetzbare fertige Reporting-Lösung bezeichnet werden. Das ist momentan eher noch ein loser Werkzeughaufen und paar nicht entkratete Schrauben.

Also ist RDLC immer noch das kleinere Übel. Die Enduser müssen wohl lernen, dass sie gedanklich nicht von Word ausgehen sollten, wenn es um Berichte geht.

1.552 Beiträge seit 2010
vor 13 Jahren

Hallo bSharp,

da ich dasselbe Problem hatte, habe ich mich entschlossen aufbauend auf FixedDocument einige Klassen zu schreiben die genau dies machen. Halte die Augen offen, ich werde diesbezüglich in der nächsten Woche im Thema Drucken: Rechnungen / Lieferscheine meine dll dazu Posten.

Gruß Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

1.820 Beiträge seit 2005
vor 10 Jahren

Hallo!

Ich hatte letztens dasselbe Problem, und habe zumindest für einen bestimmten Fall eine Lösung:
Wenn man genau weis, wieviele Zeilen man noch Platz hat, erstellt man eine neue Liste, verschiebt die Tabelle in diese Liste und erstellt dann für die Liste eine Gruppierung mit folgendem Ausdruck

=iif(RowNumber(Nothing)<=39,1,2)

Die 39 ist in diesem Fall die Anzahl der Zeichen. Bei der Gruppierung muss dann aber auch noch "Insert Page break after" aktiviert sein.

Nobody is perfect. I'm sad, i'm not nobody 🙁