+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

LL23: Mehrere Datensätze in einer Zeile ausgeben

designer

(Burkhard Exner) #1

Ich gebe nach einer breiten Tabelle noch eine schmale Tabelle aus:
grafik

Wie kann ich es erreichen, dass mehrere Datensätze der schmalen Tabelle in einer Zeile ausgegeben werden, am besten dynamisch an die aktuelle Reportbreite angepasst. Im vorliegenden Fall hat die Tabelle 45 Einträge und bricht auf die nächste Seite um.


(combit - Jochen Bartlau) #2

Das einfachste wäre, wenn Sie das schon in der Datenquelle vorsehen könnten und dann eben z.B. drei Zeilen gleichzeitig in einem Record übergeben. Dann könnten Sie z.B. schematisch die Tabelle so aufbauen:

Vorname1 Name1 Vorname2 Name2
Burkhard Exner Jochen Bartlau

Wenn Sie die Datenbasis nicht anfassen können/wollen können Sie sich mit einer Kombination aus einem Einzug links und einem negativen Rand oben behelfen. Leider unterstützen nicht alle Exportformate diese Vorgehensweise, so dass Sie sich auf Vorschau, Druck, Bildformate und PDF-Ausgabe beschränken sollten. Das Prinzip ist folgendes: angenommen Sie möchten vier “schmale” Records nebeneinander ausgeben vergeben Sie zunächst für alle Spalten der Tabelle eine feste Höhe, z.B. 5 mm. Für den Rand links verwenden Sie als Formel

47,5*((Count(1,false)-1)%4)

Die 47,5 entspricht dabei der Tabellenbreite geteilt durch 4 (also 190 mm Tabellenbreite in meinem Beispiel). Durch die Modulo-Division nimmt der Rand von Zeile zu Zeile zu, bis der Zeilenindex durch 4 teilbar ist. Danach wird er wieder zu 0. Der Rand oben ist dann

Cond((Count(1,false)-1)%4=0, 0, -5)

Das führt dazu, dass durch die feste Höhe jeweils 4 Zeilen in eine gemeinsame Zeile geschoben werden, da für diese jeweils ein Rand oben von -5 mm gewählt wird. Beachten Sie, dass Sie ggf. noch UnitFromSCM() für die festen Werte verwenden müssen, damit das Projekt auch auf einem System mit imperialen Maßen korrekt funktioniert.

Anbei finden Sie ein Testprojekt für die Beispielanwendung, die Ausgabe sieht damit wie folgt aus:

image
Oben endet die “große” Tabelle, unten kommt dann die “schmale” Tabelle mit vier Zeilen je Zeile. Hilft Ihnen das weiter?

Artikelliste mit mehreren Records je Zeile.lst (61.5 KB)


(Burkhard Exner) #3

Vielen Dank für die prompte Antwort. Wir haben die Datenquelle komplett in unserer Domäne und bevorzugen den ersten Weg. Trotzdem danke für den aufgezeigten Kniff und den damit verbundenen Gedankenanstoss.

Wäre das nicht ein Feature für Version 25? Ein Property ‘Anzahl Records je Druckzeile’ zur Tabelle?


(combit - Jochen Bartlau) #4

Durchaus - ich hatte das schon direkt nach Ihrem Post in unsere Diskussionsliste aufgenommen, die Frage kommt tatsächlich von Zeit zu Zeit. Wenn wir das umsetzen würden wir es vermutlich mit den mehrspaltigen Berichtscontainern verbinden, die es ja schon gibt. Im Moment drucken wir da die Spalten immer “down then accross”, hier müsste es dann ein alternatives “accross then down” sein. Wenn es das auch auf Deutsch gibt wäre ich für die korrekte Wortwahl dankbar :smile:. Also “rüber, dann runter”.


(Burkhard Exner) #5

Zuerst Spalte füllen
Zuerst Zeile füllen