Im ArrayDisplay ersichtlich, im GuiCreateCombo nicht, Bitte um Hilfe.

  • Hallo Zusammen
    im ArrayDisplay sie die Daten ersichtlich aber im GuiCreatecombo nicht?,
    Bitte um Hilfe
    Danke
    MC

    Spoiler anzeigen
    [autoit]

    #include<array.au3>
    #include<ExcelCOM_UDF.au3>
    ;#include<Excel.au3>
    Opt('MustDeclareVars', 1)

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

    ArrayMuster()
    Func ArrayMuster()

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

    Global $aIni, $nMsg, $Exit, $ab, $Offerte, $Rechnung, $Exit
    Global $xls, $xlsdir, $app, $zelle, $zeile, $open, $MengenCombo, $Sektionen
    Local $aFileName, $aArray1, $oExcel
    $aFileName = ("C:\Dokumente und Einstellungen\Administrator\Desktop\Script\Fai\file.xls")
    $oExcel = _ExcelBookOpen($aFileName) ;Open book, make it not visible
    $oExcel.Visible = 0

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

    $aArray1 = _ExcelReadArray($oExcel, 2, 4, 1300, 1) ;Direction is Vertical
    _ArrayDisplay($aArray1, "Vertical")
    ;Global $MengenCombo[2]
    ;Global $Sektionen[2] = ["Name", "Firma"]
    ;MsgBox(1,"", & GUICtrlRead($aArray1))

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

    GUICreate("GUI", 250, 240)
    GUICtrlCreateLabel("Firma ", 60, 10)
    $aArray1 = GUICtrlCreateCombo("", 60, 30)
    GUICtrlCreateLabel("Firma ", 60, 10)
    ;$MengenCombo[0] = GUICtrlCreateCombo("", 60, 30)
    GUICtrlCreateLabel("Name ", 60, 70)
    ;$MengenCombo[1] = GUICtrlCreateCombo("", 60, 88)

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

    $ab = GUICtrlCreateButton("Abestätigung",70, 130)
    $Offerte = GUICtrlCreateButton("Offerte",10, 130)
    $Rechnung = GUICtrlCreateButton("Rechnung",160, 130)
    $Exit = GUICtrlCreateButton("Exit",60, 200)

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

    GUISetState()

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

    If Not FileExists($aFileName) Then ; Neu zur Überprüfung hinzu
    MsgBox(0, "Hinweis:", "XLS-Datei existiert nicht.")
    Exit
    EndIf
    For $i = 0 To UBound($aArray1) - 1
    $aIni = IniReadSection($aFileName, $aArray1[$i])
    For $j = 1 To $aIni[0][0]
    GUICtrlSetData($aArray1[$i], $aIni[$j][1])
    Next
    Next
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Exit
    ;MsgBox(1,"Auswahl", GUICtrlRead($MengenCombo[0])&GUICtrlRead($MengenCombo[1])& _
    ; GUICtrlRead($MengenCombo[2])&GUICtrlRead($MengenCombo[3]))
    Exit
    Case $Rechnung
    Run("C:\Program Files\Microsoft Office\Office12\excel")
    Exit
    Case $Offerte
    ;$xls = ShellExecute("C:\temp\Script\OffertenvorlageNEU.xls")
    $xlsdir = "C:\temp\Script\OffertenvorlageNEU.xls"
    ;Excel öffnen
    $app = ObjCreate("Excel.application")
    $app.Visible = true
    $open = $app.Workbooks.Open ($xlsdir)
    ;in Excel schreiben
    $app.Cells(10,4).Value = ""&GUICtrlRead($MengenCombo[0])&""
    $app.Cells(11,4).Value = ""&GUICtrlRead($MengenCombo[1])&""
    ;$app.Cells(12,4).Value = ""&GUICtrlRead($MengenCombo[1])&""
    ;$app.Cells(10,7).Value = ""&GUICtrlRead($MengenCombo[1])&""
    ;$app.Cells(10,8).Value = ""&GUICtrlRead($MengenCombo[1])&""
    $zelle=6
    $zeile=1
    $app.Cells($zeile,$zelle).Value = "Zelle6Zeile1"
    Exit
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von mauric (9. Juli 2010 um 12:03)

  • [autoit]


    $aArray1 = _ExcelReadArray($oExcel, 2, 4, 1300, 1) ;Direction is Vertical
    ;
    ;
    $aArray1 = GUICtrlCreateCombo("", 60, 30)
    ;
    ;
    GUICtrlSetData($aArray1[$i], $aIni[$j][1])

    [/autoit]


    Fällt dir dabei was auf? ;)

  • 1)im erster linie "teil _Excel Read Array" wird Vertikal im Excel Daten aufgenommen
    2)versuche ich den ganzen Array inhalt im GuiCtrlCCombo darzustellen
    2a)War sogar der Meinung das der Inhalt im combo dargestellt würde ohne "schlaufe".
    3)versuche durch dass Array durchzuzählen. (aIni) war vom vorheirgen Script

  • haste dir den post von nuts durchgelesen?
    du hast die var aArray für 2 versch. sachen definiert und da die combo nacher definiert wurde und das sogar kein array ist machts einfach keinen sinn^^

  • Hm ... hast du das Problem jetzt erkannt oder nicht? ?(

    Bei einem 1D Array kannst es einfach so machen.

    [autoit]


    global $combobox=GUICtrlCreateCombo('', -1, -1, 100, 50)

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

    global $adaten
    _ArrayDisplay($adaten)
    Global $sdaten=_ArrayToString($adaten)
    MsgBox(1, "$sdaten", $sdaten)
    GUICtrlSetData($combobox, $sdaten)

    [/autoit]
  • hab noch einen Versuch gestartet

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    Opt('MustDeclareVars', 1)

    ArrayMuster()
    Func ArrayMuster()
    Dim $avArray[20]
    ; Populate test array.
    For $i = 0 to UBound( $avArray ) - 1
    $avArray[$i] = Random( -20000, 20000, 1)
    Next
    _ArrayDisplay($avArray, "$avArray")
    MsgBox(0, "_ArrayToString() getting $avArray items 1 to 7", _ArrayToString($avArray, @TAB, 1, 7))
    GUICreate("GUI", 250, 240)
    GUICtrlCreateLabel("Firma ", 60, 10)
    $avArray = GUICtrlCreateCombo("", 60, 30)
    GUISetState()
    sleep (10000)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $Exit
    ;MsgBox(1,"Auswahl", GUICtrlRead($MengenCombo[0])&GUICtrlRead($MengenCombo[1])& _
    ; GUICtrlRead($MengenCombo[2])&GUICtrlRead($MengenCombo[3]))
    EndSwitch
    WEnd
    EndFunc

    [/autoit]
  • Spoiler anzeigen
    [autoit]


    #include <Array.au3>

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

    Dim $avArray[20]
    ; Populate test array.
    For $i = 0 To UBound($avArray) - 1
    $avArray[$i] = Random(-20000, 20000, 1)
    Next
    _ArrayDisplay($avArray, "$avArray")
    Global $sdaten = _ArrayToString($avArray)
    MsgBox(0, "_ArrayToString()", $sdaten)

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

    GUICreate("GUI", 250, 240)
    GUICtrlCreateLabel("Firma ", 60, 10)

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

    $combobox = GUICtrlCreateCombo("", 60, 30)
    GUICtrlSetData($combobox, $sdaten)

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

    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case - 3
    Exit

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

    EndSwitch
    WEnd

    [/autoit]


    ?(