ich möchte erreichen, das eine Tabelle horizontal zentriert auf der Seite dargestellt wird. Dazu müsste ich die Tabellenbreite wissen (die dynamisch sein kann je nachdem wieviele Spalten sichtbar sind) - gibt es dafür eine Option? Oder kann man das zentrieren anders bewerkstelligen?
nur ganz kurz ohne nachzuschauen: Müsste das nicht über die Positions-Eigenschaften Links/Breite des Berichtscontainers über eine Formel, die die aktuelle Papiergröße (bspw. LL.Device.PrintableArea.Size.cx) berücksichtigt klappen?
Danke für diesen Tipp. Aber der Berichtscontainer hat eine fixe Breite (ganze Breite der Seite - 20mm), und die enthaltene Tabelle hat eine dynamische Spaltenanzahl. Und eben diese Tabelle möchte ich zentrieren.
Die sichtbare Breite einer Tabelle wird doch durch den Berichtscontainer bestimmt?!
Eigentlich müsste folgende Formel im Ansatz funktionieren - links-Eigenschaft des Berichtscontainers, wenn dieser einer Breite von 182.88mm hat:
(LL.Device.PrintableArea.Size.cx - 182.88 /* witdh of the report container */) / 2
Dies sieht bei mir dann recht ordentlich aus: Die Tabelle bzw. der Berichtscontainer ist zentriert (links/rechts gleicher Abstand) auf dem Papier.
Alternativ könnte man dies ggf. aber auch über die DOM-API versuchen (siehe ggf. auch lldomview.exe). Darüber kann man die Größen der einzelnen Objekte etc. abfragen und neu Positionieren - ohne den Designer. Eben direkt zur Laufzeit im Code.
sorry, ich habe ich nicht richtig ausgedrückt, nochmal von vorn:
Ich möchte eine Tabelle (und somit auch dessen Berichtscontainer) genauso breit haben wie die sichtbaren Spalten und das Ganze dann zentrieren. Kenne also die Breite nicht zur Designzeit. Und die Spalten sind bei jedem anderen Aufruf unterschiedlich sichtbar.
Ich bräuchte also eine Möglichkeit (wenn möglich ohne DOM Api) die Breite der Tabelle auszulesen - diese würde ich dann dem Berichtscontainer verpassen als Breite und dann kann ich ihn wie du geschrieben hast zentrieren.