Dynamische Spaltenanzahl abbilden

Guten Tag,

im Sourcecode wird dynamisch eine DataTable erstellt und die Anzahl der Spalten variiert stark.

Diese werden auch komplett dynamisch hinzugefügt und es können also lediglich -1- oder aber auch -10- Spalten vorhanden sein.

Wie kann ich dies nun im Report anpassen, sodass immer die ganzen Spalten als Tabelle angezeigt werden?

Hallo Heinz,

unter der Verwendung von “Exists” und “GetValue” ist das möglich. Die Umsetzung erfordert jedoch eine geschickte Handhabung der Bedingungen, beispielsweise für die gleichmäßige Verteilung der Spaltenbreiten. Obwohl die Umsetzung herausfordernd sein kann, ist dies dennoch möglich.

Falls die Datenquelle hingegen direkt im Code generiert wird, wäre es wahrscheinlich einfacher sicherzustellen, dass die Spaltenbreite konstant bleibt und die Daten bei Bedarf mit NULL aufgefüllt werden. Dennoch ist List & Label in der Lage, mit beiden Ansätzen umzugehen.

Viele Grüße

Eine andere Möglichkeit wäre hier per DOM die Tabelle zu gestalten und mit den Spalten und Eigenschaften zu füllen, oder du zählst vorher die Spalten und übergibst eine Variable welche die Anzahl der Spalten enthält, dann verwendest du für die Breite der Spalten die Funktion TableWidth() / AnzahlSpalten (dann hat jede Spalte die gleiche Größe), für den Inhalt kannst ja das was Martin geschrieben hat (Exist und GetValue) verwenden.

Oder das was Martin geschrieben hat :wink:

Erst einmal Danke für das Feedback.

Ich habe nun abklären können, dass es nun konstant 10 Spalten gibt. Allerdings diese dann dynamisch gefüllt und der Rest soll dann lediglich ausgeblendet werden.

Kann ich anhand der Anzahl der Datensätze in der Liste die übrigen Spalten ausblenden lassen?

Es muss auch keine DataTable sein. Dies kann ich natürlich auch auf eine Liste umbauen.

Wichtig ist eben nur, dass die Felder nebeneinander sauber stehen.

Was hat die Anzahl der Datensätze (Rows) mit den Spalten zu tun? Kannst nochmal detaillierter beschreiben :wink:

Ich meine natürlich die Anzahl der Columns.

Der Plan wäre nun folgender:

Spalten:

A B C D E F G H I J

Anzahl der Columns in der Liste : 4

Nun soll er, sofern möglich, alles ab E ausblenden

Hi, also wie schon vorher geschrieben (vom Martin) könntest du z.B. mittels Exists in der Darstellungsedingung der jeweiligen Spalte das Feld abfragen, ob es existiert, ob es ein Value gibt usw. usw. dann wird es angezeigt oder eben nicht, die Spaltenbreiten würde ich mittels einer Variable und TableWidth() / Variable lösen, also die Variable welche die Spaltenanzahl beinhaltet, du weißt ja zum Zeitpunkt der Anmeldung was du für Daten hast.

Aber die beste und empfohlene Lösung ist es per DOM zu lösen.
Zum Designen kannst alle Spalten einfügen und vor dem Druck / Export öffnest das Projekt im DOM und entfernst die nicht benötigten Spalten und setzt die Breiten TEMPORÄR und fertig.

Verwende z.B. das AutoDefineNewPage Event und hol dir das gerade geladene Projekt mittels → GetFromParent Methode

:wink: usw. usw