Ich möchte gerne eine Druckdokument erstellen welches immer nur eine Seite ausgibt, auch wenn der Inhalt mehr Seiten hergeben würde. Bisher ist mir das nicht gelungen.
Die Inhalte bestehen großteils aus Feldern mit Richtext, deren Länge ich erst einmal inhaltsseitig nicht begrenzen kann.
Was ich bisher versucht habe: Alle Controls auf die “Page=1” zu packen. Das klappt auch soweit dass nur eine Seite bedruckt wird. Sollte der Inhalt aber zu einem Seitenumbruch führen, so werden weitere Seiten gedruckt, nur sind die dann leer.
Ich würde auch gerne die HTML-Felder in der Höhe begrenzen., Mit “In Objekt einpassen” kann ich es nicht machen weil dann der Inhalt verkleinert wird. Im Idealfall sollte der Inhalt einfach unten abgeschnitten werden. css-Angaben im HTML wie max-height und overflow werden ignoriert. Das kann das Control vermutlich nicht. Wenn ich das HTML-Control in eine Tabelle mit freiem Inhalt packe und die Höhe der Tabelle auf einen fixen Wert setze, dann bekomme ich in der Design-Ansicht eine Endlosschleife.
Langsam bin ich mit meinen Ideen ziemlich am Ende. Daher wende ich mich voller Hoffnung an dieses Forum
Ich kann diese Eigenschaft nicht finden. Kann es sein, dass diese Eigenschaft nicht zur Verfügung steht wenn das Objekt in einer Freier-Inhalt-Tabelle eingebunden ist?
crauchfuss
(combit Support - Christian Rauchfuß)
4
Hallo Thomas,
die Tabelle verhält sich an der Stelle nochmal etwas anders im Vergleich zu den Standalone-Objekten. Letztere können, wie über die von @Sven_Bruggemann erwähnte Eigenschaft einen Seitenumbruch auslösen, oder eben auch nicht. In der Tabelle ist das nicht möglich.
Mit Standalone-Objekten, die einer Ebene mit der Bedingung Page()=1 zugewiesen sind und die Option “Seitenumbruch = Nein” verwenden, solltest du das Vorhaben umsetzen können. Auch HTML-Objekte, werden dann nur so groß gerendert, wie das HTML-Objekt selbst gezeichnet ist. Der Rest wird abgeschnitten bzw. nicht dargestellt.
Anbei ein minimierter Report zur Demo. Alle Objekte beinhalten deutlich mehr Inhalt als dargestellt werden kann.
Danke für die ausführliche Beschreibung. Das ist schon einmal ein Ansatz der mir weiterhelfen könnte.
Allerdings löst es mein konkretes Problem wohl nicht so ganz. Das Layout in meinem Fall ist deutlich komplizierter und enthält Rahmen und Linien welche ich mittels freier Inhaltstabelle realisiert habe. Ohne Tabelle habe ich auch keine Rahmen da die Rahmen nur in den Einstellungen der Tabellenzellen definiert werden können, richtig? Man könnte Rahmen dann vermutlich nur noch durch gezeichnete Rechtecke realisieren. Das wird dann am Ende aber eher zusammengestückelt aussehen bzw. wird es recht schwierig, dass wie “aus einem Guss” aussehen zu lassen.
crauchfuss
(combit Support - Christian Rauchfuß)
6
Man könnte Rahmen via Rechtecke oder auch einzelne Linien-Objekte darstellen, aber auch das ist eher unschön und mit mehr Aufwand verbunden.
Weitere Idee: bei der Tabelle mit freien Inhalt bleiben und über die PrintOption.LastPage List & Label mitteilen, dass die erste Seite auch die letzte zu druckende Seite ist. In .NET sieht das wie folgt aus:
Im Druckdialog (falls dieser angezeigt wird) ist dann bei dem zu druckenden Seitenbereich die Seite 1 voreingestellt. Weitere Informationen zu LlPrintOption finden sich hier in der Online-Doku LlPrintSetOption.