Mit diesem Beispiel füllen sie den Inhalt eines GRID Controls in GuiXT Variablen ab
Das untenstehende Beispiel basiert auf der Transaktion VA05N (Liste der Kundenaufträge).Durch das drücken des Pushbutton „Grid auslesen“, wird der ganze Inhalt der Liste in die Zwischenablage (Clipboard) übernommen.
Über einen Loop wird mittels des Befehls CopyText jede einzelne Zeile und Spalte verarbeitet und in einzelne Variablen abgefüllt.
Die Variablen sind wie folgt aufgebaut V[VA05N_z_s] wobei z= Zeile und s=Spalte.
Durch den Befehl „Sort“ liessen sich die ganzen Daten entsprechend auch sortieren. Siehe dazu die Dokumentation des Befehls „Sort“.
GuiXT Script für VA05N (saplslvc_fullscreen.0500.txt)
// GuiXT Script um einen GridControl auszulesen // und die einzelnen Zellen an Variablen zu übergeben // 27.11.2010 / Gérald Koehn / Koehn Consulting / www.guixt.ch Pushbutton (Toolbar) "Grid auslesen" Process="Grid_auslesen.txt"
InputScript grid_auslesen.txt
// InputScript um Grid auszulesen
// Der Inhalt des Grid wird ins Clipboard übernommen
// Anschliessend wird das Clipboard in einen Langtext in GuiXT
// übernommen. Über diesen Langtext wird dann geloopt um die Werte
// in einzelne Variablen zu übernehmen
// 27.11.2010 / Gérald Koehn / Koehn Consulting / www.guixt.ch
// List of Sales Orders
Screen SAPLSLVC_FULLSCREEN.0500
Enter "/Menu=1,4,3" // Local File...
// Save list in file...
Screen SAPLSPO5.0110
Set #[8,2] "X" // Radiobutton X In the clipboard
Enter
Screen SAPLSLVC_FULLSCREEN.0500
// Initialisieren Variablen und Langtext
set V[VA05N_*] ""
Set Text[VA05N_*] ""
// Kopieren Clipboard in Langtext
CopyText ToText="VA05N_Liste" -fromclipboard
// Abfüllen der einzelnen Variablen
set V[i] 1 // Zähler Zeilen von Quelle
set V[z] 1 // Zähler Zellen in einzelner Zeile
Label VA05N_Liste_lesen
CopyText FromText="VA05N_Liste" toString="String" Line="&[i]"
if Q[ok]
// jetzt lesen wir jede einzelne Zelle der Tabelle
set V[z] 1
Label Einzelne_Zelle
CopyText FromString="String" toText="String_Einzel"
CopyText FromText="String_Einzel" toString="String_Einzel_String" Line="&[z]" Delimiter="|"
if Q[ok]
set V[VA05N_&[i]_&[z]] "&V[String_Einzel_String]"
set V[z] &[z] + 1
goto Einzelne_Zelle
endif
set V[i] &[i] + 1
goto VA05N_Liste_lesen
endif
Enter
