Funktion Wenn Sie mit  CallVB oder  CallVBAsync eine VB.NET-Funktion aufrufen, können Sie über ein Objekt der Klasse "guinet.guixt" auf GuiXT Scriptvariablen zugreifen. Es bietet auch einige Sonderfunktionen z.B. den Zugriff auf die Schnittstelle zum GUI Scripting.

Voraussetzungen:

  • Komponente "GuiXT Controls" ist aktiv
  • In Ihrem VB.NET Projekt haben Sie eine Referenz auf guinet.dll aufgenommen

Es genügt für die Verwendung der folgenden Funktionen, in Ihrer VB.NET Klasse das GuiXT-Objekt mit

Private guixt As New guinet.guixt

anzulegen.

GetVariable() r = guixt.GetVariable(var)

Wenn var den Inhalt "xxx" hat, wird die GuiXT Scriptvariable V[xxx] gelesen und der Inhalt nach r gestellt.

Beispiel:

Dim menu_icon_path As String
menu_icon_path = guixt.GetVariable("menu_icon_path") 
 

SetVariable() guixt.SetVariable(var,value)

Wenn var den Inhalt "xxx" hat, wird die GuiXT Scriptvariable V[xxx] auf den Inhalt von value gesetzt.

Beispiel:

guixt.SetVariable("menu_icon_path", "C:\guixt\menu\icons") 
 

GetText() r = guixt.GetText(var)

Wenn var den Inhalt "xxx" hat, wird die GuiXT Langtextvariable text[xxx] gelesen und der Inhalt nach r gestellt.

Beispiel:

' read menu
Dim menu
As String
menu = Split(guixt.GetText("menu"), vbCrLf)

SetText() guixt.SetText(var,value)

Wenn var den Inhalt "xxx" hat, wird die GuiXT Langtextvariable text[xxx] auf den Inhalt von value gesetzt.

Beispiel:

Dim lines() As String

...

guixt.settext("menu_layout", String.Join(vbCrLf, lines)) 
 

GetControl() obj = guixt.GetControl(id, [n=1])

Native-Schnittstelle zu einem aktuell im SAP GUI Fenster angezeigten Control. Als id ist folgendes möglich:

"grid"    GridView Control
"tree"    TreeView Control
"textedit" TextEdit Control
"htmlviewer" HTML Viewer Control
"toolbar" "Tollbar Control
"splitter" Splitter Control
"picture" Picture Control
"*" Beliebiger Typ

Falls mehrere Controls des gleichen Typs existieren, können Sie über den zweiten Parameter das n-te Control dieses Types abrufen.

Beispiel:

Imports GRIDVIEWLIB
Imports SAPTOOLBARLib

...

Dim gridview As GridView = guixt.GetControl("grid")

Dim tb1 As ISAPToolBar = guixt.GetControl("toolbar", 1)
Dim tb2 As ISAPToolBar = guixt.GetControl("toolbar", 2)

Der native Zugriff auf die Controls ist nur in Ausnahmefällen sinnvoll. Falls möglich, sollte SAP GUI Scripting stattdessen genutzt werden. Weitere Details finden Sie in "Tips, Tricks and Samples" -> "Native Control Interface"
 

Value() r = guixt.Value(var)

GuiXT ersetzt im angegebenen String alle &-Ausdrücke nach GuiXT-Logik durch die entsprechenden Werte und stellt das Resultat nach r.

Beispiel:

Dim matnr  As String
matnr = guixt.Value("&F[Material]") 

 

Input() guixt.Input(s)

Der angegebene String s wird exakt so interpretiert wie für die input= Option der Image-Anweisung beschrieben.

Beispiel:

guixt.input("U[VBELN]:" & ListView.selectedItem)
guixt.input("OK:/nVA03,process=va03_enter.txt")

 

Process() guixt.Process(funcname, par1, par2, ...))

Entspricht der GuiXT Anweisung Process.

Aus dem ersten Parameter funcname wird der Scriptname "process_[funcname].txt" gebildet. Dieses Script wird durchgeführt, wobei die Parameter des Scripts durch die Werte von par1, par2,... besetzt werden. Der bei "Return" im Script gesetzte String wird zurückgegeben.

FilePath() guixt.FilePath(s, [cache=True])

Der angegebene String s wird als Dateiname relativ zum GuiXT Scriptverzeichnis interpretiert.

  • Der gesamte Dateiname, mit aktuellem Scriptverzeichnis, wird zurückgegeben.
  • Ein absoluter Dateiname wie C:\guixt\scripts\..." bleibt unverändert.
  • Bei Angabe einer Datei aus dem SAP Web Repository "SAPWR:..." wird im GuiXT Cache eine lokale Kopie erstellt und der Cache-Dateiname zurückgegeben
  • Ein Angabe einer http oder ftp Datei wie "http://..." oder "ftp://" wird im GuiXT Cache eine lokale Kopie erstellt und der Cache-Dateiname zurückgegeben.

Bei cache=True werden externe Dateien zunächst im GuiXT Cache gesucht.

Beispiele:

imgpath = guixt.FilePath("images\home.gif")
imgpath ist jetzt z.B. "C:\guixt\scripts1\images\home.gif"

imgpath = guixt.FilePath("http://www.synactive.com/images/s10logo_blue.gif")
imgpath ist jetzt z.B. "C:\Users\ADMINI~1\AppData\Local\Temp\guixt\GuiXT Cache\http\www.synactive.com\images\s10logo_blue.gif"

SetEventHandler() guixt.SetEventHandler(obj1,obj2)

Angabe zweier Objekte. Für jedes Event z.B. "Click" von Objekt obj1 wird die Funktion "OnClick" von Objekt2 aufgerufen. Die Parameterübergabe erfolgt gemäss der Event-Schnittstelle, d.h. Sie müssen die Funktionen zur Eventbehandlung mit den entsprechenden Parametern anlegen. Meist ist obj1 ein Control, z.B. ein Tree View oder ein List View, und obj2 ist ein mit VB-Mitteln definiertes Objekt zur Behandlung der Events.

Tipp: Die ausgelösten Events und aktuellen Parameter können Sie mit der Trace-Funktion im GuiXT-Window anzeigen.

Beispiel:

' handle  events
Set e = New va03_list_events
Set e.ListView = lv
guixt.SetEventHandler(lv, e)

EmbedForm() guixt.EmbedForm(ByVal f As Form, ByVal c As Object) As Boolean

Blendet eine interaktive Windows Form in das SAP GUI Window ein. Sie nutzen am besten das ActiveX-Objekt "Shell.Explorer" als Platzhalter im SAP GUI Fenster.

Beispiel:

Control (10,20) (18,80) progID="Shell.Explorer" name="d1" initFlag="d1init"

if V[d1init]
  CallVB utilities.customer.preview "&V[d1]"
endif

VB.NET:

 

Imports guinet
....

Public Sub preview(ByVal w As Object)

  ' create new form
 
Dim f As New Dialog1()

  ' embed into SAP GUI window
 
guixt.EmbedForm(f, w)

End Sub

 

 

GuiSession() guixt.GuiSession()

Liefert ein Objekt der Klasse guinet.sapguisession, mit dem Sie komfortabel SAP GUI Scripting-Funktionen ausführen können. Details dazu in GUI Scripting in VB

Beispiel:

guixt.GuiSession.Enter("/NFB01")

 

GuiWindow() guixt.GuiWIndow()

Liefert ein Objekt der Klasse System.Windows.Forms.NativeWindow, das eine eindeutige Identifizierung des SAP Modus ermöglicht.
 

Komponente GuiXT + Controls