30. Juni 2017 13:59
Die Gründe, warum ein RDLC-Bericht Elemente oder Abschnitte an völlig unerwarteten Stellen druckt, sind so individuell, dass sie kaum aufzuzählen sind.
Meistens waren es Textboxen, die sich überlappt haben (exakt aufeinander/gleich groß und Rand an Rand geht aber ...).
Wenn das nichts half, gruppierte man Elemente in einem neuen Rectangle, und schon hielt wieder alles hübsch zusammen.
Heute aber hatte ich diesen Fall vor mir liegen:
Vorschoben.JPG
Das Layout hat keinen Seitenrand definiert, dafür befand sich im Body eine Liste, die ebenso weit nach rechts platziert war wie Textboxen der Fußzeile.
Wurde nun ein Bild zum Layout hinzugefügt (grün), verschob sich plötzlich der ganze Block links über den Blattrand hinaus, während der Fuß korrekt blieb. Gleichzeitig wurde eine
erste leere Seite (aber mit Fußdaten) hinzugefügt.
In einem anderen, ähnlichen Fall sah die erste Seite völlig korrekt aus, dafür gab es
zweite, leere Seite (mit Fuß). Gleiches Problem: nur wenn das Bild oben angedruckt wurde ...
Was also war los mit dem grünen Bild, der PictureBox?Nun, es hatte einen Wert in
PaddingRight. (Ein von uns zur Laufzeit berechneter Wert.)
Und zwar um 1 Pixel zu viel! "Zu viel als was?"
Berechnet wurde der PaddingRight-Wert aus: Seitenbreite minus x-Pos PicturePox minus Breite des Bildes(*) = 508 - 400 - 25 = 83.
Als ich das PaddingRight um 1 Pixel reduzierte, verhielt sich der Report wieder wie erwartet.
Bei Textboxen macht die erstgenannte Formel übrigens keine Probleme.
(*) Die Breite der PictureBox (und auch die der Textboxen) kann nicht dynamisch geändert werden. Stattdessen hat sie fix die maximale Breite, und über PaddingRight machen wir sie "optisch kleiner"
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.