1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. 0cool

Beiträge von 0cool

  • _FTP_ProgressUpload Title und Text ändern

    • 0cool
    • 19. August 2016 um 20:45

    Hey autoBert,

    heute komme ich endlich dazu, die Beispiele mit der neusten AutoIT Version zu testen. Siehe da es funktioniert.
    Danke für Deine Hilfe.

    Gruß

    ocool

  • _FTP_ProgressUpload Title und Text ändern

    • 0cool
    • 9. August 2016 um 23:00

    Gibt es keine Möglichkeit, wie ich deine Funktion zum laufen bringen kann?
    Bei meinem Ursprünglichen Versuch geht das so wie es vorhabe nicht. Ich kann zwar eine Funktion als Parameter übergeben das hat auch nicht so richtig funktioniert.

    Das hab ich im Internet gefunden:
    https://www.autoitscript.com/autoit3/docs/l…gressUpload.htm

    Beide Beispiele funktionieren nicht. Die Variable $iPercent ist nicht deklariert und ich verstehe nicht, woher die Variable ihre Daten bekommen soll.

    Es wäre net wenn Du mir weiter helfen könntest.

  • _FTP_ProgressUpload Title und Text ändern

    • 0cool
    • 9. August 2016 um 19:50

    Danke für die schnelle Hilfe.
    Nachdem ich Deine Funktion in mein Skript reinkopiert hatte, lief mein Skript auf Fehler


    AutoIt
    If Not IsFunc($hFunctionToCall) Then ProgressOn($MyTitle, $MyText)
    Error: IsFunc(): undefined function


    Fällt dir etwas dazu ein?

    [edit]
    Durch ein Update auf die aktuelle AutoIT Version taucht der Fehler nicht mehr auf. Die Progressbar öffnet sich trotzdem nicht.

    Deine Funktion wird bei der folgenden Prüfung beendet:

    AutoIt
    Local $ai_FtpOpenfile = DllCall($__g_hWinInet_FTP, 'handle', 'FtpOpenFileW', 'handle', $hFTPSession, 'wstr', $sRemoteFile, 'dword', $GENERIC_WRITE, 'dword', $FTP_TRANSFER_TYPE_BINARY, 'dword_ptr', 0)
    If @error Or $ai_FtpOpenfile[0] = 0 Then Return SetError(-3, _WinAPI_GetLastError(), 0)
  • _FTP_ProgressUpload Title und Text ändern

    • 0cool
    • 8. August 2016 um 21:21

    Hey Zusammen,

    ich bin gerade dabei ein Skript zu schreiben, dass eine Datei auf einen Server Per FTP überträgt. Das klappt auch soweit. Was nicht klappt ist den Title und den Text der Progressbar anzupassen. Ich konnte kein Beispiel finden, das mein Vorhaben abdeckt. Auch die AutoIT Hilfe Funktion brachte mich nicht weiter.

    Als erstes mein Skript

    AutoIt: ftp_file_upload
    #include <FTPEx.au3>
    #include <GUIConstantsEx.au3>
    #include <Misc.au3>
    #include <ProgressConstants.au3>
    
    
    
    
    Local $server = 'ftp.server.net'
    Local $username = 'user'
    Local $pass = 'passwd'
    Local $i_Passive = 0
    Local $i_ServerPort = 0
    
    
    
    
    Local $s_LocalFile = 'Local Path\file.exe'
    Local $s_RemoteFile = '/file.exe'
    
    
    _FTP_Upload($server, $username, $pass, $i_Passive, $i_ServerPort, $s_LocalFile, $s_RemoteFile)
    
    
    Func _FTP_Upload($server, $username, $pass, $i_Passive, $i_ServerPort, $s_LocalFile, $s_RemoteFile)
    	$Open = _FTP_Open('MyFTP Control')
    	;$ftp_open_err = @error
    
    
    	if Not @error  Then
    		ConsoleWrite("FTP Sitzung erfolgreich geöffnet" & @CRLF)
    		$Conn = _FTP_Connect($Open, $server, $username, $pass, $i_Passive, $i_ServerPort)
    		If Not @error Then
    			ConsoleWrite("FTP Verbindung erfolgreich hergestellt" & @CRLF)
    			ConsoleWrite("FTP upload wird gestartet." & @CRLF)
    			_FTP_ProgressUpload($Conn, $s_LocalFile, $s_RemoteFile)
    			if Not @error Then
    				ConsoleWrite("Datei erfolgreich übertragen" & @CRLF)
    			EndIf
    		EndIf
    	EndIf
    
    
    	Local $Ftpc = _FTP_Close($Open)
    	If Not @error Then ConsoleWrite("FTP Verbindung wurde erfolgreich geschlossen" & @CRLF)
    EndFunc
    Alles anzeigen

    Wie bekomme ich es hin, den Title der Progressbar anzupassen und das nicht der komplette Pfad samt Dateinamen in der Progressbar angezeigt wird sondern nur der Dateiname die Übertragen wird.

    Danke schon mal für eure Hilfe.


    Gruß

    0cool

  • Listview Inhalt in eine SQLite Datenbank schreiben

    • 0cool
    • 21. September 2013 um 16:07

    Hey BugFix,

    lange zeit ist es her seit Du mir geantwortet hast.
    Deine Antwort hat mir sehr geholfen.

    Die funktionierende Funktion sieht jetzt so aus:

    Spoiler anzeigen
    [autoit]


    Func AddToDatabase()
    Dim $i, $k
    Dim $strSQL
    Dim $ListViewArray[1][5]

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

    ; Sollte das Listview keine Einträge haben, wird die Funktion beendet.
    If $ListviewCount < 1 Then Return

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

    ; Wenn die Datenbank existiert wird Sie geöffnet. Wenn nicht wird Sie erstellt.
    if FileExists($db_data_dir) Then
    $db_data = _SQLite_Open($db_data_dir)

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

    Else
    $db_data = _SQLite_Open($db_data_dir)
    _SQLite_Exec($db_data, "CREATE TABLE tbl_ausgaben (" & '''' & $ListviewAusgabenUeberschrift[0] & ''',''' & $ListviewAusgabenUeberschrift[1] & ''',''' & $ListviewAusgabenUeberschrift[2] & ''',''' & $ListviewAusgabenUeberschrift[3] & ''',''' & $ListviewAusgabenUeberschrift[4] & ''',''' & $ListviewAusgabenUeberschrift[5] & '''' & ");")

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

    EndIf

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

    ; SQL String zusammen bauen
    Local $strSQL = 'BEGIN TRANSACTION;'

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

    ; Inset Anweisung zusammenstellen
    For $i = 0 To $ListviewCount -1
    $strSQL &= "INSERT INTO tbl_ausgaben (" & '''' & $ListviewAusgabenUeberschrift[0] & ''',''' & $ListviewAusgabenUeberschrift[1] & ''',''' & $ListviewAusgabenUeberschrift[2] & ''',''' & $ListviewAusgabenUeberschrift[3] & ''',''' & $ListviewAusgabenUeberschrift[4] & ''',''' & $ListviewAusgabenUeberschrift[5] & '''' & ") VALUES ("
    For $k = 0 To 5
    $strSQL &= "'" & _GUICtrlListView_GetItemText($ListviewAusgaben, $i, $k) & "',"
    Next
    $strSQL = StringTrimRight($strSQL, 1) & ");"
    Next

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

    $strSQL &= "COMMIT;"

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

    ; Der SQL String für das Einfügen der Daten in die Datenbank ist fertig zusammengestellt

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

    ; Die Listview wird geleert
    _GUICtrlListView_DeleteAllItems($ListviewAusgaben)

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

    ; Der SQL Befehl wird ausgeführt
    _SQLite_Exec($db_data, $strSQL)

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

    ;~ Local $d = _SQLite_Exec(-1, "Select rowid,* From tbl_ausgaben", "_select") ; _cb will be called for each row
    Local $d = _SQLite_Exec(-1, "Select * From tbl_ausgaben", "_select") ; _cb will be called for each row
    EndFunc

    [/autoit]


    Danke für Deine Hilfe!

    Gruß

    0cool

  • Listview Inhalt in eine SQLite Datenbank schreiben

    • 0cool
    • 19. Januar 2013 um 22:35

    Hey Bugfix,

    du hast vollkommen recht. Ich hab den Code auchgleich geändert.
    Die Funktion sieht jetzt folgendermaßen aus:

    Spoiler anzeigen
    [autoit]


    Func AddToDatabase()
    Dim $i, $k
    Dim $ListViewArray[1][5]
    _SQLite_Startup()
    if FileExists($db_data_dir) Then
    $db_data = _SQLite_Open($db_data_dir)
    For $i = 0 To $ListviewCount -1
    If $i > 0 Then ReDim $ListViewArray[UBound($ListViewArray, 1) +1][5]
    For $k = 0 To 5
    If $k > 0 Then ReDim $ListViewArray[UBound($ListViewArray, 1) +1][6]
    $ListViewArray[$i][$k] = _GUICtrlListView_GetItemText($ListviewAusgaben, $i, $k)
    Next
    Next
    _GUICtrlListView_DeleteAllItems($ListviewAusgaben)
    ;~ _ArrayDisplay($ListViewArray, "Array Anzeige")
    ;~ MsgBox(0,"", $ListViewArray[0][5])
    ;~ _SQLite_Exec($db_data, "insert into tbl_ausgaben (" & $ListviewAusgabenUeberschrift[0] & ',' & $ListviewAusgabenUeberschrift[1] & ',' & $ListviewAusgabenUeberschrift[2] & ',' & $ListviewAusgabenUeberschrift[3] & ',' & $ListviewAusgabenUeberschrift[4] & ',' & $ListviewAusgabenUeberschrift[5] & ") VALUES (" & $ListViewArray[0][0] & "," & $ListViewArray[0][1] & "," & $ListViewArray[0][2] & "," & $ListViewArray[0][3] & "," & $ListViewArray[0][4] & "," & $ListViewArray[0][5] & ");")
    For $i = 0 To $ListviewCount -1 Step +1
    _SQLite_Exec($db_data, "insert into tbl_ausgaben (" & $ListviewAusgabenUeberschrift[0] & ',' & $ListviewAusgabenUeberschrift[1] & ',' & $ListviewAusgabenUeberschrift[2] & ',' & $ListviewAusgabenUeberschrift[3] & ',' & $ListviewAusgabenUeberschrift[4] & ',' & $ListviewAusgabenUeberschrift[5] & ") VALUES (" & '''' & $ListViewArray[$i][0] & ''',''' & $ListViewArray[$i][1] & ''',''' & $ListViewArray[$i][2] & ''',''' & $ListViewArray[$i][3] & ''',''' & $ListViewArray[$i][4] & ''',''' & $ListViewArray[$i][5] & '''' & ");" & @CRLF)
    Next
    ;~ _SQLite_Exec($db_data, "insert into tbl_ausgaben (" & $ListviewAusgabenUeberschrift[0] & ',' & $ListviewAusgabenUeberschrift[1] & ',' & $ListviewAusgabenUeberschrift[2] & ',' & $ListviewAusgabenUeberschrift[3] & ',' & $ListviewAusgabenUeberschrift[4] & ',' & $ListviewAusgabenUeberschrift[5] & ") VALUES (2013-01-10," & $ListViewArray[0][1] & "," & $ListViewArray[0][2] & ",'CCC',4444,55555);")
    Else
    $db_data = _SQLite_Open($db_data_dir)
    _SQLite_Exec($db_data, "CREATE TABLE tbl_ausgaben (" & '''' & $ListviewAusgabenUeberschrift[0] & ''',''' & $ListviewAusgabenUeberschrift[1] & ''',''' & $ListviewAusgabenUeberschrift[2] & ''',''' & $ListviewAusgabenUeberschrift[3] & ''',''' & $ListviewAusgabenUeberschrift[4] & ''',''' & $ListviewAusgabenUeberschrift[5] & '''' & ");")

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

    EndIf

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

    ;~ Local $d = _SQLite_Exec(-1, "Select rowid,* From tbl_ausgaben", "_select") ; _cb will be called for each row
    Local $d = _SQLite_Exec(-1, "Select * From tbl_ausgaben", "_select") ; _cb will be called for each row

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

    EndFunc

    [/autoit]

    Danke für den Hinweis.

    Was ich noch sagen muss ist, das Skript ist noch in der Entwicklung.

    Danke für die Funktion. Ich werde sich sobald ich wieder Zeit hab Testen.


    Für Verbesserungsvorschläge bin ich aber immer offen.


    Gruß

    0cool

  • Listview Inhalt in eine SQLite Datenbank schreiben

    • 0cool
    • 19. Januar 2013 um 19:48

    Hallo Leute,

    ich habe ein Problem mit dem schreiben in eine SQLite Datenbank.
    In die letzte Spalte der Datenbank (Spalte 6), wird immer nur der Wert der letzten Zeile der Listview geschrieben. Wenn in der Listview nur eine Zeile eingetragen wurde, dann werden alle Spalten ordnungsgemäß befüllt.

    Jetzt erstmal ein paar vorab Infos:
    OS: WinXP Pro
    AutoIt Version: 3.3.8.1
    SQLite Version: _SQLite_LibVersion=3.7.2

    Der Code meines Skriptes ist der folgende:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <GUIListView.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <TreeViewConstants.au3>
    #include <GuiStatusBar.au3>
    #include <Array.au3>
    #include <Date.au3>
    #include <DateTimeConstants.au3>
    #include <GUIEdit.au3>
    #include <ButtonConstants.au3>
    #include<SQLite.au3>
    #include<SQLite.dll.au3>

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

    ;~ Variable deklarieren
    Global $menu_datei_schliessen
    Global $navigation_index, $StartStatus, $navigation_main, $navigation_main_ausgaben, $navigation_main_versicherungen, $navigation_main_einnahmen, $navigation_main_statistik
    Global $font, $komma, $eur
    Global $buttonHide, $buttonHinzufuegen, $buttonLoeschen
    Global $ListviewCount
    Global $db_data, $db_data_dir

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

    ;Veariable werden gefüllt
    $font = "Arial"
    $komma = "."
    $eur = "EUR"

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

    ;~ Variable mit Anfangswert für die Bearbeitung füllen
    $ListviewCount = 0
    $buttonHinzufuegen = -9999
    $buttonLoeschen = - 9999
    $buttonSpeichern = -9999

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

    ;Datenbank Variable
    $db_data_dir = @ScriptDir & "\data.db"

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

    ; Array für den Inhalt der GUIs
    Global $button, $buttonSchleifeEnde, $ausgabenSchleifenEnde
    Global $ListviewAusgaben

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

    $buttonSchleifeEnde = 2
    $ausgabenSchleifenEnde = 13
    $ListviewAusgabenUeberschrift = 5
    Dim $start[2]
    Dim $button[3]
    Dim $ausgaben[14]
    Dim $ListviewAusgabenUeberschrift[6]
    Dim $versicherungen[1]
    Dim $einnahmen[1]
    Dim $statistik[1]

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

    $ListviewAusgabenUeberschrift[0] = "Datum"
    $ListviewAusgabenUeberschrift[1] = "Laden"
    $ListviewAusgabenUeberschrift[2] = "Betrag"
    $ListviewAusgabenUeberschrift[3] = "Waehrung"
    $ListviewAusgabenUeberschrift[4] = "Bezahlt_mit"
    $ListviewAusgabenUeberschrift[5] = "Bereich"

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

    #Region ### START Koda GUI section ### Form=
    $main = GUICreate("Haushaltsbuch", 950, 700, 192, 114)
    menu()
    start()
    $Label1 = GUICtrlCreateLabel("Haushaltsbuch", 272, 10, 180, 28, $SS_CENTER)
    GUICtrlSetFont(-1, 18, 400, 0, $font)
    navigation()
    _GUICtrlStatusBar_Create($main)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $menu_datei_schliessen
    Exit
    Case $navigation_main
    main()
    Case $navigation_main_ausgaben
    ausgaben()
    Case $navigation_main_versicherungen
    versicherung()
    Case $navigation_main_einnahmen
    einnahmen()
    Case $navigation_main_statistik
    statistik()
    Case $buttonHinzufuegen
    AddListviewItem()
    Case $buttonLoeschen
    DelListViewItem()
    Case $buttonSpeichern
    AddToDatabase()
    EndSwitch
    WEnd

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

    Func menu()
    Dim $menu_datei, $menu_extra
    $menu_datei = GUICtrlCreateMenu("Datei")
    $menu_datei_schliessen = GUICtrlCreateMenuItem("Beenden", $menu_datei)
    $menu_extra = GUICtrlCreateMenu("Extra")
    $menu_extra_aktualisieren = GUICtrlCreateMenuItem("Aktualisieren", $menu_extra)
    $menu_extra_optionen = GUICtrlCreateMenuItem("Optionen", $menu_extra)
    EndFunc

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

    Func navigation()
    Dim $navigation
    $navigation = GUICtrlCreateTreeView(6, 50, 126, 600, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
    $navigation_main = GUICtrlCreateTreeViewItem("Navigation", $navigation)
    $navigation_main_ausgaben = GUICtrlCreateTreeViewItem("Ausgaben", $navigation_main)
    $navigation_main_versicherungen = GUICtrlCreateTreeViewItem("Versicherungen", $navigation_main)
    $navigation_main_einnahmen = GUICtrlCreateTreeViewItem("Einnahmen", $navigation_main)
    $navigation_main_statistik = GUICtrlCreateTreeViewItem("Statistik", $navigation_main)
    GUICtrlSetState($navigation_main, BitOR($GUI_EXPAND, $GUI_DEFBUTTON)) ; Expand the "General"-item and paint in bold
    EndFunc

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

    Func start()
    GUICtrlSetFont(10, 400, 0, $font)
    $navigation_index = 0
    $buttonHide = 0
    $Start[0] = "Guten Tag " & @UserName & "." & @CRLF & @CRLF _
    & "Vielen Dank das Sie sich für das Programm Haushaltsbuch entschieden haben." & @CRLF & @CRLF _
    & "Das Programm Haushaltsbuch, wurde für die Übersicht der Privaten Finanzen erstellt." _
    & @CRLF & "Das Haushaltsbuch wurde so einfach wie nur möglich gehalten. Es basiert auf der Einahmen Überschuss Rechnung." _
    & @CRLF & @CRLF _
    & @CRLF & "Sollten Sie mit dem Programm nicht zurecht kommen, wenden Sie sich an mich."
    $start[1] = GUICtrlCreateLabel($Start[0], 145, 50, 400, 400)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    EndFunc

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

    ;~ ########################################################################################################################
    ;~ ######################### Beginn der Funktionen, die über die Navigation aufgerufen werden #############################
    ;~ ########################################################################################################################

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

    Func main()
    $buttonHide = 0
    button()
    Select
    Case $navigation_index = 1
    ;~ GUICtrlSetState($Ausgaben[0], $GUI_HIDE)
    VersteckeAusgabenItems()
    GUICtrlSetState($start[1], $GUI_SHOW)
    Case $navigation_index = 2
    GUICtrlSetState($versicherungen[0], $GUI_HIDE)
    GUICtrlSetState($start[1], $GUI_SHOW)
    Case $navigation_index = 3
    GUICtrlSetState($einnahmen[0], $GUI_HIDE)
    GUICtrlSetState($start[1], $GUI_SHOW)
    Case $navigation_index = 4
    GUICtrlSetState($statistik[0], $GUI_HIDE)
    GUICtrlSetState($start[1], $GUI_SHOW)
    EndSelect
    $navigation_index = 0
    EndFunc

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

    Func ausgaben()
    $buttonHide = 1
    button()
    Select
    Case $navigation_index = 0
    GUICtrlSetState($start[1], $GUI_HIDE)
    ErstelleAusgabenItems()
    Case $navigation_index = 2
    GUICtrlSetState($versicherungen[0], $GUI_HIDE)
    ErstelleAusgabenItems()
    Case $navigation_index = 3
    GUICtrlSetState($einnahmen[0], $GUI_HIDE)
    ErstelleAusgabenItems()
    Case $navigation_index = 4
    GUICtrlSetState($statistik[0], $GUI_HIDE)
    ErstelleAusgabenItems()
    EndSelect
    $navigation_index = 1
    EndFunc

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

    Func versicherung()
    $buttonHide = 1
    button()
    Select
    Case $navigation_index = 0
    GUICtrlSetState($start[1], $GUI_HIDE)
    If $versicherungen[0] = "" Then
    $versicherungen[0] = GUICtrlCreateLabel("Versicherungen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($versicherungen[0], $GUI_SHOW)
    EndIf
    case $navigation_index = 1
    VersteckeAusgabenItems()
    If $versicherungen[0] = "" Then
    $versicherungen[0] = GUICtrlCreateLabel("Versicherungen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($versicherungen[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 3
    GUICtrlSetState($einnahmen[0], $GUI_HIDE)
    If $versicherungen[0] = "" Then
    $versicherungen[0] = GUICtrlCreateLabel("Versicherungen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($versicherungen[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 4
    GUICtrlSetState($statistik[0], $GUI_HIDE)
    If $versicherungen[0] = "" Then
    $versicherungen[0] = GUICtrlCreateLabel("Versicherungen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($versicherungen[0], $GUI_SHOW)
    EndIf
    EndSelect
    $navigation_index = 2
    EndFunc

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

    Func einnahmen()
    $buttonHide = 1
    button()
    Select
    Case $navigation_index = 0
    GUICtrlSetState($start[1], $GUI_HIDE)
    If $einnahmen[0] = "" Then
    $einnahmen[0] = GUICtrlCreateLabel("Einnahmen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($einnahmen[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 1
    VersteckeAusgabenItems()
    If $einnahmen[0] = "" Then
    $einnahmen[0] = GUICtrlCreateLabel("Einnahmen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($einnahmen[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 2
    GUICtrlSetState($versicherungen[0], $GUI_HIDE)
    If $einnahmen[0] = "" Then
    $einnahmen[0] = GUICtrlCreateLabel("Einnahmen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($einnahmen[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 4
    GUICtrlSetState($statistik[0], $GUI_HIDE)
    If $einnahmen[0] = "" Then
    $einnahmen[0] = GUICtrlCreateLabel("Einnahmen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($einnahmen[0], $GUI_SHOW)
    EndIf
    EndSelect
    $navigation_index = 3
    EndFunc

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

    Func statistik()
    $buttonHide = 0
    button()
    Select
    Case $navigation_index = 0
    GUICtrlSetState($start[1], $GUI_HIDE)
    If $statistik[0] = "" Then
    $statistik[0] = GUICtrlCreateLabel("Statistik", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($statistik[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 1
    VersteckeAusgabenItems()
    If $statistik[0] = "" Then
    $statistik[0] = GUICtrlCreateLabel("Statistik", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($statistik[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 2
    GUICtrlSetState($versicherungen[0], $GUI_HIDE)
    If $statistik[0] = "" Then
    $statistik[0] = GUICtrlCreateLabel("Statistik", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($statistik[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 3
    GUICtrlSetState($einnahmen[0], $GUI_HIDE)
    If $statistik[0] = "" Then
    $statistik[0] = GUICtrlCreateLabel("Statistik", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($statistik[0], $GUI_SHOW)
    EndIf
    EndSelect
    $navigation_index = 4
    EndFunc

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

    ;~ ########################################################################################################################
    ;~ ######################################### Ende der Navigations Funktionen ##############################################
    ;~ ########################################################################################################################

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

    ;~ ########################################################################################################################
    ;~ ####################### Beginn der Funktionen, um GUI Items zu erstellen, auszublenen oder einzublenden ################
    ;~ ########################################################################################################################

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

    Func button()
    Local $i
    If $navigation_index = "" Then
    If $button[0] = "" Then
    $button[0] = GUICtrlCreateButton("Hinzufügen", 860, 142, 82, 25, $BS_CENTER)
    If $button[0] <> 0 Then
    GUICtrlSetState($button[0], $GUI_HIDE)
    $buttonHide = 1
    $buttonHinzufuegen = $button[0]
    EndIf
    EndIf
    IF $button[1] = "" Then
    $button[1] = GUICtrlCreateButton("Löschen", 860, 172, 82, 25, $BS_CENTER)
    If $button[1] <> 0 Then
    GUICtrlSetState($button[1], $GUI_HIDE)
    $buttonLoeschen = $button[1]
    EndIf
    EndIf
    If $button[2] = "" Then
    $button[2] = GUICtrlCreateButton("Speichern", 860, 625, 82, 25, $BS_CENTER)
    If $button[2] <> 0 Then
    GUICtrlSetState($button[2], $GUI_HIDE)
    $buttonSpeichern = $button[2]
    EndIf
    EndIf
    EndIf

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

    Select
    Case $buttonHide = 0
    For $i = 0 To $buttonSchleifeEnde Step 1
    GUICtrlSetState($button[$i], $GUI_HIDE)
    Next
    Case $buttonHide = 1
    If $buttonHide = 1 Then
    For $i = 0 To $buttonSchleifeEnde Step 1
    GUICtrlSetState($button[$i], $GUI_SHOW)
    Next
    EndIf
    EndSelect

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

    EndFunc

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

    Func ErstelleAusgabenItems()
    Local $i
    If $Ausgaben[0] = "" Then
    $Ausgaben[0] = GUICtrlCreateLabel("Ausgaben", 145,50,100,25)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $Ausgaben[1] = GUICtrlCreateLabel("Datum", 165, 80, 60,15)
    $Ausgaben[2] = GUICtrlCreateDate("", 145, 98, 80, 20, $DTS_SHORTDATEFORMAT)
    $Ausgaben[3] = GUICtrlCreateLabel("Laden", 265, 80, 100, 15)
    $Ausgaben[4] = GUICtrlCreateCombo("", 230, 98, 100,20)
    $Ausgaben[5] = GUICtrlCreateLabel("Betrag", 345, 80, 50, 15)
    $Ausgaben[6] = GUICtrlCreateInput("", 335, 98, 25, 20, $ES_Number)
    $Ausgaben[7] = GUICtrlCreateLabel($komma, 361, 107, 5, 22)
    $Ausgaben[8] = GUICtrlCreateInput("", 367, 98, 20, 20, $ES_Number)
    $Ausgaben[9] = GUICtrlCreateLabel($eur, 389, 101, 25, 20)
    $Ausgaben[10] = GUICtrlCreateLabel("Bezahlart", 437,80, 80, 15)
    $Ausgaben[11] = GUICtrlCreateCombo("", 419, 98, 100,20)
    $Ausgaben[12] = GUICtrlCreateLabel("Bereich", 547, 80, 80, 15)
    $Ausgaben[13] = GUICtrlCreateCombo("", 524,98, 100, 20)
    $ListviewAusgaben = GUICtrlCreateListView($ListviewAusgabenUeberschrift[0] & '|' & $ListviewAusgabenUeberschrift[1] & '|' & $ListviewAusgabenUeberschrift[2] & '|' & $ListviewAusgabenUeberschrift[3] & '|' & $ListviewAusgabenUeberschrift[4] & '|' & $ListviewAusgabenUeberschrift[5], 145, 123, 705, 482)
    _GUICtrlListView_SetColumnWidth($ListviewAusgaben, 0, 80)
    _GUICtrlListView_SetColumnWidth($ListviewAusgaben, 1, 170)
    _GUICtrlListView_SetColumnWidth($ListviewAusgaben, 2, 80)
    _GUICtrlListView_SetColumnWidth($ListviewAusgaben, 3, 50)
    _GUICtrlListView_SetColumnWidth($ListviewAusgaben, 4, 125)
    _GUICtrlListView_SetColumnWidth($ListviewAusgaben, 5, 196)
    Else
    For $i = 0 to $ausgabenSchleifenEnde Step 1
    GUICtrlSetState($Ausgaben[$i], $GUI_SHOW)
    Next
    GUICtrlSetState($ListviewAusgaben, $GUI_SHOW)
    EndIf
    EndFunc

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

    Func VersteckeAusgabenItems()
    Dim $i
    For $i = 0 to $ausgabenSchleifenEnde Step 1
    GUICtrlSetState($Ausgaben[$i], $GUI_HIDE)
    Next
    GUICtrlSetState($ListviewAusgaben, $GUI_HIDE)
    EndFunc

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

    ;~ ########################################################################################################################
    ;~ ####################### Ende der Funktionen, um GUI Items zu erstellen, auszublenen oder einzublenden ##################
    ;~ ########################################################################################################################

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

    ;~ ########################################################################################################################
    ;~ ############################### Anfang der Funktionen, um Die Listviews zu bearbeiten ##################################
    ;~ ########################################################################################################################

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

    Func AddListviewItem()
    Local $betrag, $AddListView
    $betrag = GUICtrlRead($Ausgaben[6]) & GUICtrlRead($Ausgaben[7]) & GUICtrlRead($Ausgaben[8])
    If GUICtrlRead($Ausgaben[4]) = "" Or GUICtrlRead($Ausgaben[6]) = "" Or GUICtrlRead($Ausgaben[8]) = "" Or GUICtrlRead($Ausgaben[11]) = "" Or GUICtrlRead($Ausgaben[13]) = "" Then
    MsgBox(48, "Warung", "Es sind nicht alle Felder ausgefüllt!" & @CRLF _
    & "Bitte füllen Sie alle Felder aus!")
    Else
    $AddListView = GUICtrlCreateListViewItem(GUICtrlRead($Ausgaben[2]) & '|' & GUICtrlRead($Ausgaben[4]) & '|' & $betrag & '|' & GUICtrlRead($Ausgaben[9]) & '|' & GUICtrlRead($Ausgaben[11]) & '|' & GUICtrlRead($Ausgaben[13]), $ListviewAusgaben)
    If $AddListView <> 0 Then
    ControlSetText("", "", $Ausgaben[4], "")
    ControlSetText("", "", $Ausgaben[6], "")
    ControlSetText("", "", $Ausgaben[8], "")
    ControlSetText("", "", $Ausgaben[11], "")
    ControlSetText("", "", $Ausgaben[13], "")
    $ListviewCount = _GUICtrlListView_GetItemCount($ListviewAusgaben)
    EndIf
    EndIf
    EndFunc

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

    Func DelListViewItem()
    If $ListviewCount > 0 Then
    _GUICtrlListView_DeleteItemsSelected($ListviewAusgaben)
    EndIf
    EndFunc

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

    Func AddToDatabase()
    Dim $i, $k
    Dim $ListViewArray[1][5]
    _SQLite_Startup()
    if FileExists($db_data_dir) Then
    $db_data = _SQLite_Open($db_data_dir)
    For $i = 0 To $ListviewCount -1
    If $i > 0 Then ReDim $ListViewArray[UBound($ListViewArray, 1) +1][5]
    For $k = 0 To 5
    If $k > 0 Then ReDim $ListViewArray[UBound($ListViewArray, 1) +1][6]
    $ListViewArray[$i][$k] = _GUICtrlListView_GetItemText($ListviewAusgaben, $i, $k)
    Next
    Next
    _GUICtrlListView_DeleteAllItems($ListviewAusgaben)
    ;~ _ArrayDisplay($ListViewArray, "Array Anzeige")
    ;~ MsgBox(0,"", $ListViewArray[0][5])
    ;~ _SQLite_Exec($db_data, "insert into tbl_ausgaben (" & $ListviewAusgabenUeberschrift[0] & ',' & $ListviewAusgabenUeberschrift[1] & ',' & $ListviewAusgabenUeberschrift[2] & ',' & $ListviewAusgabenUeberschrift[3] & ',' & $ListviewAusgabenUeberschrift[4] & ',' & $ListviewAusgabenUeberschrift[5] & ") VALUES (" & $ListViewArray[0][0] & "," & $ListViewArray[0][1] & "," & $ListViewArray[0][2] & "," & $ListViewArray[0][3] & "," & $ListViewArray[0][4] & "," & $ListViewArray[0][5] & ");")
    For $i = 0 To $ListviewCount -1 Step +1
    _SQLite_Exec($db_data, "insert into tbl_ausgaben (" & $ListviewAusgabenUeberschrift[0] & ',' & $ListviewAusgabenUeberschrift[1] & ',' & $ListviewAusgabenUeberschrift[2] & ',' & $ListviewAusgabenUeberschrift[3] & ',' & $ListviewAusgabenUeberschrift[4] & ',' & $ListviewAusgabenUeberschrift[5] & ") VALUES (" & '''' & $ListViewArray[$i][0] & ''',''' & $ListViewArray[$i][1] & ''',''' & $ListViewArray[$i][2] & ''',''' & $ListViewArray[$i][3] & ''',''' & $ListViewArray[$i][4] & ''',''' & $ListViewArray[$i][5] & '''' & ");" & @CRLF)
    Next
    ;~ _SQLite_Exec($db_data, "insert into tbl_ausgaben (" & $ListviewAusgabenUeberschrift[0] & ',' & $ListviewAusgabenUeberschrift[1] & ',' & $ListviewAusgabenUeberschrift[2] & ',' & $ListviewAusgabenUeberschrift[3] & ',' & $ListviewAusgabenUeberschrift[4] & ',' & $ListviewAusgabenUeberschrift[5] & ") VALUES (2013-01-10," & $ListViewArray[0][1] & "," & $ListViewArray[0][2] & ",'CCC',4444,55555);")
    Else
    $db_data = _SQLite_Open($db_data_dir)
    For $i = 0 To $ListviewCount -1 Step +1
    _SQLite_Exec($db_data, "CREATE TABLE tbl_ausgaben (" & '''' & $ListviewAusgabenUeberschrift[$i][0] & ''',''' & $ListviewAusgabenUeberschrift[$i][1] & ''',''' & $ListviewAusgabenUeberschrift[$i][2] & ''',''' & $ListviewAusgabenUeberschrift[$i][3] & ''',''' & $ListviewAusgabenUeberschrift[$i][4] & ''',''' & $ListviewAusgabenUeberschrift[$i][5] & '''' & ");")
    Next
    EndIf

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

    ;~ Local $d = _SQLite_Exec(-1, "Select rowid,* From tbl_ausgaben", "_select") ; _cb will be called for each row
    Local $d = _SQLite_Exec(-1, "Select * From tbl_ausgaben", "_select") ; _cb will be called for each row

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

    EndFunc

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

    Func _select($aRow)
    For $s In $aRow
    ConsoleWrite($s & @TAB)
    Next
    ConsoleWrite(@CRLF)
    EndFunc

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

    _SQLite_Close($db_data)
    _SQLite_Shutdown()
    ;~ ########################################################################################################################
    ;~ ################################ Ende der Funktionen, um Die Listviews zu bearbeiten ###################################
    ;~ ########################################################################################################################

    [/autoit]

    Eintrag in die Datenbank, wenn 2 Zeilen in der Listview stehen:

    Spoiler anzeigen
    SQL
    19.01.2013	1	2.3	EUR	4		
    19.01.2013	6	7.8	EUR	9	0

    In der ersten Zeile, Spalte 6, fehlt der Wert (5).

    Der Eintrag in die Datenbank, wird der Funktion "AddToDatabase()" ab Zeile 422, erledigt.
    Um den Inhalt der angesprochenen Funktion geht es mir. Ich kann keinen Fehler entdecken. Aber da die Einträge in die Datenbank nicht ordnungsgemäß ausgeführt werden, muss ja irgendwo in der Funktion der Wurm stecken. Ich komme bloss nicht drauf wo der Fehler liegt und brauche eure Hilfe.


    Danke schon mal für eure Hilfe!

    Gruß

    0cool

  • Funktion wird ungewollt und wiederholt aufgerufen

    • 0cool
    • 8. Januar 2013 um 23:33

    Danke für euer Antworten.
    autoBert: Danke das wars.

    Gruß

    0cool

  • Funktion wird ungewollt und wiederholt aufgerufen

    • 0cool
    • 8. Januar 2013 um 20:25

    Hey Leute,

    ich in dem Skript das ich gerade entwickle, wird eine Funktion immer wieder wie in einer schleife aufgerufen.

    Ein paar vorab Infos:
    Entwicklungsumgebung: SciTE 3.2.0
    OS: WINXP Pro
    AutoIt3Wrapper v.2.1.0.33

    Ich hab mal das gesamte Sktipt gepostet, damit ich nichts vergesse.
    Es dreht sich um die Funktion AddListview() (Beginn Zeile 409). Die Funktion wird in der Zeile 105 aufgerufen.

    Eigendlich sollten die Funktion erst ausgeführt werden, wenn der Button Hinzufügen (Der über die Funktion button() erstellt wird) gedrückt wird.
    Im Moment, wird die Funktion beim start des Skripts ununterbrochen aufgerufen und ich kann mich nicht erklären woran das liegt.

    Spoiler anzeigen
    [autoit]


    ;~ ###################################################################################################################################
    ;~ ###################################################################################################################################
    ;~ ## ##
    ;~ ## Skript Name: Haushaltsbuch.exe ##
    ;~ ## Author: Thorsten Zelt ##
    ;~ ## Erstell Datum: 05.01.2013 ##
    ;~ ## ##
    ;~ ## Funktion: Übersicht über die Privaten Finazen ##
    ;~ ## ##
    ;~ ## Erläuterungen: Navigation: ##
    ;~ ## Der Wert der Variable "$navigation_index" bestimmt, welcher Menü Punkt in der Navigation ausgewählt wurde. ##
    ;~ ## - Wert 0: Navigation ##
    ;~ ## - Wert 1: Ausgaben ##
    ;~ ## - Wert 2: Versicherung ##
    ;~ ## - Wert 3: Einnahmen ##
    ;~ ## - Wert 4: Statistik ##
    ;~ ## ##
    ;~ ## GUI Arrays: ##
    ;~ ## Um die größes des jeweiligen Arrays zu ändern, müssen 2 Variable angepasst werden. ##
    ;~ ## Bspl. Ausgaben: ##
    ;~ ## - $ausgabenSchleifenEnde +1 (Index beginnt bei 1) ##
    ;~ ## - Dim $ausgaben[] +1 (Index beginnt bei 0) ##
    ;~ ## Button (Hinzufügen, Löschen, Speichern): ##
    ;~ ## In der Funktion button() werden die Button erstellt, eingeblendet und aufgeblendet. ##
    ;~ ## Die Variabel $buttonHide bestimmt bestimmt ob die Buttons eingeblendet oder ausgeblendet werden. ##
    ;~ ## Wert 0: Buttons werden ausgeblendet ##
    ;~ ## Wert 1: Buttons werden eingeblendet ##
    ;~ ## ##
    ;~ ###################################################################################################################################
    ;~ ###################################################################################################################################

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

    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <GUIListView.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <TreeViewConstants.au3>
    #include <GuiStatusBar.au3>
    #include <Array.au3>
    #include <Date.au3>
    #include <DateTimeConstants.au3>
    #include <GUIEdit.au3>

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

    ;~ Variable deklarieren
    Global $menu_datei_schliessen
    Global $navigation_index, $StartStatus, $navigation_main, $navigation_main_ausgaben, $navigation_main_versicherungen, $navigation_main_einnahmen, $navigation_main_statistik
    Global $font, $komma, $eur
    Global $buttonHide, $buttonHinzufuegen
    Global $hallo

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

    ;Veariable werden gefüllt
    $font = "Arial"
    $komma = ","
    $eur = "€"

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

    ; Array für den Inhalt der GUIs
    Global $button, $buttonSchleifeEnde, $ausgabenSchleifenEnde
    Global $ListviewAusgaben

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

    $buttonSchleifeEnde = 2
    $ausgabenSchleifenEnde = 13
    $ListviewAusgabenUeberschrift = 4
    Dim $start[2]
    Dim $button[3]
    Dim $ausgaben[14]
    Dim $ListviewAusgabenUeberschrift[5]
    Dim $versicherungen[1]
    Dim $einnahmen[1]
    Dim $statistik[1]

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

    $ListviewAusgabenUeberschrift[0] = "Datum"
    $ListviewAusgabenUeberschrift[1] = "Laden"
    $ListviewAusgabenUeberschrift[2] = "Betrag"
    $ListviewAusgabenUeberschrift[3] = "Bezahlt mit"
    $ListviewAusgabenUeberschrift[4] = "Bereich"

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

    #Region ### START Koda GUI section ### Form=
    $main = GUICreate("Haushaltsbuch", 950, 700, 192, 114)
    menu()
    start()
    $Label1 = GUICtrlCreateLabel("Haushaltsbuch", 272, 10, 180, 28, $SS_CENTER)
    GUICtrlSetFont(-1, 18, 400, 0, $font)
    navigation()
    _GUICtrlStatusBar_Create($main)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $menu_datei_schliessen
    Exit
    Case $navigation_main
    main()
    Case $navigation_main_ausgaben
    ausgaben()
    Case $navigation_main_versicherungen
    versicherung()
    Case $navigation_main_einnahmen
    einnahmen()
    Case $navigation_main_statistik
    statistik()
    Case $buttonHinzufuegen
    AddListview()
    EndSwitch
    WEnd

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

    Func menu()
    Dim $menu_datei, $menu_extra
    $menu_datei = GUICtrlCreateMenu("Datei")
    $menu_datei_schliessen = GUICtrlCreateMenuItem("Beenden", $menu_datei)
    $menu_extra = GUICtrlCreateMenu("Extra")
    $menu_extra_aktualisieren = GUICtrlCreateMenuItem("Aktualisieren", $menu_extra)
    $menu_extra_optionen = GUICtrlCreateMenuItem("Optionen", $menu_extra)
    EndFunc

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

    Func navigation()
    Dim $navigation
    $navigation = GUICtrlCreateTreeView(6, 50, 126, 600, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
    $navigation_main = GUICtrlCreateTreeViewItem("Navigation", $navigation)
    $navigation_main_ausgaben = GUICtrlCreateTreeViewItem("Ausgaben", $navigation_main)
    $navigation_main_versicherungen = GUICtrlCreateTreeViewItem("Versicherungen", $navigation_main)
    $navigation_main_einnahmen = GUICtrlCreateTreeViewItem("Einnahmen", $navigation_main)
    $navigation_main_statistik = GUICtrlCreateTreeViewItem("Statistik", $navigation_main)
    GUICtrlSetState($navigation_main, BitOR($GUI_EXPAND, $GUI_DEFBUTTON)) ; Expand the "General"-item and paint in bold
    EndFunc

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

    Func start()
    GUICtrlSetFont(10, 400, 0, $font)
    $navigation_index = 0
    $buttonHide = 0
    $Start[0] = "Guten Tag " & @UserName & "." & @CRLF & @CRLF _
    & "Vielen Dank das Sie sich für das Programm Haushaltsbuch entschieden haben." & @CRLF & @CRLF _
    & "Das Programm Haushaltsbuch, wurde für die Übersicht der Privaten Finanzen erstellt." _
    & @CRLF & "Das Haushaltsbuch wurde so einfach wie nur möglich gehalten. Es basiert auf der Einahmen Überschuss Rechnung." _
    & @CRLF & @CRLF _
    & @CRLF & "Sollten Sie mit dem Programm nicht zurecht kommen, wenden Sie sich an mich."
    $start[1] = GUICtrlCreateLabel($Start[0], 145, 50, 400, 400)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    EndFunc

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

    ;~ ########################################################################################################################
    ;~ ######################### Beginn der Funktionen, die über die Navigation aufgerufen werden #############################
    ;~ ########################################################################################################################

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

    Func main()
    $buttonHide = 0
    button()
    Select
    Case $navigation_index = 1
    ;~ GUICtrlSetState($Ausgaben[0], $GUI_HIDE)
    VersteckeAusgabenItems()
    GUICtrlSetState($start[1], $GUI_SHOW)
    Case $navigation_index = 2
    GUICtrlSetState($versicherungen[0], $GUI_HIDE)
    GUICtrlSetState($start[1], $GUI_SHOW)
    Case $navigation_index = 3
    GUICtrlSetState($einnahmen[0], $GUI_HIDE)
    GUICtrlSetState($start[1], $GUI_SHOW)
    Case $navigation_index = 4
    GUICtrlSetState($statistik[0], $GUI_HIDE)
    GUICtrlSetState($start[1], $GUI_SHOW)
    EndSelect
    $navigation_index = 0
    EndFunc

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

    Func ausgaben()
    $buttonHide = 1
    button()
    Select
    Case $navigation_index = 0
    GUICtrlSetState($start[1], $GUI_HIDE)
    ErstelleAusgabenItems()
    Case $navigation_index = 2
    GUICtrlSetState($versicherungen[0], $GUI_HIDE)
    ErstelleAusgabenItems()
    Case $navigation_index = 3
    GUICtrlSetState($einnahmen[0], $GUI_HIDE)
    ErstelleAusgabenItems()
    Case $navigation_index = 4
    GUICtrlSetState($statistik[0], $GUI_HIDE)
    ErstelleAusgabenItems()
    EndSelect
    $navigation_index = 1
    EndFunc

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

    Func versicherung()
    $buttonHide = 1
    button()
    Select
    Case $navigation_index = 0
    GUICtrlSetState($start[1], $GUI_HIDE)
    If $versicherungen[0] = "" Then
    $versicherungen[0] = GUICtrlCreateLabel("Versicherungen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($versicherungen[0], $GUI_SHOW)
    EndIf
    case $navigation_index = 1
    VersteckeAusgabenItems()
    If $versicherungen[0] = "" Then
    $versicherungen[0] = GUICtrlCreateLabel("Versicherungen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($versicherungen[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 3
    GUICtrlSetState($einnahmen[0], $GUI_HIDE)
    If $versicherungen[0] = "" Then
    $versicherungen[0] = GUICtrlCreateLabel("Versicherungen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($versicherungen[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 4
    GUICtrlSetState($statistik[0], $GUI_HIDE)
    If $versicherungen[0] = "" Then
    $versicherungen[0] = GUICtrlCreateLabel("Versicherungen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($versicherungen[0], $GUI_SHOW)
    EndIf
    EndSelect
    $navigation_index = 2
    EndFunc

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

    Func einnahmen()
    $buttonHide = 1
    button()
    Select
    Case $navigation_index = 0
    GUICtrlSetState($start[1], $GUI_HIDE)
    If $einnahmen[0] = "" Then
    $einnahmen[0] = GUICtrlCreateLabel("Einnahmen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($einnahmen[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 1
    VersteckeAusgabenItems()
    If $einnahmen[0] = "" Then
    $einnahmen[0] = GUICtrlCreateLabel("Einnahmen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($einnahmen[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 2
    GUICtrlSetState($versicherungen[0], $GUI_HIDE)
    If $einnahmen[0] = "" Then
    $einnahmen[0] = GUICtrlCreateLabel("Einnahmen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($einnahmen[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 4
    GUICtrlSetState($statistik[0], $GUI_HIDE)
    If $einnahmen[0] = "" Then
    $einnahmen[0] = GUICtrlCreateLabel("Einnahmen", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($einnahmen[0], $GUI_SHOW)
    EndIf
    EndSelect
    $navigation_index = 3
    EndFunc

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

    Func statistik()
    $buttonHide = 0
    button()
    Select
    Case $navigation_index = 0
    GUICtrlSetState($start[1], $GUI_HIDE)
    If $statistik[0] = "" Then
    $statistik[0] = GUICtrlCreateLabel("Statistik", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($statistik[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 1
    VersteckeAusgabenItems()
    If $statistik[0] = "" Then
    $statistik[0] = GUICtrlCreateLabel("Statistik", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($statistik[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 2
    GUICtrlSetState($versicherungen[0], $GUI_HIDE)
    If $statistik[0] = "" Then
    $statistik[0] = GUICtrlCreateLabel("Statistik", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($statistik[0], $GUI_SHOW)
    EndIf
    Case $navigation_index = 3
    GUICtrlSetState($einnahmen[0], $GUI_HIDE)
    If $statistik[0] = "" Then
    $statistik[0] = GUICtrlCreateLabel("Statistik", 145,50,120,25)
    GUICtrlSetFont(-1, 12, 400, 0, $font)
    Else
    GUICtrlSetState($statistik[0], $GUI_SHOW)
    EndIf
    EndSelect
    $navigation_index = 4
    EndFunc

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

    ;~ ########################################################################################################################
    ;~ ######################################### Ende der Navigations Funktionen ##############################################
    ;~ ########################################################################################################################

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

    ;~ ########################################################################################################################
    ;~ ####################### Beginn der Funktionen, um GUI Items zu erstellen, auszublenen oder einzublenden ################
    ;~ ########################################################################################################################

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

    Func button()
    Local $i
    If $navigation_index = "" Then
    If $button[0] = "" Then
    $button[0] = GUICtrlCreateButton("Hinzufügen", 860, 142, 82, 25)
    If $button[0] <> 0 Then
    GUICtrlSetState($button[0], $GUI_HIDE)
    $buttonHide = 1
    $buttonHinzufuegen = $button[0]
    EndIf
    EndIf
    IF $button[1] = "" Then
    $button[1] = GUICtrlCreateButton("Löschen", 860, 172, 82, 25)
    If $button[1] <> 0 Then
    GUICtrlSetState($button[1], $GUI_HIDE)
    EndIf
    EndIf
    If $button[2] = "" Then
    $button[2] = GUICtrlCreateButton("Speichern", 860, 625, 82, 25)
    If $button[2] <> 0 Then
    GUICtrlSetState($button[2], $GUI_HIDE)
    EndIf
    EndIf
    EndIf

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

    Select
    Case $buttonHide = 0
    For $i = 0 To $buttonSchleifeEnde Step 1
    GUICtrlSetState($button[$i], $GUI_HIDE)
    Next
    Case $buttonHide = 1
    If $buttonHide = 1 Then
    For $i = 0 To $buttonSchleifeEnde Step 1
    GUICtrlSetState($button[$i], $GUI_SHOW)
    Next
    EndIf
    EndSelect

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

    EndFunc

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

    Func ErstelleAusgabenItems()
    Local $i
    If $Ausgaben[0] = "" Then
    $Ausgaben[0] = GUICtrlCreateLabel("Ausgaben", 145,50,100,25)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $Ausgaben[1] = GUICtrlCreateLabel("Datum", 165, 80, 60,15)
    $Ausgaben[2] = GUICtrlCreateDate("", 145, 98, 80, 20, $DTS_SHORTDATEFORMAT)
    $Ausgaben[3] = GUICtrlCreateLabel("Laden", 265, 80, 100, 15)
    $Ausgaben[4] = GUICtrlCreateCombo("", 230, 98, 100,20)
    $Ausgaben[5] = GUICtrlCreateLabel("Betrag", 345, 80, 50, 15)
    $Ausgaben[6] = GUICtrlCreateInput("", 335, 98, 25, 20, $ES_Number)
    $Ausgaben[7] = GUICtrlCreateLabel(",", 361, 107, 5, 22)
    $Ausgaben[8] = GUICtrlCreateInput("", 367, 98, 20, 20, $ES_Number)
    $Ausgaben[9] = GUICtrlCreateLabel($eur, 389, 101, 8, 20)
    $Ausgaben[10] = GUICtrlCreateLabel("Bezahlart", 420,80, 80, 15)
    $Ausgaben[11] = GUICtrlCreateCombo("", 402, 98, 100,20)
    $Ausgaben[12] = GUICtrlCreateLabel("Bereich", 530, 80, 80, 15)
    $Ausgaben[13] = GUICtrlCreateCombo("", 507,98, 100, 20)
    $ListviewAusgaben = GUICtrlCreateListView($ListviewAusgabenUeberschrift[0] & '|' & $ListviewAusgabenUeberschrift[1] & '|' & $ListviewAusgabenUeberschrift[2] & '|' & $ListviewAusgabenUeberschrift[3] & '|' & $ListviewAusgabenUeberschrift[4], 145, 123, 705, 482)
    _GUICtrlListView_SetColumnWidth($ListviewAusgaben, 0, 80)
    _GUICtrlListView_SetColumnWidth($ListviewAusgaben, 1, 200)
    _GUICtrlListView_SetColumnWidth($ListviewAusgaben, 2, 80)
    _GUICtrlListView_SetColumnWidth($ListviewAusgaben, 3, 145)
    _GUICtrlListView_SetColumnWidth($ListviewAusgaben, 4, 196)
    _GUICtrlListView_RegisterSortCallBack($ListviewAusgaben)

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

    Else
    For $i = 0 to $ausgabenSchleifenEnde Step 1
    GUICtrlSetState($Ausgaben[$i], $GUI_SHOW)
    Next
    GUICtrlSetState($ListviewAusgaben, $GUI_SHOW)
    EndIf
    EndFunc

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

    Func VersteckeAusgabenItems()
    Dim $i
    For $i = 0 to $ausgabenSchleifenEnde Step 1
    GUICtrlSetState($Ausgaben[$i], $GUI_HIDE)
    Next
    GUICtrlSetState($ListviewAusgaben, $GUI_HIDE)
    EndFunc

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

    ;~ ########################################################################################################################
    ;~ ####################### Ende der Funktionen, um GUI Items zu erstellen, auszublenen oder einzublenden ##################
    ;~ ########################################################################################################################

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

    ;~ ########################################################################################################################
    ;~ ############################### Anfang der Funktionen, um Die Listviews zu bearbeiten ##################################
    ;~ ########################################################################################################################

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

    Func AddListview()
    GUICtrlCreateLabel("test", 400,400,100,25)
    EndFunc

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

    ;~ ########################################################################################################################
    ;~ ################################ Ende der Funktionen, um Die Listviews zu bearbeiten ###################################
    ;~ ########################################################################################################################

    [/autoit]

    Wo liegt mein Fehler, und wie kann er behoben werden?

    Ich danke schon mal im vorraus für eure Hilfe!


    Gruß

    0cool

  • Funktion RunAs: Bat Datei wird nicht mit Administrativen Rechten ausgeführt

    • 0cool
    • 26. November 2012 um 20:27

    @Cyrox: Genau ich will für ein Programm das ich über das Skript ausführe Admin rechte.

    Der Benutzernamen und das Passwort werde im Skript hinterlegt. Und die Bat Datei wird im Administrativen Kontext ausgeführt.

    Ich hab eine Zeile Code gefunde die leider nur hab Funktioniert.

    Code:

    [autoit]

    RunAs($admin, @ComputerName, $pw, 0, @AutoItExe & ' /AutoIt3ExecuteLine "ShellExecute(''' & $advFirewall & ''')"', @ScriptDir)

    [/autoit]

    Aber die Bat Datei lässt sich ausführen. Nur wie ich den Parameter den die Bat Datei benötigt mitgeben kann weiss ich nicht.

    Wie kann ich den Parameter an die Bat Datei mit übergeben?

    Gruß

    0cool

  • Funktion RunAs: Bat Datei wird nicht mit Administrativen Rechten ausgeführt

    • 0cool
    • 26. November 2012 um 12:23

    @veronesi: Danke für die Idee. Mein erster Versuch das Skript über RunAs zu starten war ohne das Profil zu laden. Leider hat das auch nicht geklappt.

    Danke an alle für eure Hilfe!
    Doch alle Versuche führten immer wieder dazu, dass der Benutzername und das Passwort des Admin abgefragt werden.
    Ich würde gerne die Admin Anmelde Daten im Skript als Parameter des Programm Aufrufs hinterlegen, damit das Skript als Logon Skript benutzt werden kann. Egal ob der der sich anmeldet Admin ist oder nicht.

    @Cyrox: Kann ich bei deinem Vorschlag als Parameter Benutzername und Passwort hinterlegen? Wenn ja, kann du bitte die Syntax Posten? Ich habs bis jetzt nicht hinbekommen.

    [Edit]
    Es kann sein das ich gerade im Forum die Lösung gefunden habe. Ich muss es aber noch Testen.
    Link: [ gelöst ] ShellExecuteAs???

    Sobald ich diesen Weg getestet habe, gebe ich bescheid.
    [/Edit]

    Gruß

    0cool

  • Funktion RunAs: Bat Datei wird nicht mit Administrativen Rechten ausgeführt

    • 0cool
    • 25. November 2012 um 01:00

    Danke für eure Antworten!

    @Cyrox: Ja ich benutzte den Bat2exe Konvertor. Da ich dachte ok vielleicht klappts mit einer EXE Datei besser.

    Leider führte der Ansatz auch nicht zum Ziel.

    Wenn ich die Funktion #RequireAdmin am mit angebe, funktioniert das Skript zwar tadellos, blos ist das nicht der Weg den ich gehen kann.
    Bei dem Skript handelt es sich um ein Logon Skript. Natürlich sollte das Skript im Hintergrund laufen, ohne das der Anwender etwas bestätigen muss. Abgesehen davon, muss das Skript auch laufen, wenn der Anwender kein Admin ist, und auch nicht die Möglichkeit hat das Skript über ein Admin Konto auszuführen.
    Wie gesagt, es handelt sich um ein Logon Skript.

    @Cyrox: ich werde es mit der Funktion ShellExecute so wie du es beschrieben hast probieren und bin gespannt, ob es klappt.


    Gruß

    0cool

  • Funktion RunAs: Bat Datei wird nicht mit Administrativen Rechten ausgeführt

    • 0cool
    • 24. November 2012 um 22:27

    name22: Schau Dir mal die Zeile 17 in meinen Skript an. In dieser Zeile wird die Batch Datei aufgerufen.

    Gruß

    0cool

  • Funktion RunAs: Bat Datei wird nicht mit Administrativen Rechten ausgeführt

    • 0cool
    • 24. November 2012 um 21:10

    Hallo Leute,

    ich bin gerade dabei ein Skript zu schreiben, das ein BAT Datei samt Parameter als Administrator ausführen soll. Die Bat Datei wird auch ausgeführt, aber eben nicht mit Administrativen rechten. Benutzername und Passwort stimmen.

    Schon mal ein paar vorab Informationen:
    OS: WIN7 Home Premium
    UAC ist eingeschaltet.

    Mein bisheriger Code sieht so aus:

    Spoiler anzeigen
    [autoit]


    ;~ Varibale werden geladen
    $path = "C:\Program Files\Tools\Autologon"
    $bat = "advFirewall.exe"
    $advFirewall = $path & "\" & $bat
    $admin = "Admin"
    $pw = "*********"

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

    If FileExists($advFirewall) Then
    MsgBox(64, "Erfolg", "Die Datei " & $advFirewall & " existiert.")
    Else
    MsgBox(64, "Erfolg", "Die Datei " & $advFirewall & " existiert nicht.")
    Exit
    EndIf

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

    ;~ MsgBox(64,"", $path)
    ;~ #RequireAdmin
    RunAsWait($admin,@ComputerName, $pw, 1, $advFirewall & " AG_Beamer", $path)
    ;~ ShellExecute($advFirewall, "AG_Beamer", $path, "open", @SW_MAXIMIZE)
    ;~ Sleep(2000)
    RunAs($admin, @ComputerName, $pw, 0, "gpupdate /force", @SystemDir)
    Exit

    [/autoit]

    Der Code der aufgerufenen BAT Datei sieht ist der folgende:

    Spoiler anzeigen
    Code
    @echo off
    set user=%1
    set ScriptDir=Í%
    
    
    %systemroot%\System32\netsh.exe advfirewall import "%ScriptDir%\advfirewall_%user%.wfw"
    pause

    Als Fehlermeldung bekomme ich die folgende Meldung:

    Spoiler anzeigen
    Code
    Die Richtlinie kann nicht importiert werden (Fehler: 0x522). Stellen Sie sicher,
     dass der Dateiname richtig ist, dass auf die Datei zugegriffen werden kann und
    dass es sich dabei um eine gültige Richtliniendatei für die Windows-Firewall han
    delt.

    Wenn ich die BAT Datei über eine Administrative CMD ausführe, läuft sie erfolgreich durch.

    Ich geh mal davon aus, das die BAT Datei nicht mit Admistrativen Rechten vom AutoIt Skript aufgerufen wird.
    Wenn ich falsch liege, korrigiert mich bitte.

    Wie bekomme ich es hin, das die BAT Datei im administrativen Kontext gestartet wird?

    Danke für eure Hilfe!!


    Gruß

    0cool

  • Label in einer Tab Control zur Laufzeit er GUI ändern

    • 0cool
    • 10. Juli 2012 um 13:19

    Hallo Raupi,

    danke für deine Antwort. Ich bin noch neuling in AutoIt und in der Grafischen Programmierung (Skripting).
    Deine Antwort hat mir sehr geholfen. Mein vorhaben hab ich hinbekommen.
    Den Abschluss des Tabs hab ich natürlich gleich eingebaut.

    Meine Vorgehensweise:
    Das Label wird im TabControl erstellt. Über GUIctrlSetData wird der Wert des Labels beim aufruf der Funktion aktualisiert.

    Mein jetziger Code sieht so aus:

    Spoiler anzeigen
    [autoit]


    #comments-start
    Skrit-Name: Haushaltsbuch.exe
    Erstellt am: 22.06.2012
    Fuunktion: Erfassung der Einahmen und Ausgabe im Haushalt
    #########################################################
    #comments-end

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

    ; Bibliotheken einbinden
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIEdit.au3>
    #include <string.au3>
    #include <GDIPlus.au3>
    #include <Date.au3>
    #include <DateTimeConstants.au3>
    #include <GuiTab.au3>
    #include <file.au3>
    #include <array.au3>

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

    ; Constante werden definiert
    Const $versicherungenOutput = @ScriptDir & "\data\versicherungen.txt"
    Const $einkaufOutput = @ScriptDir & "\data\Einkaeufe.txt"
    Const $einnahmenOutput = @ScriptDir & "\data\einnahmen.txt"

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

    ; Variable werden definiert
    ;~ Anfang Tab Ausgaben
    $abbuchung = ""
    $abbuchung1 = "Monatlich|jeden 2. Monat|jeden 3. Monat|jeden halbe Jahr|jährlich"
    $versicherung = ""
    $versicherung1 = "VDVA|BKK Pfalz|inter|Volkswohlbund|LV|DEVK"
    $laden = ""
    $laden1 = "Lidl|Edeka|Netto|Kauland|Hornbach|Russischer Laden|Real|Aldi|Penny|Rewe|Metzger|Tanken|Gärtner|Auto|Post"
    $bezahlen = ""
    $bezahlen1 = "Bar|EC|Visa|Master Card"
    $einkaufsart = ""
    $einkaufsart1 = "Lebensmittel|Anderes"
    $add = "Hinzufügen"
    ;~ Ende Tab Aufgaben | Anfang Tab Einnahmen
    $ComboEinnahmen = ""
    $ComboEinnahmen1 = "Spirit21|Computer_Hilfe|Andere"
    $ComboEinzahlung = ""
    $ComboEinzahlung1 = "Monatlich|Einmahlig"
    ;~ Ende Tab Einnahmen | Anfang Tab Statistik
    $viewEinahmen = "0"
    $viewAusgaben = "0"
    ;~ Ende Tab Statistik | Anfang Allgemen Variable
    $month = _DateToMonth(@MON, 1)
    $Eur = " €"
    $Komma = "."
    $font = "Arial"
    $sw = "Haushaltsbuch"
    $ver = "1.7"

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

    ; Anfang der GUI
    $Form1 = GUICreate($sw & " " & $ver, 780, 559, 192, 114)
    GUISetFont(16, 400 , 4, $font)
    $Ueberschrift = GUICtrlCreateLabel($sw & " " & $ver, 300, 24, 170, 25)
    GUISetFont(10, 400, $font)
    $Ausgaben = GUICtrlCreateButton("Ausgaben", 16, 83, 89, 25)
    $Einnahmen = GUICtrlCreateButton("Einnahmen", 16, 113, 89, 25)
    $Statistik = GUICtrlCreateButton("Statistik", 16, 143, 89, 25)

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

    $Tab = GUICtrlCreateTab(120, 59, 655,455)
    $TabAusgaben = GUICtrlCreateTabItem("Ausgaben")
    ; Anfang des Teils Versicherungen
    GUICtrlCreateLabel("Name",270, 85, 100, 25)
    GUICtrlCreateLabel("Versicherungs-NR", 360, 85, 115, 25)
    GUICtrlCreateLabel("Betrag", 495, 85, 100, 25)
    GUICtrlCreateLabel("Abbuchung", 585, 85, 100,25)
    $Versichungen = GUICtrlCreateLabel("Versicherungen:", 128, 107, 100, 17)
    $VersicherungenInput = GUICtrlCreateCombo($versicherung, 225, 105, 121, 21)
    GUICtrlSetData(-1, $versicherung1, $versicherung)
    $VersicherungsNR = GUICtrlCreateInput("", 353, 105, 121, 24)
    $VersicherungenEuro = GUICtrlCreateInput("", 480, 105, 35, 24, $ES_Number)
    GUICtrlSetLimit($VersicherungenEuro, 3, 1)
    GUICtrlCreateLabel($Komma, 515, 114, 10, 24)
    $VersicherungenCent = GUICtrlCreateInput("", 520, 105, 30, 24, $ES_Number)
    GUICtrlSetLimit($VersicherungenCent, 2, 1)
    GUICtrlCreateLabel($Eur, 550, 107, 13, 21)
    $VersicherungenAbbuchung = GUICtrlCreateCombo($abbuchung, 570, 105, 100, 21)
    GUICtrlSetData(-1, $abbuchung1, $abbuchung)
    $VHinzufuegen = GUICtrlCreateButton($add, 675, 105, 90, 24)
    $VersicherungenEdit = GUICtrlCreateEdit("", 128,135, 542,100)
    ; Ende des Teils Versicherungen und Anfang des Teils Einkauf
    GUICtrlCreateLabel("Datum",200, 260, 300, 25)
    GUICtrlCreateLabel("Laden", 300, 260, 115, 25)
    GUICtrlCreateLabel("Betrag", 400, 260, 100, 25)
    GUICtrlCreateLabel("Bezahlart", 490, 260, 100,25)
    GUICtrlCreateLabel("Bereich", 600, 260, 100,25)
    $Einkauf = GUICtrlCreateLabel("Einkauf:", 128, 285, 100, 17)
    $date = GUICtrlCreateDate("Datum", 177, 280, 85, 24, $DTS_SHORTDATEFORMAT)
    $EinkaufLaden = GUICtrlCreateCombo($laden, 265, 280, 113, 21)
    GUICtrlSetData(-1, $laden1, $laden)
    $LadenEuro = GUICtrlCreateInput("", 385, 280, 35, 24, $ES_Number)
    GUICtrlSetLimit($LadenEuro, 3, 1)
    GUICtrlCreateLabel($Komma, 420, 290, 10, 24)
    $LadenCent = GUICtrlCreateInput("", 425, 280, 30, 24, $ES_Number)
    GUICtrlSetLimit($LadenCent, 2, 1)
    GUICtrlCreateLabel($Eur, 455, 283, 13, 21)
    $EinkaufBezahlen = GUICtrlCreateCombo($bezahlen, 470, 280, 100, 21)
    GUICtrlSetData(-1, $bezahlen1, $bezahlen)
    $EinkaufArt = GUICtrlCreateCombo($einkaufsart, 573, 280, 97, 21)
    GUICtrlSetData(-1, $einkaufsart1, $einkaufsart)
    $EHinzufuegen = GUICtrlCreateButton($add, 675, 280, 90, 24)
    $EinkaufEdit = GUICtrlCreateEdit("", 128,310,542,195)
    ;~ ; Ende des Teils Einkauf Anfang des Teils Einnahmen
    $TabEinnahmen = GUICtrlCreateTabItem("Einnahmen")
    GUICtrlCreateLabel("Name",270, 85, 100, 25)
    GUICtrlCreateLabel("Betrag", 360, 85, 115, 25)
    GUICtrlCreateLabel("Einahme", 450, 85, 100,25)
    $EinnahmenInput = GUICtrlCreateCombo($ComboEinnahmen, 225, 105, 121, 21)
    GUICtrlSetData(-1, $ComboEinnahmen1, $ComboEinnahmen)
    $EinnahmenEuro = GUICtrlCreateInput("", 351, 105, 40, 24, $ES_Number)
    GUICtrlSetLimit($EinnahmenEuro, 4, 1)
    GUICtrlCreateLabel($Komma, 390, 115, 10, 24)
    $EinnahmenCent = GUICtrlCreateInput("", 395, 105, 30, 24, $ES_Number)
    GUICtrlSetLimit($EinnahmenCent, 2, 1)
    GUICtrlCreateLabel($Eur, 421, 107, 13, 21)
    $EinnahmenKonto = GUICtrlCreateCombo($ComboEinzahlung, 436, 105, 85, 21)
    GUICtrlSetData(-1, $ComboEinzahlung1, $ComboEinzahlung)
    $EinnahmenHinzufuegen = GUICtrlCreateButton($add, 675, 105, 90, 24)
    $einnahmenEdit = GUICtrlCreateEdit("", 128,135, 542,100)
    GUICtrlCreateLabel("Einnahmen:", 128, 107, 100, 17)
    ; Ende des Teils Einnahmen Anfang des Teils Statistik
    $TabStatistik = GUICtrlCreateTabItem("Statistik")
    $StatistikEinnahmen = GUICtrlCreateLabel("Einnahmen im " & $month & ":", 128, 107, 129, 17)
    $BetragEinnahmen = GUICtrlCreateLabel($viewEinahmen & $Eur, 260, 107, 100, 17)
    gehalt($einnahmenOutput, $BetragEinnahmen)
    $StatistikAusgaben = GUICtrlCreateLabel("Ausgaben im " & $month & ":", 128, 143, 129 ,17)
    $BetragAusgaben = GUICtrlCreateLabel($viewAusgaben & $Eur, 260, 143, 150, 17)
    Ausgaben($einkaufOutput, $BetragAusgaben)
    $StatistikAkualisieren = GUICtrlCreateButton("Aktualisieren", 665, 483, 100, 21)
    GUICtrlCreateTabItem("")
    $save = GUICtrlCreateButton("Speichern", 705, 525, 70, 25)
    $beenden = GUICtrlCreateButton("Beenden", 630, 525, 70, 25)
    $hWnd = WinGetHandle($Form1)
    GUISetState(@SW_SHOW)
    ; Ende der GUI

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

    ; In der While Schleife werden Aktionen ausgeführt
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Ausgaben
    GUICtrlSetState($TabAusgaben, $GUI_Show)
    Case $Einnahmen
    GUICtrlSetState($TabEinnahmen, $GUI_Show)
    case $Statistik
    GUICtrlSetState($TabStatistik, $GUI_Show)
    Case $StatistikAkualisieren
    GUISwitch($Form1, $TabStatistik)
    GUISetState()
    gehalt($einnahmenOutput, $BetragEinnahmen)
    Ausgaben($einkaufOutput, $BetragAusgaben)
    Case $VHinzufuegen
    Local $VEdit = GUICtrlRead($VersicherungenInput)
    Local $VNR = GUICtrlRead($VersicherungsNR)
    Local $VBEuro = GUICtrlRead($VersicherungenEuro)
    Local $VBCent = GUICtrlRead($VersicherungenCent)
    Local $VAbbuchung = GUICtrlRead($VersicherungenAbbuchung)

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

    ; Es wird geprüft ob in das Input Feld $VBetrag wirklich ein Betrag eingetragen wurde
    If $VEdit = "" Or $VBEuro = "" Or $VBCent = "" Or $VNR = "" Or $VAbbuchung = "" Then
    MsgBox(16, "Warnung", "Es wurden nicht alle Eingaben gemacht", 5)
    Else
    $VHEdit = GUICtrlGetHandle($VersicherungenEdit)
    _GUICtrlEdit_AppendText($VHEdit, $VEdit & " " & $VNR & " " & $VBEuro & $Komma & $VBCent & $Eur & " " & $VAbbuchung & @CRLF)
    ControlSetText("","", $VersicherungenInput, "")
    ControlSetText("","", $VersicherungsNR, "")
    ControlSetText("","", $VersicherungenEuro, "")
    ControlSetText("","", $VersicherungenCent, "")
    ControlSetText("","", $VersicherungenAbbuchung, "")
    EndIf
    Case $EHinzufuegen
    Local $edate = GUICtrlRead($date)
    Local $eEinkaufLaden = GUICtrlRead($EinkaufLaden)
    Local $eLadenEuro = GUICtrlRead($LadenEuro)
    Local $eLadenCent = GUICtrlRead($LadenCent)
    Local $eEinkaufBezahlen = GUICtrlRead($EinkaufBezahlen)
    Local $eEinkaufArt = GUICtrlRead($EinkaufArt)

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

    ; Es wird geprüft ob alle Felder für den Einkauf ausgefüllt wurden
    If $edate = "" Or $eEinkaufLaden = "" Or $eLadenEuro = "" Or $eLadenCent = "" Or $eEinkaufBezahlen = "" Or $eEinkaufArt = "" Then
    MsgBox(16, "Warnung", "Es wurden nicht alle Eingaben gemacht", 5)
    Else
    $eEdit = GUICtrlGetHandle($EinkaufEdit)
    _GUICtrlEdit_AppendText($eEdit, $edate & " " & $eEinkaufLaden & " " & $eLadenEuro & $Komma & $eLadenCent & $Eur & " " & $eEinkaufBezahlen & " " & $eEinkaufArt & @CRLF)
    ControlSetText("","", $EinkaufLaden, "")
    ControlSetText("","", $LadenEuro, "")
    ControlSetText("","", $LadenCent, "")
    ControlSetText("","", $EinkaufBezahlen, "")
    ControlSetText("","", $EinkaufArt, "")
    EndIf
    case $EinnahmenHinzufuegen
    Local $eEinnahmenInput = GUICtrlRead($EinnahmenInput)
    Local $eEinnahmenEuro = GUICtrlRead($EinnahmenEuro)
    Local $eEinnahmenCent = GUICtrlRead($EinnahmenCent)
    Local $eEinnahmenKonto = GUICtrlRead($EinnahmenKonto)

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

    ; Es wird geprüft ob alle Felder der Einnahmen augefüllt wurden
    If $eEinnahmenInput = "" Or $eEinnahmenEuro = "" Or $eEinnahmenCent = "" Or $eEinnahmenKonto = "" Then
    MsgBox(16, "Warnung", "Es wurden nicht alle Eingaben gemacht", 5)
    Else
    ; Es wird geprüft ob die Variable $eEinnahmenKonto den Wert Einmahlig besitzt. Sollte das der Fall sein,
    ; wird der Wert in den aktuellen Monat im Zahlen Format geändert.
    $search = StringInStr($eEinnahmenKonto, "Einmahlig")
    If $search Then
    $ChangeeEinahmenKonto = StringReplace($eEinnahmenKonto, $eEinnahmenKonto, $month)

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

    $eeinnahmenEdit = GUICtrlGetHandle($einnahmenEdit)
    _GUICtrlEdit_AppendText($eeinnahmenEdit, $eEinnahmenInput & " " & $eEinnahmenEuro & $Komma & $eEinnahmenCent & $Eur & " " & $ChangeeEinahmenKonto & " " & @YEAR & @CRLF)
    ControlSetText("","", $EinnahmenInput, "")
    ControlSetText("","", $EinnahmenEuro, "")
    ControlSetText("","", $EinnahmenCent, "")
    ControlSetText("","", $EinnahmenKonto, "")
    Else
    $eeinnahmenEdit = GUICtrlGetHandle($einnahmenEdit)
    _GUICtrlEdit_AppendText($eeinnahmenEdit, $eEinnahmenInput & " " & $eEinnahmenEuro & $Komma & $eEinnahmenCent & $Eur & " " & $eEinnahmenKonto & " " & @YEAR & @CRLF)
    ControlSetText("","", $EinnahmenInput, "")
    ControlSetText("","", $EinnahmenEuro, "")
    ControlSetText("","", $EinnahmenCent, "")
    ControlSetText("","", $EinnahmenKonto, "")
    EndIf
    EndIf
    Case $beenden
    Exit
    Case $save
    ; Text Datei werden mit dem Inhalt der Edit Boxen befüllt
    $VersicherungenEditOutput = GUICtrlRead($VersicherungenEdit)
    $EinkaufEditOutput = GUICtrlRead($EinkaufEdit)
    $einnahmenEditOutput = GUICtrlRead($einnahmenEdit)
    FileWrite($versicherungenOutput, $VersicherungenEditOutput)
    If @error = 0 Then
    $EVersicherungen = "0"
    ControlSetText("","", $VersicherungenEdit, "")
    Else
    $EVersicherungen = "1"
    EndIf
    ; MsgBox(0, "", @error)
    FileWrite($einkaufOutput, $EinkaufEditOutput)
    If @error = 0 Then
    $EEinkauf = "0"
    ControlSetText("","", $EinkaufEdit, "")
    Else
    $EEinkauf = "1"
    EndIf
    FileWrite($einnahmenOutput, $einnahmenEditOutput)
    If @error = 0 Then
    $eeinnahmen = "0"
    ControlSetText("","", $einnahmenEdit, "")
    Else
    $eeinnahmen = "1"
    EndIf
    If $EVersicherungen = "0" And $EEinkauf = "0" And $eeinnahmen = "0" Then
    MsgBox(0, "Information", "Alle Daten wurden erfolgreich gespeichert", 5)
    Else
    MsgBox(16, "Warnung", "Beim Speichern ist ein Fehler aufgetreten.", 5)
    EndIf
    EndSwitch
    WEnd

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

    ; Anfang der Funktionen

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

    ; Die Einnahmen werden im Reiter Statistik angezeigt
    Func gehalt($einnahmenOutput, $BetragEinnahmen)
    Local $countlines = _FileCountLines($einnahmenOutput)
    Local $file = FileOpen($einnahmenOutput, 0)
    Local $viewEinahmen = 0

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

    ; Check if file opened for reading OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

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

    If $countlines > 0 Then
    ; Read in lines of text until the EOF is reached

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

    ;MsgBox(64, "", $countlines)
    For $i = 1 To $countlines Step 1
    $line = FileReadLine($file, $i)
    $searchDate = StringInStr($line, $month & " " & @YEAR)
    $searchWord = StringInStr($line, "monatlich" & " " & @YEAR)
    If $line <> '' Then
    IF $searchDate Or $searchWord Then
    $array = StringSplit($line, " ")
    If IsArray($array) And $array[0] >= 2 Then
    $viewEinahmen += $array[2]
    EndIf
    EndIf
    EndIf
    Next
    ;~ Else
    ;~ $line = FileReadLine($file)
    ;~ $betrag = StringSplit($line, " ")
    ;~ GUICtrlCreateLabel($betrag[2], 260, 107, 100, 17)
    EndIf
    FileClose($file)
    ; MsgBox(64,"", $viewEinahmen)
    ;~ $BetragEinnahmen = GUICtrlCreateLabel($viewEinahmen & $Eur, 260, 107, 150, 17)
    GUICtrlSetData($BetragEinnahmen, $viewEinahmen & $Eur)
    EndFunc

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

    ; Die Die Ausgaben werden im Reiter Statistik angezeigt
    Func Ausgaben($einkaufOutput, $BetragAusgaben)
    Local $countlines = _FileCountLines($einkaufOutput)
    Local $file = FileOpen($einkaufOutput, 0)
    ;~ Local $BetragEinnahmen
    Local $viewAusgaben

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

    ; Check if file opened for reading OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

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

    If $countlines > 0 Then
    ; Read in lines of text until the EOF is reached

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

    For $i = 1 To $countlines Step 1
    $line = FileReadLine($file, $i)
    ;~ MsgBox(64, "", $line)
    $searchMonth = StringInStr($line, "." & @MON & "." & @YEAR)
    If $line <> '' Then
    If $searchMonth Then
    $array = StringSplit($line, " ")
    If IsArray($array) And $array[0] >= 2 Then
    $viewAusgaben += $array[3]
    ;~ MsgBox(64, "", $array[3])
    EndIf
    EndIf
    EndIf
    Next
    EndIf
    FileClose($file)

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

    ; Der Aktuelle Betrag der gesamten Ausgaben im gesamten Monat wird angezeigt.
    GUICtrlSetData($BetragAusgaben, $viewAusgaben)
    EndFunc
    ; Ende der Funktionen

    [/autoit]


    Falls du weitere verbesserungsvorschläge hast bin ich gerne zu. Wie schon gesagt ich bin ein Neuling in AutoIt :)

    Gruß

    0cool

  • Label in einer Tab Control zur Laufzeit er GUI ändern

    • 0cool
    • 9. Juli 2012 um 19:08

    Hey Leute,

    ich habe mal wieder ein Problem.
    Es soll ein Label zur Laufzeit der GUI geändert werden. Das Label befindet sich in einer Tab Control.

    Aktueller Stand: Label Ausgaben($einkaufOutput) zeig einen Wert an, der über eine Funktion berechnet wird.
    Ziel: Wenn der Button Akuallisieren gedrückt wird, muss der Wert der im Label Ausgaben($einkaufOutput) steht neu berechnet und angezeigt werden.

    Meine Versuch:
    Einen Bereich im Case für den Button erstellen (Case $button).

    Ergebnis:
    Die Funktion wird zwar erneut aufgerufen. Soweit ganz gut doch wenn ich den Tab Wechsle wird der neue Wert des Labels auch auf den Anderen Tabs angezeigt.

    Leider klappt die neuberechnung nicht.


    Code:

    Spoiler anzeigen
    [autoit]


    #comments-start
    Skrit-Name: Haushaltsbuch.exe
    Ersteller: Thorsten Zelt
    Erstellt am: 22.06.2012
    Fuunktion: Erfassung der Einahmen und Ausgabe im Haushalt
    #########################################################
    #comments-end

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

    ; Bibliotheken einbinden
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIEdit.au3>
    #include <string.au3>
    #include <GDIPlus.au3>
    #include <Date.au3>
    #include <DateTimeConstants.au3>
    #include <GuiTab.au3>
    #include <file.au3>
    #include <array.au3>

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

    ; Constante werden definiert
    Const $versicherungenOutput = @ScriptDir & "\data\versicherungen.txt"
    Const $einkaufOutput = @ScriptDir & "\data\Einkaeufe.txt"
    Const $einnahmenOutput = @ScriptDir & "\data\einnahmen.txt"

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

    ; Variable werden definiert
    ;~ Anfang Tab Ausgaben
    $abbuchung = ""
    $abbuchung1 = "Monatlich|jeden 2. Monat|jeden 3. Monat|jeden halbe Jahr|jährlich"
    $versicherung = ""
    $versicherung1 = "VDVA|BKK Pfalz|inter|Volkswohlbund|LV|DEVK"
    $laden = ""
    $laden1 = "Lidl|Edeka|Netto|Kauland|Hornbach|Russischer Laden|Real|Aldi|Penny|Rewe|Metzger|Tanken|Gärtner|Auto|Post"
    $bezahlen = ""
    $bezahlen1 = "Bar|EC|Visa|Master Card"
    $einkaufsart = ""
    $einkaufsart1 = "Lebensmittel|Anderes"
    $add = "Hinzufügen"
    ;~ Ende Tab Aufgaben | Anfang Tab Einnahmen
    $ComboEinnahmen = ""
    $ComboEinnahmen1 = "Spirit21|Computer_Hilfe|Andere"
    $ComboEinzahlung = ""
    $ComboEinzahlung1 = "Monatlich|Einmahlig"
    ;~ Ende Tab Einnahmen | Anfang Tab Statistik
    ;~ $viewEinahmen = "0"
    ;~ $viewAusgaben = "0"
    ;~ Ende Tab Statistik | Anfang Allgemen Variable
    $month = _DateToMonth(@MON, 1)
    $Eur = " €"
    $Komma = "."
    $font = "Arial"
    $sw = "Haushaltsbuch"
    $ver = "1.7"

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

    ; Anfang der GUI
    $Form1 = GUICreate($sw & " " & $ver, 780, 559, 192, 114)
    GUISetFont(16, 400 , 4, $font)
    $Ueberschrift = GUICtrlCreateLabel($sw & " " & $ver, 300, 24, 170, 25)
    GUISetFont(10, 400, $font)
    $Ausgaben = GUICtrlCreateButton("Ausgaben", 16, 83, 89, 25)
    $Einnahmen = GUICtrlCreateButton("Einnahmen", 16, 113, 89, 25)
    $Statistik = GUICtrlCreateButton("Statistik", 16, 143, 89, 25)

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

    $Tab = GUICtrlCreateTab(120, 59, 655,455)
    $TabAusgaben = GUICtrlCreateTabItem("Ausgaben")
    ; Anfang des Teils Versicherungen
    GUICtrlCreateLabel("Name",270, 85, 100, 25)
    GUICtrlCreateLabel("Versicherungs-NR", 360, 85, 115, 25)
    GUICtrlCreateLabel("Betrag", 495, 85, 100, 25)
    GUICtrlCreateLabel("Abbuchung", 585, 85, 100,25)
    $Versichungen = GUICtrlCreateLabel("Versicherungen:", 128, 107, 100, 17)
    $VersicherungenInput = GUICtrlCreateCombo($versicherung, 225, 105, 121, 21)
    GUICtrlSetData(-1, $versicherung1, $versicherung)
    $VersicherungsNR = GUICtrlCreateInput("", 353, 105, 121, 24)
    $VersicherungenEuro = GUICtrlCreateInput("", 480, 105, 35, 24, $ES_Number)
    GUICtrlSetLimit($VersicherungenEuro, 3, 1)
    GUICtrlCreateLabel($Komma, 515, 114, 10, 24)
    $VersicherungenCent = GUICtrlCreateInput("", 520, 105, 30, 24, $ES_Number)
    GUICtrlSetLimit($VersicherungenCent, 2, 1)
    GUICtrlCreateLabel($Eur, 550, 107, 13, 21)
    $VersicherungenAbbuchung = GUICtrlCreateCombo($abbuchung, 570, 105, 100, 21)
    GUICtrlSetData(-1, $abbuchung1, $abbuchung)
    $VHinzufuegen = GUICtrlCreateButton($add, 675, 105, 90, 24)
    $VersicherungenEdit = GUICtrlCreateEdit("", 128,135, 542,100)
    ; Ende des Teils Versicherungen und Anfang des Teils Einkauf
    GUICtrlCreateLabel("Datum",200, 260, 300, 25)
    GUICtrlCreateLabel("Laden", 300, 260, 115, 25)
    GUICtrlCreateLabel("Betrag", 400, 260, 100, 25)
    GUICtrlCreateLabel("Bezahlart", 490, 260, 100,25)
    GUICtrlCreateLabel("Bereich", 600, 260, 100,25)
    $Einkauf = GUICtrlCreateLabel("Einkauf:", 128, 285, 100, 17)
    $date = GUICtrlCreateDate("Datum", 177, 280, 85, 24, $DTS_SHORTDATEFORMAT)
    $EinkaufLaden = GUICtrlCreateCombo($laden, 265, 280, 113, 21)
    GUICtrlSetData(-1, $laden1, $laden)
    $LadenEuro = GUICtrlCreateInput("", 385, 280, 35, 24, $ES_Number)
    GUICtrlSetLimit($LadenEuro, 3, 1)
    GUICtrlCreateLabel($Komma, 420, 290, 10, 24)
    $LadenCent = GUICtrlCreateInput("", 425, 280, 30, 24, $ES_Number)
    GUICtrlSetLimit($LadenCent, 2, 1)
    GUICtrlCreateLabel($Eur, 455, 283, 13, 21)
    $EinkaufBezahlen = GUICtrlCreateCombo($bezahlen, 470, 280, 100, 21)
    GUICtrlSetData(-1, $bezahlen1, $bezahlen)
    $EinkaufArt = GUICtrlCreateCombo($einkaufsart, 573, 280, 97, 21)
    GUICtrlSetData(-1, $einkaufsart1, $einkaufsart)
    $EHinzufuegen = GUICtrlCreateButton($add, 675, 280, 90, 24)
    $EinkaufEdit = GUICtrlCreateEdit("", 128,310,542,195)
    ;~ ; Ende des Teils Einkauf Anfang des Teils Einnahmen
    $TabEinnahmen = GUICtrlCreateTabItem("Einnahmen")
    GUICtrlCreateLabel("Name",270, 85, 100, 25)
    GUICtrlCreateLabel("Betrag", 360, 85, 115, 25)
    GUICtrlCreateLabel("Einahme", 450, 85, 100,25)
    $EinnahmenInput = GUICtrlCreateCombo($ComboEinnahmen, 225, 105, 121, 21)
    GUICtrlSetData(-1, $ComboEinnahmen1, $ComboEinnahmen)
    $EinnahmenEuro = GUICtrlCreateInput("", 351, 105, 40, 24, $ES_Number)
    GUICtrlSetLimit($EinnahmenEuro, 4, 1)
    GUICtrlCreateLabel($Komma, 390, 115, 10, 24)
    $EinnahmenCent = GUICtrlCreateInput("", 395, 105, 30, 24, $ES_Number)
    GUICtrlSetLimit($EinnahmenCent, 2, 1)
    GUICtrlCreateLabel($Eur, 421, 107, 13, 21)
    $EinnahmenKonto = GUICtrlCreateCombo($ComboEinzahlung, 436, 105, 85, 21)
    GUICtrlSetData(-1, $ComboEinzahlung1, $ComboEinzahlung)
    $EinnahmenHinzufuegen = GUICtrlCreateButton($add, 675, 105, 90, 24)
    $einnahmenEdit = GUICtrlCreateEdit("", 128,135, 542,100)
    GUICtrlCreateLabel("Einnahmen:", 128, 107, 100, 17)
    ; Ende des Teils Einnahmen Anfang des Teils Statistik
    $TabStatistik = GUICtrlCreateTabItem("Statistik")
    $StatistikEinnahmen = GUICtrlCreateLabel("Einnahmen im " & $month & ":", 128, 107, 129, 17)
    ;~ $BetragEinnahmen = GUICtrlCreateLabel($viewEinahmen & $Eur, 260, 107, 100, 17)
    gehalt($einnahmenOutput)
    $StatistikAusgaben = GUICtrlCreateLabel("Ausgaben im " & $month & ":", 128, 143, 129 ,17)
    Ausgaben($einkaufOutput)
    $StatistikAkualisieren = GUICtrlCreateButton("Aktualisieren", 665, 483, 100, 21)
    $save = GUICtrlCreateButton("Speichern", 705, 525, 70, 25)
    $beenden = GUICtrlCreateButton("Beenden", 630, 525, 70, 25)
    $hWnd = WinGetHandle($Form1)
    GUISetState(@SW_SHOW)
    ; Ende der GUI

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

    ; In der While Schleife werden Aktionen ausgeführt
    While 1

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

    ; Eine Line zwischen den Versicherungen und der Einkäufen wird gezogen
    ;~ _GDIPlus_Startup()
    ;~ $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    ;~ _GDIPlus_GraphicsDrawLine($hGraphics, 128,250,765,250)

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

    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Ausgaben
    GUICtrlSetState($TabAusgaben, $GUI_Show)
    Case $Einnahmen
    GUICtrlSetState($TabEinnahmen, $GUI_Show)
    case $Statistik
    GUICtrlSetState($TabStatistik, $GUI_Show)
    Case $VHinzufuegen
    Local $VEdit = GUICtrlRead($VersicherungenInput)
    Local $VNR = GUICtrlRead($VersicherungsNR)
    Local $VBEuro = GUICtrlRead($VersicherungenEuro)
    Local $VBCent = GUICtrlRead($VersicherungenCent)
    Local $VAbbuchung = GUICtrlRead($VersicherungenAbbuchung)

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

    ; Es wird geprüft ob in das Input Feld $VBetrag wirklich ein Betrag eingetragen wurde
    If $VEdit = "" Or $VBEuro = "" Or $VBCent = "" Or $VNR = "" Or $VAbbuchung = "" Then
    MsgBox(16, "Warnung", "Es wurden nicht alle Eingaben gemacht", 5)
    Else
    $VHEdit = GUICtrlGetHandle($VersicherungenEdit)
    _GUICtrlEdit_AppendText($VHEdit, $VEdit & " " & $VNR & " " & $VBEuro & $Komma & $VBCent & $Eur & " " & $VAbbuchung & @CRLF)
    ControlSetText("","", $VersicherungenInput, "")
    ControlSetText("","", $VersicherungsNR, "")
    ControlSetText("","", $VersicherungenEuro, "")
    ControlSetText("","", $VersicherungenCent, "")
    ControlSetText("","", $VersicherungenAbbuchung, "")
    EndIf
    Case $EHinzufuegen
    Local $edate = GUICtrlRead($date)
    Local $eEinkaufLaden = GUICtrlRead($EinkaufLaden)
    Local $eLadenEuro = GUICtrlRead($LadenEuro)
    Local $eLadenCent = GUICtrlRead($LadenCent)
    Local $eEinkaufBezahlen = GUICtrlRead($EinkaufBezahlen)
    Local $eEinkaufArt = GUICtrlRead($EinkaufArt)

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

    ; Es wird geprüft ob alle Felder für den Einkauf ausgefüllt wurden
    If $edate = "" Or $eEinkaufLaden = "" Or $eLadenEuro = "" Or $eLadenCent = "" Or $eEinkaufBezahlen = "" Or $eEinkaufArt = "" Then
    MsgBox(16, "Warnung", "Es wurden nicht alle Eingaben gemacht", 5)
    Else
    $eEdit = GUICtrlGetHandle($EinkaufEdit)
    _GUICtrlEdit_AppendText($eEdit, $edate & " " & $eEinkaufLaden & " " & $eLadenEuro & $Komma & $eLadenCent & $Eur & " " & $eEinkaufBezahlen & " " & $eEinkaufArt & @CRLF)
    ControlSetText("","", $EinkaufLaden, "")
    ControlSetText("","", $LadenEuro, "")
    ControlSetText("","", $LadenCent, "")
    ControlSetText("","", $EinkaufBezahlen, "")
    ControlSetText("","", $EinkaufArt, "")
    EndIf
    case $EinnahmenHinzufuegen
    Local $eEinnahmenInput = GUICtrlRead($EinnahmenInput)
    Local $eEinnahmenEuro = GUICtrlRead($EinnahmenEuro)
    Local $eEinnahmenCent = GUICtrlRead($EinnahmenCent)
    Local $eEinnahmenKonto = GUICtrlRead($EinnahmenKonto)

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

    ; Es wird geprüft ob alle Felder der Einnahmen augefüllt wurden
    If $eEinnahmenInput = "" Or $eEinnahmenEuro = "" Or $eEinnahmenCent = "" Or $eEinnahmenKonto = "" Then
    MsgBox(16, "Warnung", "Es wurden nicht alle Eingaben gemacht", 5)
    Else
    ; Es wird geprüft ob die Variable $eEinnahmenKonto den Wert Einmahlig besitzt. Sollte das der Fall sein,
    ; wird der Wert in den aktuellen Monat im Zahlen Format geändert.
    $search = StringInStr($eEinnahmenKonto, "Einmahlig")
    If $search Then
    $ChangeeEinahmenKonto = StringReplace($eEinnahmenKonto, $eEinnahmenKonto, $month)

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

    $eeinnahmenEdit = GUICtrlGetHandle($einnahmenEdit)
    _GUICtrlEdit_AppendText($eeinnahmenEdit, $eEinnahmenInput & " " & $eEinnahmenEuro & $Komma & $eEinnahmenCent & $Eur & " " & $ChangeeEinahmenKonto & " " & @YEAR & @CRLF)
    ControlSetText("","", $EinnahmenInput, "")
    ControlSetText("","", $EinnahmenEuro, "")
    ControlSetText("","", $EinnahmenCent, "")
    ControlSetText("","", $EinnahmenKonto, "")
    Else
    $eeinnahmenEdit = GUICtrlGetHandle($einnahmenEdit)
    _GUICtrlEdit_AppendText($eeinnahmenEdit, $eEinnahmenInput & " " & $eEinnahmenEuro & $Komma & $eEinnahmenCent & $Eur & " " & $eEinnahmenKonto & " " & @YEAR & @CRLF)
    ControlSetText("","", $EinnahmenInput, "")
    ControlSetText("","", $EinnahmenEuro, "")
    ControlSetText("","", $EinnahmenCent, "")
    ControlSetText("","", $EinnahmenKonto, "")
    EndIf
    EndIf
    Case $beenden
    Exit
    Case $save
    ; Text Datei werden mit dem Inhalt der Edit Boxen befüllt
    $VersicherungenEditOutput = GUICtrlRead($VersicherungenEdit)
    $EinkaufEditOutput = GUICtrlRead($EinkaufEdit)
    $einnahmenEditOutput = GUICtrlRead($einnahmenEdit)
    FileWrite($versicherungenOutput, $VersicherungenEditOutput)
    If @error = 0 Then
    $EVersicherungen = "0"
    ControlSetText("","", $VersicherungenEdit, "")
    Else
    $EVersicherungen = "1"
    EndIf
    ; MsgBox(0, "", @error)
    FileWrite($einkaufOutput, $EinkaufEditOutput)
    If @error = 0 Then
    $EEinkauf = "0"
    ControlSetText("","", $EinkaufEdit, "")
    Else
    $EEinkauf = "1"
    EndIf
    FileWrite($einnahmenOutput, $einnahmenEditOutput)
    If @error = 0 Then
    $eeinnahmen = "0"
    ControlSetText("","", $einnahmenEdit, "")
    Else
    $eeinnahmen = "1"
    EndIf
    If $EVersicherungen = "0" And $EEinkauf = "0" And $eeinnahmen = "0" Then
    MsgBox(0, "Information", "Alle Daten wurden erfolgreich gespeichert", 5)
    Else
    MsgBox(16, "Warnung", "Beim Speichern ist ein Fehler aufgetreten.", 5)
    EndIf
    EndSwitch
    WEnd

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

    ; Anfang der Funktionen

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

    ; Die Einnahmen werden im Reiter Statistik angezeigt
    Func gehalt($einnahmenOutput)
    Local $countlines = _FileCountLines($einnahmenOutput)
    Local $file = FileOpen($einnahmenOutput, 0)
    Local $viewEinahmen = 0

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

    ; Check if file opened for reading OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

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

    If $countlines > 0 Then
    ; Read in lines of text until the EOF is reached

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

    ;MsgBox(64, "", $countlines)
    For $i = 1 To $countlines Step 1
    $line = FileReadLine($file, $i)
    $searchDate = StringInStr($line, $month & " " & @YEAR)
    $searchWord = StringInStr($line, "monatlich" & " " & @YEAR)
    If $line <> '' Then
    IF $searchDate Or $searchWord Then
    $array = StringSplit($line, " ")
    If IsArray($array) And $array[0] >= 2 Then
    $viewEinahmen += $array[2]
    EndIf
    EndIf
    EndIf
    Next
    ;~ Else
    ;~ $line = FileReadLine($file)
    ;~ $betrag = StringSplit($line, " ")
    ;~ GUICtrlCreateLabel($betrag[2], 260, 107, 100, 17)
    EndIf
    FileClose($file)
    ; MsgBox(64,"", $viewEinahmen)
    $BetragEinnahmen = GUICtrlCreateLabel($viewEinahmen & $Eur, 260, 107, 150, 17)
    ;~ GUICtrlSetData($BetragEinnahmen, $viewEinahmen & $Eur)

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

    EndFunc

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

    ; Die Die Ausgaben werden im Reiter Statistik angezeigt
    Func Ausgaben($einkaufOutput)
    Local $countlines = _FileCountLines($einkaufOutput)
    Local $file = FileOpen($einkaufOutput, 0)
    Local $BetragEinnahmen
    Local $viewAusgaben

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

    ; Check if file opened for reading OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

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

    If $countlines > 0 Then
    ; Read in lines of text until the EOF is reached

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

    ; MsgBox(64, "", $countlines)
    For $i = 1 To $countlines Step 1
    $line = FileReadLine($file, $i)
    ;~ MsgBox(64, "", $line)
    $searchMonth = StringInStr($line, "." & @MON & "." & @YEAR)
    If $line <> '' Then
    If $searchMonth Then
    $array = StringSplit($line, " ")
    If IsArray($array) And $array[0] >= 2 Then
    $viewAusgaben += $array[3]
    ;~ MsgBox(64, "", $array[3])
    EndIf
    EndIf
    EndIf
    Next
    FileClose($file)

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

    If $BetragEinnahmen <> '' Then
    GUICtrlSetData($BetragEinnahmen, $viewAusgaben)
    EndIf

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

    $BetragEinnahmen = GUICtrlCreateLabel($viewAusgaben & $Eur, 260, 143, 150, 17)
    ;~ GUICtrlSetData($BetragEinnahmen, $viewAusgaben)

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

    EndFunc
    ; Ende der Funktionen

    [/autoit]

    Wie kann ich mein Vorhaben verwirklichen?

    Danke schon mal für eure Hilfe!

    0cool

  • [gelöst] Rechnen mit For to step

    • 0cool
    • 7. Juli 2012 um 19:39

    @christop54: Sorry du hast recht ich bin Neuling was AutoIt angeht und hab den Code nicht ganz verstanden. Aber jetzt blick ich Ihn.Das Skript funktioniert wunderbar.
    Vielen Dank!

    Gruß

    0cool

  • [gelöst] Rechnen mit For to step

    • 0cool
    • 7. Juli 2012 um 18:52

    Danke an euch beide für eure Hilfe, leider bringt mich das nicht wirklich weiter.

    Ich konkretisiere mal was ich meine. (Wäre am Anfang ganz gut gewesen :wacko: )

    Ausgangspunkt: im Arbeitsverzeichnis liegt eine Text Datei mit belieb vielen Zeilen. Die Zeilenanzahl ist beim öffnen der Zeile nicht bekannt.
    Die Text Datei ist folgener massen aufgebaut:

    Text 123.23
    Text1 45.78

    Was bisher funktioniert:

    • Die Zeilen der Text Datei werden gezählt und in deine Variable geschrieben
    • Die Text Datei wird zeilen weise eingelesen
    • Jede Zeile wird gesplittet (durch das leerzeichen)
    • Der Betrag der jeweiligen Zeile wir in ein Array gespeichert
    • Der jeweilige Betrag über eine MsgBox ausgeben

    Mein Ziel:

    • Alle Beträge zusammen Zählen und in einer MsgBox das Ergebnis ausgeben

    Ich hoffe das ich jetzt mein Ziel gut erklärt habe.
    Gruß

    0cool

  • [gelöst] Rechnen mit For to step

    • 0cool
    • 7. Juli 2012 um 18:09

    Hey Leute,

    ich hab mal wieder ein Problem bei dem ich nicht weiterkomme.

    Ich bin grab bei einem Skript, das eine Text Datei zeilenweise ausliest, die Zeilen splittet und immer den Geldbetrag aus der jeweiligen Zeile ausgibt. Soweit so gut.
    Der jeweilige Betrag soll aber nicht ausgegeben werden, sondern die beträge sollen Mulitpliziert werden. Leider finde ich kein Ansatzpunkt wie ich dies hinbekomme.

    Hier mal mein Skript:

    [autoit]


    Func gehalt($einnahmenOutput)
    Local $countlines = _FileCountLines($einnahmenOutput)
    Local $file = FileOpen($einnahmenOutput, 0)

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

    ; Check if file opened for reading OK
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf

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

    If $countlines > 1 Then
    For $i = 1 To $countlines Step 1
    $line = FileReadLine($file)
    $betrag = StringSplit($line, " ")
    If @error = -1 Then ExitLoop
    $ergebnis = $betrag[2]
    ; MsgBox(0,"", $betrag[2])
    Next

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

    Else
    $line = FileReadLine($file)
    $betrag = StringSplit($line, " ")
    GUICtrlCreateLabel($betrag[2], 260, 107, 100, 17)
    EndIf
    FileClose($file)
    EndFunc

    [/autoit]

    Danke schon mal für eure Hilfe.

    Gruß

    0cool

  • [gelöst] Tab Controll beenden, wie geht das

    • 0cool
    • 5. Juli 2012 um 20:06

    Hey Leute,

    ich möchte ein Tab Controll so beenden, das ein Label das unterhalb des Tab Controls in der GUI liegt immer angezeigt wird, egal in welchem Tab ich mich befinde.
    Wie geht das?

    Es geht um die Zeile 11.

    Mein Test Code:

    [autoit]


    #include <GUIConstantsEx.au3>
    GUICreate("Form1", 623, 449)
    $button =GUICtrlCreateButton("Tab2 aktivieren", 10,10, 100, 22)
    $Tab1 = GUICtrlCreateTab(16, 48, 569, 353)
    $TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
    $Button1 = GUICtrlCreateButton("Button1", 72, 168, 121, 22)
    $TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
    $Label2 = GUICtrlCreateLabel("Label2", 40, 88, 36, 17)
    $Input1 = GUICtrlCreateInput("Input1", 96, 80, 73, 21)
    $Label3 = GUICtrlCreateLabel("Label3", 40, 112, 36, 17)
    $Input2 = GUICtrlCreateInput("Input2", 96, 112, 73, 21)
    GUICtrlCreateLabel("Test", 50, 420)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case -3
    ExitLoop
    Case $button
    GUICtrlSetState($TabSheet2, $GUI_SHOW) ;i das Tabitem anzeigen
    EndSwitch
    WEnd
    ; Ende

    [/autoit]

    Danke schon mal im vorraus.

    //edit: Ich habe es gearde selber gelöst durch die code Zeil, an der Stelle an der das Tab Control enden soll.

    [autoit]

    GUICtrlCreateTabItem("")

    [/autoit]

    Gruß

    0cool

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™