In ME53N wird unter Positionsdetail die jeweilige aktive Position in einer Combox angezeigt. Möchte man nun den Inhalt der Combox in GuiXT zur Verfügung haben, so lässt sich nur der Wert der Position 1,2,3 usw auslesen. Dies interessiert doch wesentlich weniger als der zugehörige Text wie z.B. [ 10] C-1030, Verdrilltes Kabel.

Text einer Combox auslesen
Denn im Text ist die Materialnummer enthalten. Mit den in diesem Beispiel vorhandenen Scripten können sie über GuiXT und GUI Scripting die Materialnummer aus der Combobox extrahieren.

Dazu haben wir folgende Scripte:

saplmegui.0014.txt

set V[check_ME53N] Pattern="Bestellanforderung % anzeigen"
if Q[ok]
  if Q[Page=Kontierung] and not V[pos_ausgelesen=X] and F[%#AUTOTEXT003]
    Enter  Process="DropDownlist_Wert_lesen.txt"
  endif
  // Wenn der Wert der DropDownlist gewechselt wird, so soll der Inhalt neu bestimmt werden
  on "=DDOWN3200" Process="DropDownlist_Wert_lesen.txt"
endif

dropdownlist_wert_lesen.txt

// InputScript um aus der ComboBox "Position" den Wert, resp den zugehörigen Text
// auszulesen
// 08.04.2013 / Gérald Koehn / Koehn Consulting / www.guixt.ch

Screen SAPLMEGUI.0014

// Damit das VBS Script mehrfach verwendbar ist, setzen wir den Namen der Combox,
// ausserhalb des VBS Scriptes
  set V[return_filename] "&%[TMP]\Inhalt_Combobox.txt"
  set V[name_combobox] "wnd[0]/usr/subSUB0:SAPLMEGUI:0020/subSUB3:SAPLMEVIEWS:1100/subSUB2:SAPLMEVIEWS:1200/subSUB1:SAPLMEGUI:1301/subSUB1:SAPLMEGUI:6000/cmbDYN_6000-LIST"
  ApplyGuiScript   template="ComoBoxWert_lesen.vbs"
  set V[pos_ausgelesen] "X"

  CopyText fromfile="&%[TMP]\Inhalt_Combobox.txt" toText="inhalt_combobox"
  Set V[Inhalt_Combobox] "&Text[inhalt_combobox]"

// Extrahieren der MaterialNummer aus dem Inhalt der Combobox

  Set V[Material_Combobox] "&V[Inhalt_Combobox]" Search="]"
 Enter

ComoBoxWert_lesen.vbs

session.findById("wnd[0]").maximize

Dim value
value = session.findById("&V[name_combobox]").value

' Schreiben des Wertes der Combobox in ein TextFile, welches wir unter
' dem Temp Verzeichnis des Users ablegen

Dim oFS
 Set oFS = CreateObject("Scripting.FileSystemObject")
 Dim oTS
 Set oTS = oFS.CreateTextFile("&V[return_filename]")
 oTS.writeLine(value)
 oTS.Close

Empfehlen