SAP Jobsuche bei DV-Treff
muryyy
  • muryyy
  • SAP Forum - Neuling Thema Starter
vor 7 Jahre
Hallo,

ich würde mich freuen wenn ihr mir helfen würdet.

Habe einen Pushbutton mit GuiXT programmiert und ein InputScript generiert.

Bei meinem aufgezeichneten Inputscript mache ich einen Klick in eine Tabelle der sich an dritter Stelle befindet (siehe Bild) und in GuiXT wird die Tabelle als X[CUSTOM_GRID]aufgelistet.

UserPostedImage

Der beim aufzeichnen generierte Code lautet:

item=" 0000000003;OBJTEXT;3;1" event="3"

Die Zeile das ich anklicken möchte heißt "Anlieferung". Die Zeile kann sich aber mal auch in der vierten oder zehnten Zeile befinden.

Wie kann ich es so programmieren, sodass ich nur Anlieferung anklicken lasse, ohne die Zeile zu verwenden?

Ich habe Synactive eine Mail geschrieben und gaben mir einen Rat, nur leider wurde ich ehrlich gesagt nicht schlau draus und bin auch kein wirkliches Genie in Programmierung.

Ich würde mich sehr freuen, wenn ihr mir helfen könntet.

Mail von Synactive:

direktes Durchsuchen des GridControl ginge nur über SAP GUI Scripting.

Sie können sich aber die Grid-Werte mit GetGridValues in GuiXT Variablen stellen lassen und dann durchschauen, wo die Anlieferung steht, und dann selbst die Nummer im Item-String entsprechend setzen. Etwas knifflig, sieht aber im Prinzip machbar aus.

Einen Namen brauchen Sie bei GetGridValues nicht.

Wichtig ist aber, zunächst alle Grid-Zeilen zu selektieren.

mit

getgridvalues -selectallrows

sollte es gehen.

ScriptMan
vor 7 Jahre
Hallo muryyy,

ähnlich wie bei Savarol kann ich nur mit einem workaround dienen.

z.B.

Anlieferung.txt:

// Infosystem: Verträge ab 26.09.2017

Screen SAPLREIS_GUI_CONTROLLER.0100

Enter control="CONTAINERCTRL.GridViewCtrl" item="&FIND" event="10"

// Suchen

Screen SAPLSKBH.0841

Set F[Suchbegriff:] "Anlieferung"

Enter

// Suchen

Screen SAPLSKBH.0841

Enter "/12"

start "c:\guixt\scripts\Anlieferung.vbs"

Anlieferung.vbs:

If Not IsObject(application) Then

Set SapGuiAuto = GetObject("SAPGUI")

Set application = SapGuiAuto.GetScriptingEngine

End If

If Not IsObject(connection) Then

Set connection = application.Children(0)

End If

set session = Application.ActiveSession

set myGrid = session.findById("wnd[0]/usr/subSUB_AREA_ROOT:SAPLREIS_GUI_CONTROLLER:0200/subSUB_AREA:SAPLREIS_GUI_CONTROLLER:1000/cntlCC_LIST/shellcont/shell")

Zeile = myGrid.currentcellrow

myGrid.selectedRows = Zeile

myGrid.clickCurrentCell

Selbstverständlich muss man die Suche über GuiXT selbst aufzeichnen. Das Klicken / Doppelklicken auf die gefundene Zeile muss genauso mit SAP GUI Scripting in deiner Umgebung aufgezeichnet werden. Mein Beispiel kannst du nicht 1:1 verwenden. Es dient nur als Vorlage.

Grüße,

ScriptMan