Die guinet.dll enthält neben der Schnittstelle für eigene Klassenbibliotheken auch fertige Hilfsfunktionen, die sich direkt über CallVB aufrufen lassen – ohne dass Sie zunächst eine eigene DLL erstellen müssen. Ein praktisches Beispiel ist guinet.GridControl.GetSelectedRows: Diese Funktion liest die markierten Zeilen eines SAP Grid Controls aus und gibt die gewünschten Spaltenwerte als Text zurück.

Als Beispiel fügen wir in der Transaktion MM60 (Materialliste) eine Drucktaste „Material anzeigen" hinzu. Der Benutzer markiert ein Material in der Tabelle; ein Klick auf die Drucktaste öffnet die Transaktion MM03 (Material anzeigen) für das gewählte Material:

Zunächst fügt das GuiXT-Script die neue Drucktaste in die Toolbar der Transaktion MM60 ein:

GuiXT
if Q[Transaction=MM60]
  Pushbutton (toolbar) "Material anzeigen" process="material_display.txt"
endif

Um die technischen Feldnamen der Tabellenspalten zu ermitteln – wie z.B. MATNR für die Materialnummer – stehen zwei Wege zur Verfügung:

  • SAP-Standardweg: Spalte markieren, Taste F1 drücken und anschließend auf das Hammersymbol (Technische Information) klicken – dort wird der technische Feldname angezeigt.

  • Script Editor Pro: Im Code per Rechtsklick das Kontextmenü öffnen und den Eintrag GridView wählen – alle verfügbaren Spaltennamen und Beispielwerte der aktuellen Tabelle werden direkt angezeigt.

Eine detaillierte Beschreibung beider Methoden finden Sie im zugehörigen Tipp.

Das zugehörige InputScript material_display.txt ruft guinet.GridControl.GetSelectedRows direkt über CallVB auf. Mit dem Parameter colids:="MATNR" wird festgelegt, welche Spalte ausgelesen werden soll. Das Ergebnis wird intern unter dem Namen _grid_selected_values gespeichert und anschließend mit CopyText in die Variable gridval übertragen:

GuiXT
CallVB guinet.GridControl.GetSelectedRows colids:="MATNR" delimiter:=" "
CopyText fromText="_grid_selected_values" toString="gridval"

if V[gridval=]
  Message "W: Bitte wählen Sie eine Zeile aus" -statusline
  return
endif

Screen saplslvc_fullscreen.0500

  Enter "/OMM03" process="mm03_display_single.txt"
    using MATNR = "&V[gridval]"

Wurde keine Zeile markiert, ist gridval leer und das Script gibt eine Hinweismeldung in der Statuszeile aus. Andernfalls wird die Transaktion MM03 in einem neuen Modus geöffnet und das aufgerufene InputScript mm03_display_single.txt füllt die Einstiegsmaske automatisch aus:

GuiXT
Parameter MATNR

// Einstiegsbild von MM03
Screen saplmgmm.0060
  Set F[RMMG1-MATNR] "&V[MATNR]"
  Enter /5

// Sicht auswählen
Screen saplmgmm.0070
  Set cell[Table,0,1] "X"
  Enter

Die Materialnummer aus der Tabelle wird als Parameter MATNR an das Script übergeben, in das Eingabefeld der MM03-Einstiegsmaske eingetragen und die erste Sicht automatisch ausgewählt.

Grid-Control-Skripte herunterladen (ZIP)