Funktion Mit der GetGridValues-Anweisung können Sie Zellen eines SAP Grid Controls lesen.

Alternativ, aber komplizierter ist das Lesen von Grid Zellen mit SAP GUI Scripting. Dazu ist allerdings nötig, dass das SAP GUI Scripting in SAP eingeschaltet ist, was bei GetGridValues nicht erforderlich ist. GuiXT nutzt intern die Benutzeraktion "Strg+C" und stellt den Inhalt dann aus dem Windows Clipboard in die einzelnen Variablen. Das Windows Clipboard wird vor der Aktion gesichert und danach wieder hergestellt.

Beispiel 1 GetGridValues selectedCells="gx"

In die Variablen V[gx.i.k] werden die Inhalte der selektierten Zellen gestellt. Dabei ist i=1,2,3,... die Zeilennummer und k=1,2,3,... die Spaltennummer.

Beispiel 2 // InputScript
Enter
"/niw38"

Screen RIAUFK20.1000

// optionally: set parameters for selection

// start selection
Enter "/8"

Screen SAPLSLVC_FULLSCREEN.0500
GetGridValues -prepare
Enter "/5" -visible  // Select all

Screen SAPLSLVC_FULLSCREEN.0500
GetGridValues selectedcells="iw38grid" selectedrowcount="r"

// Test message
Message "&V[r] rows selected" -statusline

Enter "/N"

Format GetGridValues selectedCells="name"
Optionen
selectedRowCount= In die angegebene Variable wird die Anzahl der selektierten Zeilen gestellt
 
-prepare Falls das Grid die Funktion anbietet, alle Zeilen zu selektieren (über Tastaturbefehl Strg+A oder Funktion =&ALL oder F5 ), sind zwar alle Zeilen markiert, das Grid Control hat im Fall sehr vieler Zeilen aber noch nicht alle Inhalte aus der SAP Anwendung geladen. Durch -prepare wird einmal durch das Grid geblättert, sodass danach die Inhalte vollständig zur Verfügung stehen.

Falls in dem Grid nur jeweils eine einzige Zeile selektierbar ist, benötigen Sie kein
-prepare.

Zwischen
GetGridValues -prepare und GetGridValues selectedCells= ist mindestens eine Screen-Anweisung erforderlich.

Bitte bei Enter hier den Zusatz -visible angeben, andernfalls lädt SAP GUI unter Umständen nicht alle Zeilen.
&row und &col in
selectedCells=
Optional kann bei selectedCells= ein Name angegeben werden, der "&row" und "&col" enthält, z.B.

GetGridValues selectedCells="orders.cell.&col.&row"

Die Variablennamen werden dann wie angegeben gebildet, d.h. &row und &col werden jeweils durch die Zeilen- und Spaltennummern ersetzt. Das ist insbesondere dann praktisch, wenn man die Variablen in einer eigenen Tabelle anzeigen möchte, da bei Angabe von selectedCells="orders.cell" i Zeilen und Spalten vertauscht wären.

Zu beachten
  • Falls Sie damit rechnen müssen, dass der Benutzer ein eigenes Layout für das Grid definiert hat, ist GetGridValues nicht ohne weiteres anwendbar, da sich ja ganz andere Spalten in dem Grid befinden können. Sie müssen entweder organisatorisch sicherstellen, dass ein bestimmtes Layout (meist wohl das SAP-Standard-Layout) verwendet wird, oder im InputScript selbst ein festes Layout setzen, falls es die Transaktion vorsieht (in IW38 z.B. über Parameter Layout).
Komponente GuiXT  +  InputAssistant