Funktion Wenn Sie mit  CallVB oder  CallVBAsync eine .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 .NET Projekt haben Sie eine Referenz auf guinet.dll aufgenommen

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

private guinet.guixt guixt = 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:

string menu_icon_path;
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:

// Menü lesen
string[] menu = guixt.GetText("menu").Split(
    new string[]{"\r\n"}, StringSplitOptions.None);
SetText() guixt.SetText(var,value)

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

Beispiel:

string[] lines;
...
guixt.SetText("menu_layout", String.Join("\r\n", 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" "Toolbar 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:

using GRIDVIEWLIB;
using SAPTOOLBARLib;
...
GridView gridview = (GridView)guixt.GetControl("grid");
ISAPToolBar tb1 = (ISAPToolBar)guixt.GetControl("toolbar", 1);
ISAPToolBar tb2 = (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:

string matnr;
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 MIME Repository "SAPMR:..." wird im GuiXT Cache eine lokale Kopie erstellt und der Cache-Dateiname zurückgegeben
  • Bei 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"

var url = "http://www.synactive.com/images/" +
          "s10logo_blue.gif";
imgpath = guixt.FilePath(url);
// 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 .NET-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:

// Ereignisse verarbeiten
va03_list_events e = new va03_list_events();
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:

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

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

 

using guinet;
....

public void preview(object w)
{
    // neue Form erstellen
    Dialog1 f = new Dialog1();

    // in SAP GUI Fenster einbetten
    guixt.EmbedForm(f, w);
}

 

 

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 .NET

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