SSRS 2005 mit Matrix und Liste zeigt leere Seite zwischen jeder Datenseite beim Drucken oder Exportieren in PDF

8

Ich benutze SQL Server Reporting Services 2005 - Ich habe einen Portrait-A4-Bericht erstellt.

Der Bericht besteht aus einer Kopfzeile, einem Text und einer Fußzeile.

Der Textkörper besteht aus einer Anzahl von Textfeldern in einem 2-Spalten-Layout und darunter befindet sich eine Matrix, die auf einer Liste platziert ist.

Die Matrix besteht aus 2 festen Zeilen (mit 1 festen Textspalte in der oberen Zeile und 2 Datensatzfeldspalten in der unteren Reihe) und einer Anzahl von Spalten (jede mit einer Breite von 0,875 Zoll und Daten aus verschiedenen Datensatzfeldern) ). Ich verwende den Gruppenausdruck = Ceiling (RowNumber (Nothing) / 5) in der Liste, damit die Matrixspalten alle 5 wiederholten Spalten unter den vorherigen beginnen.

Das Problem, auf das ich stoße, ist, dass eine leere Seite (mit nur Kopf- und Fußzeile) zwischen jeder Seite der Berichtsdaten erscheint, wenn ich den Bericht nach PDF exportiere oder physisch drucke, wenn die Matrix mehr als eine Seite von Daten umfasst . Es gibt viel Platz für die Spalten der Matrix auf der Seite. Ich habe folgendes versucht, aber ohne Erfolg:

1) Ich habe überprüft, dass Seitenbreite (8.5in) & gt; = Körperbreite (7.20833in) + Linker Rand (0) + Rechter Rand (0)

2) Ich habe überprüft, dass die Seitenhöhe (11in) & gt; = Page.TopMargin (0) + Header.Height (2in) + Body.Height (6.60417in) + Footer.Height (0.89583in) + Page.BottomMargin ( 0)

3) Ich habe mit verschiedenen Randwerten gespielt, die von 0 bis 0,5 Zoll für den linken, rechten, oberen und unteren Rand reichen.

4) Ich setze die CanGrow-Eigenschaft aller Textfelder auf false. Dies hat auch den unerwünschten Effekt, den Text auszuschneiden, wenn es nicht passt, aber dennoch tritt das Problem mit der leeren Seite immer noch auf.

5) Ich habe die Liste und die Matrix in einem Rechteck mit dem Leerzeichen (rechts neben der Matrix) außerhalb des Rechtecks ​​angeordnet.

Das Erscheinen der leeren Seiten wird nur dadurch verhindert, dass der Listengruppierungsausdruck in = Ceiling (RowNumber (Nothing) / 2) geändert wird, dh die Matrix alle zwei wiederholten Spalten eine neue "Tabelle" startet (statt 5) . Dies verstehe ich jedoch nicht, da es zu ihrer Rechten 3 Spalten gibt, und es ist komisch und unordentlich, nur 2 zu setzen!

Ich würde jede Hilfe hier sehr schätzen! Danke im Voraus! Tim

    
TMM 12.01.2010, 15:30
quelle

2 Antworten

11

Für jeden, der in SSRS 2008 ein ähnliches Problem hat, fand ich die einzige Möglichkeit, dies zu beheben, indem ich die Eigenschaft ConsumeContainerWhitespace im Bericht selbst auf true setzte.

In meinem Fall war das Problem, dass die Matrix auf der Seite im Design-Modus schmal war, mit vielen Leerzeichen auf der rechten Seite. Beim Rendern wurde die Matrix (aufgrund der Daten) viel breiter dargestellt, aber der Renderer würde auch den Leerraum enthalten, was dazu führen würde, dass der Bericht viel breiter als die tatsächliche Seite wäre.

Wenn Sie diese Eigenschaft festlegen, wird das zusätzliche Leerzeichen nicht gerendert.

    
Nicholas Roeder 16.03.2011 15:19
quelle
0

Wenn ich Sie richtig verstanden habe, habe ich dieses Problem vorher gelöst. Die Matrix beansprucht zusätzlichen Leerraum, die von mir verwendete Lösung ist wie folgt:

Sie müssen den Leerraum verbrauchen.

[------- Seitenbreite ------]
[matrix] [- textbox hack -]

Ich denke, Sie können das Textfeld so einstellen, dass es unsichtbar ist

Hinweis: Als ich dies 2005 versuchte, funktionierte es nur, wenn das unsichtbare Textfeld die gesamte Zeile überspannte.

    
KCD 22.11.2010 22:48
quelle