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

Empfehlen