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.