Funktion Mit der CreateTable-Anweisung können Sie eine GuiXT Tabellenvariable anlegen. 
Beispiel CreateTable V[customers] account name city country

Die Variable V[customers] wird als Tabellenvariable angelegt. Für jede Zeile 1,2,3... sind die  Komponenten

  V[customers.account.1]
  V[customers.name.1]
  V[customers.city]
  V[customers.country.1]

  V[customers.account.2]
  V[customers.name.2]
  ...
.

 verfügbar.

Format CreateTable V[tabname] field1 field2 field3 ...
Erläuterung
  • Bei einem Zugriff mit einer nicht existierenden Komponente, z.B.  V[customers.xxx.1], erfolgt eine Syntaxfehlermeldung; bei dem Lesen nicht existierenden Zeilen wird "" zurückgeliefert. Das Schreiben in eine noch nicht existierende Zeile legt die betreffende Zeile automatisch an, wobei alle anderen Komponenten sowie die dazwischenliegenden Zeilen leer angelegt werden.
  • Die Anzahl der Tabellenzeilen steht in V[tabname.rowcount], die Anzahl der Spalten in V[tabname.colcount].
  • Die Anzahl der Tabellenzeilen V[tabname.rowcount]  kann auch direkt Set verändert werden. Wenn Sie z.B. eine sehr grosse Tabelle füllen, ist es schneller, als erstes die Gesamtzahl der Tabellenzeilen zu setzen und dann die Werte einzutragen.
  •  Auf den Namen einer Spalte z.B. Spalte 3 kann über V[customers.colname.3] zugegriffen werden.
  • Bei Clear V[tabname] werden alle Zeilen gelöscht und  V[tabname.rowcount]auf 0 gesetzt
  • Optional kann für z.B. V[customers.account.1] auch die Notation V[customers.cell.account.1] benutzt werden, was zur Kompatibilität mit der bei der Anzeige einer Tabelle mit Table benutzten Notation unterstützt wird.
  • Alle bei der Anzeige einer Tabelle mit Table benutzten Statusvariablen V[tabname.stat. ...1] behalten bei CreateTable ihren Wert. Bei Bedarf kann man sie mit Clear V[tabname.stat*] initialisieren.
  • Die String-Darstellung "&V[tabname]" erzeugt ein mit der JavaScript-Notation von Objekten kompatibles "JSON"-Format. Beispiel:

    Set V[customers.account.1] "1000"
    Set
    V[customers.name.1] "M&S GmbH"
    Set V[customers.account.4] "2000"
    Set
    V[customers.name.4] "ABC GmbH"


    Für &V[customers] wird dann folgender String eingesetzt:
    [{"account": "1000", "name": "M&S GmbH", "city": "", "country": ""}, {"account": "", "name": "", "city": "", "country": ""}, {"account": "", "name": "", "city": "", "country": ""}, {"account": "2000", "name": "ABC GmbH", "city": "", "country": ""}]
  • Mit der gleichen Notation kann man der Tabelle insgesamt einen Wert zuweisen
  • Für grössere Datenmengen bei der Ausgabe einer Tabelle im JSON-Format sowie bei der Zuweisung sollten GuiXT Langtextvariablen und die Anweisungen CopText ...fromTable= ... -json sowie CopText ...toTable=... JSON verwendet werden
Zusatzoptionen
include= Angabe einer anderen Strukturvariablen oder Tabellenvariablen, deren Komponenten übernommen werden. Beispiel:

CreateStructure V[customer] account name city country
CreateTable
V[tab1] include=V[customer]
CreateTable
V[tab2] include=V[customer]


Die include= Option kann auch mehrfach verwendet werden.
Weitere Anweisung für Tabellenvariablen
DeleteTable Löscht die Tabellenvariable (Inhalte und Struktur)
 
Clear Löscht die Zeilen der Tabellenvariablen, behält die Struktur
 
ReadRow Überträgt die Inhalte einer Tabellenzeile in eine Strukturvariable
 
UpdateRow Überträgt die Inhalte einer Strukturvariablen in eine Tabellenzeile
 
AppendRow Fügt eine Tabellenzeile hinzu und überträgt die Inhalte einer Strukturvariablen in diese Zeile
 
InsertRow Fügt eine Tabellenzeile an einer gewünschten Position hinzu und überträgt die Inhalte einer Strukturvariablen in diese Zeile
 
DeleteRow Löscht eine Tabellenzeile
 
Sort Sortiert die Zeilen der Tabellenvariablen
 
CopyText mit den Zusätzen toTable= und fromTable=  Kopiert eine Tabellenvariable in eine Langtextvariable und umgekehrt
 
Call Bei Aufruf eines Funktionsbausteins über RFC können Tabellenvariablen bei export= und  import= angegeben werden. Nur die namensgleichen Spalten werden dann aus der Tabelle des Funktionsbausteins bzw. in diei Tabelle des Funktionsbausteins übertragen. 
Zu beachten
Maximale Spaltenanzahl In einer einzelnen CreateTable Anweisung sind bis zu 60 Spalten direkt angebbar. Falls Sie mehr Spalten benötigen, bitte mit include= aufteilen. Beispiel mit 80 Spalten:

CreateStructure V[s1] f1 f2 f3 f4 f5 f6 f7 f8 f9 f10
CreateStructure V[s2] f11 f12 f13 f14 f15 f16 f17 f18 f19 f20
CreateStructure V[s3] f21 f22 f23 f24 f25 f26 f27 f28 f29 f30
CreateStructure V[s4] f31 f32 f33 f34 f35 f36 f37 f38 f39 f40
CreateStructure V[s5] f41 f42 f43 f44 f45 f46 f47 f48 f49 f50
CreateStructure V[s6] f51 f52 f53 f54 f55 f56 f57 f58 f59 f60
CreateStructure V[s7] f61 f62 f63 f64 f65 f66 f67 f68 f69 f70
CreateStructure V[s8] f71 f72 f73 f74 f75 f76 f77 f78 f79 f80
CreateTable V[mytab] include=V[s1] include=V[s2] include=V[s3] include=V[s4] include=V[s5] include=V[s6] include=V[s7] include=V[s8]
Beispiele Zahlreiche Beispiele finden Sie in den "Tips,Tricks & Samples" im Abschnitt "Table variables"
Komponente GuiXT + InputAssistant