Tabelle für Druck umgruppieren: Zeilen splitten
Moin, ich möchte eine UntertabelleTabelle 'Positionen', die vorliegt als Spalten "Pos", "Kurztext", "Langtext", " Betrag" Wobei die Felder Kurztext und Langtext beide als mehrzeiliges Textfeld definiert sind für eine Druckaufbereitung Folgendermaßen umsortieren, so dass aus der Originaltabelle:
Aus je einer Zeile sollen 2 Zeilen werden, so dass Position als unsichtbares Sortierkriterium als Pos*2-1 und Pos*2 wieder untereinanderstehen und Kurzext in der jeweils ersten und Langtext in der jeweils 2. Zeile landen und der Betrag in der jeweils 2. Zeile, die erste leer:
Untertabelle in 'Rechnungen' | Ansicht in 'Rechungen' | ||||||||
Pos | Kurztext | Langtext | Preis | Pos | Text | Preis | |||
1 | aaa | AAA | 100 | --> | 1 | aaa | |||
2 | bbb | BBB | 200 | 2 | AAA | 100 | |||
3 | ccc | CCC | 300 | 3 | bbb | ||||
4 | BBB | 200 | |||||||
5 | ccc | ||||||||
6 | CCC | 300 |
So dass ich dann Die Ansicht in das standard-Ninox-Drucklayout einfügen kann, wie aktuell die Untertabelle
Nun komme ich gerade mit den Arrays und den select-Anweisungen in der Ansicht - Oder Formel?, was die "Ansicht in 'Rechungen'" darstellen soll gar nicht klar, da erhoffe ich mir einen Anschub.
Die normale Ansicht mit A-Positionen, bzw
let myArray := 'A-Positionen';myArray
liefert mir die richtigen Datensätze. Aber in dem Array dann bewegen und dieses neu zu gruppieren, was eigentlich ganz einfach ist, scheitere ich (noch) an der Umsetzung mit den Indizes, Zeilen, Spalten, ... und der Syntax. Danke schonmal bis hier her :-)
5 Antworten
-
Hallo Stefan,
mir ist noch nicht so ganz klar, was Du da vor hast, aber prinzipiell stellen Tabellen ja Datensätze dar. Jede Zeile ist ein Datensatz. Wenn Du "Zeilen splitten" meinst, musst du für jede Zeile auch einen Datensatz in der entsprechenden Tabelle haben. Du kannst die Datensätze natürlich über diverse Filter in verschiedenen Ansichten ein- bzw. ausblenden -so kommt man dann auch zu deinem Ziel bei "Ansicht Rechnungen" - aber ich verstehe den Sinn nicht. Oder willst Du gar eine normale Rechnung erzeugen, mit ergänzenden Informationen bei den Rechnungspositionen? Gib mal ein konkretes Besipiel...
-
Du must ja im Drucklayout nicht mit Tabellen arbeiten. Klar, das ist die schnellste Variante, aber nur wenn die Tabelle den Ansprüchen genügt. Wenn nicht, dann würde ich mit einer for-Schleife durch die Artikelpositionen iterieren und die Informationen ausgeben, die mich interessieren. Im besten Fall hast Du in jedem Datensatz/Artikel die benötigten Informationen abgelegt (Ein Feld "Pos", das Textfeld "Vortext" usw.... Die optische "Tabelle" muss man dann natürlich selbst gestalten. Man legt also ein leeres Textfeld an, mit farbigem Hintergrund als Kopfzeile. Dort dann Textfelder mit den Spaltennamen hinein... Dann also im Drucklayouteditor, in einem Formel-Feld anfangen mit:
let me := this; // (damt du innerhalb der Schleife mit "me" auch bei Bedarf auf Daten aus dem aktuellen Datensatz Zugriff hast, z.B. Rechnungsnummer, Datum, Sachbearbeiter usw...)
for i in 'A-Positionen' do
i.(Vortext + "
" + Artikelname + "
" + Preistext
) endDie Zeilenumbrüche werden tatsächlich "hartkodiert" als Zeilenumbruch in den Code geschrieben...
Nun nimmst du ein neues Formelfeld, positionierst das oben bündig mit dem vorigen Formelfeld und dort kopierst du den Code, liest nur den Preis aus, behältst aber die Struktur bei:
for i in 'A-Positionen' do
i.("
" + "
" + Nettopreis
) endSo baust Du dir Spalte für Spalte zusammen - der Vorteil dabei ist, Du kannst jede Formelspalte gesondert formatieren. Der Nachteil ist, du hast keine "one-click-fertig" Tabelle...
-
Hier mal ein Beispiel, wie sowas dann aussieht... Natürlich musst Du in der Formel nicht zwei Umbrüche mit einem Plus verbinden, man kann auch direkt einen doppelten Umbruch setzen. Es ging nur um Veranschaulichung des Prinzips.
Generell würde ich für sowas aber den dynamischen Editor bemühen und mir ein Template in OpenOffice/Word anlegen. Da ist man flexibler was Formatierung angeht... und auch bei mehrseitigen Dokumenten. Das wird dann nämlich im NINOX-Editor die nächste "Hürde"
Content aside
- Status Answered
- vor 7 MonatenZuletzt aktiv
- 5Antworten
- 47Ansichten
-
2
Folge bereits