Dynamisches Comboboxfeld

  • Hallo zusammen,

    angesichts der Tatsache das ich wohl noch ziehmlich unwissend bin renne ich mir schon seit Tagen an einer sache den Schädel ein. :pinch:
    Ich möchte mir gerade ein kleines Programm bauen in dem ich unteranderem ein Dynamisches Comboboxfeld einfügen will in dem ich verbrauchtes
    Material zurückbuchen kann. Und wenn es nicht nur ein Posten ist sondern zwei oder drei soll man auf hinzufügen klicken und kann im nächsten
    Feld wieder ein neues Teil auswählen und die Stückzahl dazu eintragen.
    Jetzt hab ich zwar schon herausgefunden wie ich ein neues Feld hinzufügen kann aber ich habe keine Ahnung wie das so hinbekomme das ich die einzelnen
    Einträge dann, wenn alles ausgefüllt ist, in die Datenbank schreiben kann da es ja bis jetzt wohl immer die gleiche Variable ist ( $Co_Material und $In_Stueck_Material).
    Ich kann mir schon denken das das mit einen 2 Dimentionalen Array passieren muss. Aber wie hab ich nicht verstanden.
    Ich hoffe ich haben mich recht Verständlich ausgedrückt und hoffe nun auf Eure hilfe.

    Hier noch das Script:

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIListView.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <array.au3>
    #include <IE.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Opt("MustDeclareVars", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global $MysqlConn, $IN_AUFTRAGSNUMMER, $In_MACAdresse, $In_HUEP1, $In_HUEP2, $In_VV1, $In_VV2, $In_Dose1, $In_Dose2, $In_Startzeit_H, $In_Startzeit_MIN
    Global $In_Endzeit_H, $In_Endzeit_MIN, $In_Lage, $connected, $errno, $Form1_1, $La_Auftragsnummer, $La_MACAdresse, $La_HUEP1, $La_HUEP2, $La_VV1, $La_VV2
    Global $La_Dose1, $La_Dose2, $Label7, $Label8, $Label9, $Label10, $Label11, $Label12, $La_Startzeit, $Label27, $Label28, $Label31, $La_Endzeit, $Label30
    Global $La_WELage, $La_Wlan, $Checkbox_WLAN, $La_Empfang, $Combo_Empfang, $La_Bemerkungen, $Co_Material, $Label32, $In_Stueck_Material, $hinzufuegen
    Global $In_Pos1, $In_Pos2, $In_Pos3, $In_Pos4, $In_Pos5, $In_Pos6, $In_Pos7, $In_Pos8, $In_Pos9, $In_Pos10
    Global $La_Pos1, $La_Pos2, $La_Pos3, $La_Pos4, $La_Pos5, $La_Pos6, $La_Pos7, $La_Pos8, $La_Pos9, $La_Pos10
    Global $OK, $Abbrechen, $Unity_IE_Add, $oIE, $TechnikerID_Form, $AutragsNr_Form, $TechnikerID_Query, $AutragsNr_Query, $nMsg
    Global $anzin, $GuiMain, $La_Nr, $In_Nr

    [/autoit] [autoit][/autoit] [autoit]

    Global $i = 0

    [/autoit] [autoit][/autoit] [autoit]

    #include "funktionen.au3"
    #include "mysql.au3"
    #include "libmysqldll.au3"

    [/autoit] [autoit][/autoit] [autoit]

    _MySQL_InitLibrary()
    If @error Then Exit MsgBox(0, 'Init', "")
    ;MsgBox(0, "DLL Version:",_MySQL_Get_Client_Version()&@CRLF& _MySQL_Get_Client_Info())

    [/autoit] [autoit][/autoit] [autoit]

    $MysqlConn = _MySQL_Init()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $connected = _MySQL_Real_Connect($MysqlConn,"192.168.55.148","root","","")

    [/autoit] [autoit][/autoit] [autoit]

    If $connected = 0 Then
    $errno = _MySQL_errno($MysqlConn)
    MsgBox(0,"Error:",$errno & @LF & _MySQL_error($MysqlConn))
    If $errno = $CR_UNKNOWN_HOST Then MsgBox(0,"Error:","$CR_UNKNOWN_HOST" & @LF & $CR_UNKNOWN_HOST)
    Exit
    Endif

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=d:\scripte\hem\gui\gui.kxf
    $Form1_1 = GUICreate("Monteur", 804, 641, 189, 114)
    $IN_AUFTRAGSNUMMER = GUICtrlCreateInput("", 96, 8, 89, 21)
    GUICtrlSetLimit(-1, 6)
    $La_Auftragsnummer = GUICtrlCreateLabel("Auftragsnummer", 0, 12, 80, 17)
    $La_MACAdresse = GUICtrlCreateLabel("MAC Adresse", -1, 41, 68, 17)
    $In_MACAdresse = GUICtrlCreateInput("", 95, 37, 89, 21)
    GUICtrlSetLimit(-1, 12)

    [/autoit] [autoit][/autoit] [autoit]

    ;############### Pegelwerte ###########################################
    $In_HUEP1 = GUICtrlCreateInput("", 40, 80, 33, 21)
    GUICtrlSetLimit(-1, 3)
    $In_HUEP2 = GUICtrlCreateInput("", 40, 103, 33, 21)
    GUICtrlSetLimit(-1, 3)
    $In_VV1 = GUICtrlCreateInput("", 40, 126, 33, 21)
    GUICtrlSetLimit(-1, 3)
    $In_VV2 = GUICtrlCreateInput("", 40, 149, 33, 21)
    GUICtrlSetLimit(-1, 3)
    $In_Dose1 = GUICtrlCreateInput("", 40, 173, 33, 21)
    GUICtrlSetLimit(-1, 3)
    $In_Dose2 = GUICtrlCreateInput("", 40, 197, 33, 21)
    GUICtrlSetLimit(-1, 3)
    $La_HUEP1 = GUICtrlCreateLabel("HÜP 1", 3, 83, 35, 17)
    $La_HUEP2 = GUICtrlCreateLabel("HÜP 2", 3, 107, 35, 17)
    $La_VV1 = GUICtrlCreateLabel("VV 1", 3, 130, 35, 17)
    $La_VV2 = GUICtrlCreateLabel("VV 2", 3, 153, 35, 17)
    $La_Dose1 = GUICtrlCreateLabel("Dose 1", 2, 176, 35, 17)
    $La_Dose2 = GUICtrlCreateLabel("Dose 1", 2, 201, 35, 17)
    $Label7 = GUICtrlCreateLabel("db", 76, 83, 16, 17)
    $Label8 = GUICtrlCreateLabel("db", 76, 106, 16, 17)
    $Label9 = GUICtrlCreateLabel("db", 76, 128, 16, 17)
    $Label10 = GUICtrlCreateLabel("db", 77, 151, 16, 17)
    $Label11 = GUICtrlCreateLabel("db", 77, 175, 16, 17)
    $Label12 = GUICtrlCreateLabel("db", 77, 200, 16, 17)
    ; #####################################################################

    [/autoit] [autoit][/autoit] [autoit]

    ; ##################### Start und Endzeit #############################
    $In_Startzeit_H = GUICtrlCreateInput("00", 48, 232, 25, 21)
    GUICtrlSetLimit(-1, 2)
    $In_Startzeit_MIN = GUICtrlCreateInput("00", 83, 232, 25, 21)
    GUICtrlSetLimit(-1, 2)
    $La_Startzeit = GUICtrlCreateLabel("Startzeit", 0, 234, 42, 17)
    $Label27 = GUICtrlCreateLabel(":", 75, 234, 7, 17)
    $Label28 = GUICtrlCreateLabel("Uhr", 112, 235, 21, 17)
    $Label31 = GUICtrlCreateLabel("Uhr", 112, 261, 21, 17)
    $In_Endzeit_H = GUICtrlCreateInput("00", 48, 258, 25, 21)
    GUICtrlSetLimit(-1, 2)
    $In_Endzeit_MIN = GUICtrlCreateInput("00", 83, 258, 25, 21)
    GUICtrlSetLimit(-1, 2)
    $La_Endzeit = GUICtrlCreateLabel("Endzeit", 0, 260, 39, 17)
    $Label30 = GUICtrlCreateLabel(":", 75, 260, 7, 17)
    ; #####################################################################

    [/autoit] [autoit][/autoit] [autoit]

    ; ############### WE - Lage ; WLAN ; Empfang ##########################
    $In_Lage = GUICtrlCreateInput("", 55, 296, 65, 21)
    GUICtrlSetLimit(-1, 4)
    $La_WELage = GUICtrlCreateLabel("WE-Lage", 1, 298, 49, 17)
    $La_Wlan = GUICtrlCreateLabel("WLAN", 2, 323, 36, 17)
    $Checkbox_WLAN = GUICtrlCreateCheckbox("", 56, 321, 33, 17)
    $La_Empfang = GUICtrlCreateLabel("Empfang", 0, 344, 46, 17)
    $Combo_Empfang = GUICtrlCreateCombo("BCS", 56, 342, 65, 25)
    GUICtrlSetData(-1, "SAT|DBTV|ohne|sonstige")
    ; #####################################################################

    [/autoit] [autoit][/autoit] [autoit]

    ; ############## Bemerkungen ##########################################
    $La_Bemerkungen = GUICtrlCreateLabel("Bemerkungen:", 8, 384, 73, 17)
    GUICtrlCreateEdit("", 8, 400, 241, 89, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_VSCROLL))
    ; #####################################################################

    [/autoit] [autoit][/autoit] [autoit]

    ; ################### Material hinzufügen #############################
    $Co_Material = GUICtrlCreateCombo("Material", 257, 8, 239, 25)
    GUICtrlSetData(-1, "Mat1|Mat2|Mat3")
    $Label32 = GUICtrlCreateLabel("Stück", 501, 11, 32, 17)
    $In_Stueck_Material = GUICtrlCreateInput("000", 536, 8, 33, 21)
    GUICtrlSetLimit(-1, 3)
    $hinzufuegen = GUICtrlCreateButton("Hinzufügen", 600, 8, 57, 17, 0)
    ; #####################################################################

    [/autoit] [autoit][/autoit] [autoit]

    ; ################## Positionen #######################################
    $In_Pos1 = GUICtrlCreateInput("", 214, 80, 41, 21)
    $La_Pos1 = GUICtrlCreateLabel("Position 1", 160, 83, 46, 17)
    $In_Pos2 = GUICtrlCreateInput("", 214, 112, 41, 21)
    $La_Pos2 = GUICtrlCreateLabel("Position 2", 160, 115, 46, 17)
    $In_Pos3 = GUICtrlCreateInput("", 214, 142, 41, 21)
    $La_Pos3 = GUICtrlCreateLabel("Position 3", 160, 145, 46, 17)
    $In_Pos4 = GUICtrlCreateInput("", 214, 174, 41, 21)
    $La_Pos4 = GUICtrlCreateLabel("Position 4", 159, 177, 46, 17)
    $In_Pos5 = GUICtrlCreateInput("", 214, 205, 41, 21)
    $La_Pos5 = GUICtrlCreateLabel("Position 5", 159, 208, 46, 17)
    $In_Pos6 = GUICtrlCreateInput("", 214, 237, 41, 21)
    $La_Pos6 = GUICtrlCreateLabel("Position 6", 158, 240, 46, 17)
    $In_Pos7 = GUICtrlCreateInput("", 214, 269, 41, 21)
    $La_Pos7 = GUICtrlCreateLabel("Position 7", 158, 272, 46, 17)
    $In_Pos8 = GUICtrlCreateInput("", 214, 301, 41, 21)
    $La_Pos8 = GUICtrlCreateLabel("Position 8", 158, 304, 46, 17)
    $In_Pos9 = GUICtrlCreateInput("", 214, 333, 41, 21)
    $La_Pos9 = GUICtrlCreateLabel("Position 9", 158, 336, 46, 17)
    $In_Pos10 = GUICtrlCreateInput("", 214, 365, 41, 21)
    $La_Pos10 = GUICtrlCreateLabel("Position 10", 158, 368, 53, 17)
    ; #####################################################################

    [/autoit] [autoit][/autoit] [autoit]

    ; ############### OK und Abbrechen ####################################
    $OK = GUICtrlCreateButton("OK", 8, 520, 81, 17, 0)
    $Abbrechen = GUICtrlCreateButton("Abbrechen", 169, 520, 81, 17, 0)
    ; #####################################################################

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    $anzin=0

    [/autoit] [autoit][/autoit] [autoit]

    While 1

    $nMsg = GUIGetMsg()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Switch $nMsg


    Case $GUI_EVENT_CLOSE, $Abbrechen
    Exit

    Case $hinzufuegen

    GUISwitch ( $GuiMain, $Co_Material )

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlCreateCombo("Material",257,30+$anzin*23,239,25)
    GUICtrlSetData(-1, "Mat1|Mat2|Mat3")
    $Label32 = GUICtrlCreateLabel("Stück", 501, 33+$anzin*23, 32, 17)
    $In_Stueck_Material = GUICtrlCreateInput("000", 536, 30+$anzin*23, 33, 21)
    GUICtrlSetLimit(-1, 3)
    $anzin+=1


    Case $OK


    ;_Feldtest()

    [/autoit] [autoit][/autoit] [autoit]




    ExitLoop

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit]


    Mfg Jan

  • Spoiler anzeigen
    [autoit]

    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Dim $Combo[1]
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 152, 604, 193, 125)
    $Combo[0] = GUICtrlCreateCombo("", 2, 2, 145, 25)
    GUICtrlSetData(-1, "Neu")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Combo[UBound ($Combo) -1]
    $Pos = ControlGetPos ($Form1,"",$Combo[UBound ($Combo) -1])
    _New("Neu",2,$Pos[1] + $Pos[3] +2,145,25)
    EndSwitch
    Until $nMsg = -3
    Func _New($sText,$X,$Y,$W,$H)
    _ArrayAdd ($Combo,GUICtrlCreateCombo("", $X, $Y, $W, $H))
    GUICtrlSetData ($Combo[UBound ($Combo) -1],$sText)
    EndFunc

    [/autoit]

    mfg. Jam00

  • Dankesehr Jam00 für das Beispiel. Ich werde jetzt mal versuchen anhand dieses Beispieles mein Script anzupassen. Aba erst nach Ostern :-).
    Schönes Osterer Wochenende noch.

    Gruß Jan