SAP Jobsuche bei DV-Treff
newgui
  • newgui
  • SAP Forum - Experte Thema Starter
vor 14 Jahre

Hallo zusammen,

stehe wieder mal vor einem Problem wo ich nicht weiter weiß.

Möchte für uns intern ein kleines Projektmanagement-Cockpit mittels guixt basteln (was ich bis jetzt ganz gut hinbekommen habe).
(verschiedene Transaktion, queries usw. direkt öffnen)

Natürlich wie es in den meisten Firmen üblich ist haben wir auch Daten in Excel bzw. in einer Webapplikation (html+php usw.)

Dazu ein paar Fragen:
Punkt 1 - Excel:
Ist es möglich zB eine Variable von einem Inputfield in Excel zu übergeben, dass man dort diesen Wert über einen benzutzerdefineierten Filter einschränken kann.

Hier das inputfield, dass ich an excel übergeben möchte:
inputfield (1,1) "name=X_Projekt" "size=18" "-nolabel"

Excel zu öffnen funktioniert schon über Image (Nur wie kann ich hier die Variable mit übergeben?):
Image (1,3) "C;\guixt\Images\test.jpg" Start="C:\Test\Datei1.xls" -nobuffer -plain

Für den Filter habe ich auch schon das Makro (Wie kann ich hier die Variable auslesen oder wäre das so schon richtig?):
Sub Workbook_open()
    Selection.AutoFilter Field:=4, Criteria1:="=X_Projekt", Operator:=xlAnd
End Sub
Sorry für die blöde Frage - kann die Variabel wie hier dargestellt direkt übernommen werden oder muss ich vorher noch die Variable definierten?
Sub Workbook_open()
Dim projekt as string
projekt = X_Projekt (? keine Ahnung ob so richtig?)
    Selection.AutoFilter Field:=4, Criteria1:="=projekt", Operator:=xlAnd
End Sub

Punkt 2 - html:
Inputfield wie oben bei excel:
Image (1,3) "C;\guixt\Images\test_html.jpg" Start=http://test/test1.php?x=33&y=14&projekt=&V[X_Projekt] -nobuffer -plain
Das mit der Übergabe funktioniert eigentlich wie hier ersichtlich nur ist diese Seite in ein Joomla-Menü mittels wrapper eingebunden - darum zeigt er hier nur den wrapper aber nicht mehr das Menü an: Dazu müsste eigentlich gleich nach dem ersten Aufruf mit der Übergabe der Variable nochmal die Testseite ohne Variable aufrufgerufen werden
Start=http://test/test1.php
In excel funktioniert das, dass gleich hintereinander die beiden urls aufgerufen werden.

Ich hoffe, dass ich einigermassen verständlich beschrieben habe, was ich gerne machen möchte. Würde mich sehr freuen wenn mir jemand weiterhelfen könnte.

lg
newgui

ScriptMan
vor 14 Jahre

Hallo newgui,

der Aufruf eines Excel-Makros über den GuiXT-Befehl Image ist ein wenig komplizierter als bei Pushbutton. Das erste Problem liegt darin, dass das Inputfield zuerst immer gelesen werden muss bevor es weiter gereicht werden kann. Ein Image-Befehl ruft zuerst ein Skript namens Datei1.vbs auf.

Image (1,3) "C;\guixt\Images\test.jpg" Start="C:\Test\Datei1.vbs" -nobuffer -plain

Datei1.vbs:

set wshell = createObject("Wscript.Shell")
wshell.run "c:\programme\sap\frontend\sapgui\guixt.exe" & " Input=" & chr(34) & "OK: process=" & "c:\test\Datei1.txt" & chr(34)

Hinweis: zwischen ..."OK: process... ist kein Leerzeichen 

Das Skript startet wiederum ein GuiXT-Skript namens Datei1.txt.

Datei1.txt:

set V[apo] "apostroph"
copytext fromstring="apo" totext="t1"
replacetext "t1" from="apostroph" tohexcode="22"
copytext fromtext="t1" tostring="apo"
       
start "c:\Test\excel.vbs" parameters="&V[apo]&V[X_Projekt]&V[apo]"

Damit man u.U. auch Parameter mit Leerzeichen übergeben kann, hat man sie zusätzlich zwischen 2 Apostrophe platziert. Wenn der Parameter X_Projekt keine Leerzeichen enthält, reicht auch folgende Befehlszeile:

start "c:\Test\excel.vbs" parameters="&V[X_Projekt]"

Das Skript Excel.vbs erwartet einen Parameter = X_Projekt.

Excel.vbs:

Set xcl = createObject("Excel.Application")
set wbk = xcl.Workbooks.open("c:\Test\Datei1.xls")
xcl.ScreenUpdating = true
xcl.Visible = True
xcl.DisplayAlerts = true
xcl.Run "Test_Makro", wscript.arguments(0)
'wbk.close
'set wbk = nothing
'xcl.quit
'set xcl = Nothing

Das Test_Makro in Datei1.xls ist ein normales Makro und kein Workbook_Open und auch nicht Auto_Open.

Sub Test_Makro(ByVal X_Projekt As String)
     Selection.AutoFilter Field:=4, Criteria1:="=" & X_Projekt, Operator:=xlAnd

End Sub

Mit Pushbutton hätte man Datei1.vbs gleich weglassen können. Der Einstieg erfolgt dann z.B. wie folgt:

Pushbutton (2,3) "@9E\QTest@Excel-Makro" Process="c:\Test\Datei1.txt" 

Ich hoffe, dass es am Ende auch in deiner Umgebung funktioniert und wünsche viel Spaß beim Testen. Mit HTML muss ich leider passen.

 

Freundliche Grüße

ScriptMan

newgui
  • newgui
  • SAP Forum - Experte Thema Starter
vor 14 Jahre
Hallo ScriptMan,

du bist echt der Hammer. Das mit dem Aufruf mittels Image habe ich nur deswegen gemacht weil ich den Aufruf des Excel-Files mit Pushbutton nicht hinbekommen habe. Mit Image hat das ganze jetzt auch nicht funktioniert.

Aber mit der 2 Variante (Pushbutton) funktioniert dass voll supi. Ich bin total begeistert, da wir ziemlich viele excel-Listen mit einer Projektnr. als Filterkriterium haben und diese kann ich nun alle über SAP direkt ansprechen.

Das mit dem html-Link habe ich jetzt, dank deiner Hilfe auch hinbekommen - Problem war bis jetzt, dass ich den Aufruf nur über Image hnbekommen habe. Habe jetzt den Aufruf wie bei excel ebenfalls über ein eigenes Script gemacht - dort beide links reingestellt - und siehe da - es funktioniiiiiieeeeert - einfach nur geil.

Also nochmals vielen herzlichen Dank für deinen Input :-)

lg

newgui