Hallo,
ich möchte mit meinem Script automatisch Artikel für einen Onlineshop erstellen. Ich habe nun folgendes Problem :
Ich trage die Daten über ein GUI (GUI1) ein und schicke diese ab. Diese Daten werden auch übertragen und sind im Onlineshop sichtbar. Danach öffnet sich ein neues GUI (GUI2), welches mich fragt ob ich einen weiteren Artikel anlegen möchte.
Wenn ich auf JA drücke, öffnet sich GUI1 wieder und ich kann die Daten erneut eingeben. Allerdings werden die Daten nicht mehr übertragen. So sieht mein Code aktuell aus.
Code
gui1()
Func gui1()
Local $hGUI1 = GUICreate("Artikel Anlegen", 650,550)
Local $sLagerbestand = GUICtrlCreateLabel("Lagerbestand", 20, 20)
Local $Input_lagerbestand = GUICtrlCreateInput("", 100, 20, 100, 20)
Local $sArtikelnummer = GUICtrlCreateLabel("Art. Nr.", 20, 60)
Local $Input_artnr = GUICtrlCreateInput("", 100, 60, 100, 20)
Local $sArtikelname = GUICtrlCreateLabel ("Artikelname", 20,140)
Local $Input_prodname = GUICtrlCreateInput ("", 100, 140, 100 , 20)
Local $sPreis = GUICtrlCreateLabel ("Preis", 20,180)
Local $Input_price = GUICtrlCreateInput ("", 100, 180, 100 , 20)
Local $Button_abschicken = GUICtrlCreateButton("Abschicken", 100, 260, 80, 25)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Button_abschicken
$lagerbestand = GUICtrlRead($Input_Lagerbestand) ; Lagerbestand
$artnr = GUICtrlRead($Input_artnr) ; Artikelnummer
$artikelname = GuiCtrlRead ($Input_prodname) ; Artikelname
$preis = GuiCtrlRead ($Input_price) ; Preis
If $lagerbestand = "" or $artnr = "" or $artikelname = "" or $preis = "" Then
MsgBox (0,"Info","Bitte alle Felder auswählen!")
Else
_abschicken($lagerbestand, $artnr, $artikelname, $preis)
GUISetState (@SW_HIDE, $hGUI1)
gui2()
GUISetState (@SW_ENABLE,$hGUI2)
EndIf
EndSwitch
WEnd
EndFunc ;==>gui1
Func gui2()
Local $hGUI2 = GUICreate("weiteren Artikel anlegen?", 200, 200, 350, 350)
Local $yesButton = GUICtrlCreateButton("Ja", 10, 10, 80, 30)
Local $noButton = GUICtrlCreateButton("Nein", 10, 60, 80, 30)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
GUIDelete($hGUI2)
ExitLoop
Case $yesButton
; Disable the second GUI
GUISetState(@SW_HIDE, $hGUI2)
gui1()
; Re-enable the first GUI
GUISetState(@SW_ENABLE, $hGUI1)
Case $noButton
Exit 0
EndSwitch
WEnd
EndFunc ;==>gui2
Func _abschicken($lagerbestand,$artnr, $artikelname, $preis)
$oForm = _IEGetObjById($oIE, "new_product")
$oQuantity = _IEFormElementGetObjByName($oForm, "products_quantity") ; Lagerbestand
_IEFormElementSetValue($oQuantity, $lagerbestand) ; Lagerbestand
$oModel = _IEFormElementGetObjByName($oForm, "products_model") ; Artikelnummer
_IEFormElementSetValue($oModel, $artnr) ; Artikelnummer
$oName = _IEFormElementGetObjByName($oForm, "products_name[2]") ; Artikelname
_IEFormElementSetValue($oName, $artikelname) ; Artikelname
$oPreis = _IEFormElementGetObjByName ($oForm, "products_price") ; Preis
_IEFormElementSetValue ($oPreis, $preis) ;Preis
; Fixe Einstellungen welche immer übermittelt werden.
$oLieferzeit = _IEFormElementGetObjByName ($oForm, "shipping_status") ;Lieferzeit
_IEFormElementSetValue ($oLieferzeit, 9) ;Lieferzeit
$oVerpackungseinheit = _IEFormElementGetObjByName ($oForm, "products_vpe") ;VPE
_IEFormElementSetValue ($oVerpackungseinheit, 1) ;VPE
$oArtikeldetails = _IEFormElementGetObjByName ($oForm, "info_template") ;Artikeldetails
_IEFormElementSetValue ($oArtikeldetails, "product_info_v1.html") ;Artikeldetails
$oArtikeloptionen = _IEFormElementGetObjByName ($oForm, "options_template") ;Artikeloptionen
_IEFormElementSetValue ($oArtikeloptionen, "product_options_selection.html") ;Artikeloptionen
$oRabatt = _IEFormElementGetObjByName ($oForm, "products_discount_allowed") ;Rabatt
_IEFormElementSetValue ($oRabatt, 10) ;Rabatt
$oSteuerklasse = _IEFormElementGetObjByName ($oForm, "products_tax_class_id") ;Steuerklasse
_IEFormElementSetValue ($oSteuerklasse, 1) ;Steuerklasse
_IEFormSubmit ($oForm)
Endfunc
Alles anzeigen
Hat jemand eine Idee, wie ich quasi GUI1 schließe und neu Lade, wenn ich bei GUI2 auf "ja" klicke?