Im SAP ERP hat es immer öfter GRID Controls. Das Auslesen von Daten aus dem GRID-Control ist direkt mit GuiXT nicht möglich. Man kann dies aber über einen Aufruf eines VBS-Scriptes mittels des Befehls „ApplyGuiScript“ bewerkstelligen.
Das untenstehende Beispiel entnimmt aus der markierten Zeile im GRID die Felder Beleg (VBELN), VArt (AUART), Auftr.geb. (KUNNR), Bestellnummer (BSTKD). Da Sie die Felder nur über die technischen Namen ansprechen können, müssen Sie zuerst über F1 und Techn. Info herausfinden, wie der Technische Name der Felder definiert ist.
Mit den untenstehenden GuiXT Scripten wird ein VBS Script aufgerufen, welches ein File schreibt mit dem Inhalt der gewünschten Felder. Dies nur für die markierte Zeile. Wobei je nach Aufgabenstellung ev. die Bezeichnung des GRID Controls in dem VBS-Script angepasst werden muss.
Will man anstatt der markierten Zeile, die Zeile auslesen, wo der Cursor steht, resp. wo mit dem Cursor geklickt wurde, so ersetzt man im VBS Script die Zeile
row = GRID1.selectedRows
mit der Zeile
row = GRID1.currentCellRow
SAPLSLVC_FULLSCREEN.0500.txt
if Q[Transaction=VA05N] Pushbutton (Toolbar) "GRID Zeile auslesen" Process="GRID_Zeile_lesen.txt" endif
GRID_Zeile_lesen.txt
Screen SAPLSLVC_FULLSCREEN.0500 set V[Filename] "&%[TMP]\Daten_aus_VA05N.txt" ApplyGuiScript Template="Zeile_auslesen.vbs" Enter Screen SAPLSLVC_FULLSCREEN.0500 Openfile "&V[Filename]" -NoCache // 1. lesen => VBELN ReadFile "&V[Filename]" vbeln // 2. lesen => AUART ReadFile "&V[Filename]" auart // 3. lesen => KUNNR ReadFile "&V[Filename]" kunnr // 4. lesen => BSTKD ReadFile "&V[Filename]" bstkd Closefile "&V[Filename]" // So nun stehen die Werte in den GuiXT Variablen // V[vbeln], V[auart], V[kunnr], V[bstkd] zur Verfügung Enter
Zeile_auslesen.vbs
Set aw = session.ActiveWindow Dim GRID1 Set GRID1 = aw.FindById("usr/cntlGRID1/shellcont/shell") Dim oFS Set oFS = CreateObject("Scripting.FileSystemObject") Dim oTS Set oTS = oFS.CreateTextFile("&[Filename]") row = GRID1.selectedRows if not row = "" Then oTS.writeLine(GRID1.getCellValue(row,"VBELN")) oTS.writeLine(GRID1.getCellValue(row,"AUART"))
oTS.writeLine(GRID1.getCellValue(row,"KUNNR"))
oTS.writeLine(GRID1.getCellValue(row,"BSTKD")) End If oTS.Close
Guten Arbend.
ich habe eine kurze Frage
unsere Firma besitz alle Lizenzen zum GuixT.
Eine Persönliche herausvorderung ist es GUIXT mir näher zu bringen.
Ich möchte mir einen Arbeitsvorrat mit in SAP aus einer externen Datenquelle anzeigen lassen.
eine Tabelle hab ich in Gui eingefügt. Nun ist die Herausvorderung diese zu füllen
leider habe ich keine ausreichenden Informationen zum Thema
Openfile & ReadFile
kann dieser aus Datenbank Strukturen auslesen
und wenn Nein bietet mir Gui mit den GuiXT Controls
eine einfache möglichkeit die Value’s aus access an meinen Tabellen Variablen zu übergeben
Über eine Antwort und oder einen Ansatz eines Lösungsvorschlag würde ich mich echt freuen
Vielen Dank
Mit Freundlichen Gruß
Hallo Herr Vanlaer,
Sie können mit den Controls eine .net Funktion aufrufen, die Ihnen Daten aus Excel, Access usw. ausliest.
Am besten schauen Sie sich mal den Tipp & Trick Nr. 51 auf der Seite der Synactive GmbH an.
Mit freundlichen Grüssen
Gérald Koehn