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
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
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.
Danke für die schnelle Hilfe.
Nachdem ich Deine Funktion in mein Skript reinkopiert hatte, lief mein Skript auf Fehler
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:
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
#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
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:
Func AddToDatabase()
Dim $i, $k
Dim $strSQL
Dim $ListViewArray[1][5]
; Sollte das Listview keine Einträge haben, wird die Funktion beendet.
If $ListviewCount < 1 Then Return
; 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)
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] & '''' & ");")
EndIf
[/autoit] [autoit][/autoit] [autoit]; SQL String zusammen bauen
Local $strSQL = 'BEGIN TRANSACTION;'
; 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
$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)
; Der SQL Befehl wird ausgeführt
_SQLite_Exec($db_data, $strSQL)
;~ 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
Danke für Deine Hilfe!
Gruß
0cool
Hey Bugfix,
du hast vollkommen recht. Ich hab den Code auchgleich geändert.
Die Funktion sieht jetzt folgendermaßen aus:
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] & '''' & ");")
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
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
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:
#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>
;~ 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
;Veariable werden gefüllt
$font = "Arial"
$komma = "."
$eur = "EUR"
;~ Variable mit Anfangswert für die Bearbeitung füllen
$ListviewCount = 0
$buttonHinzufuegen = -9999
$buttonLoeschen = - 9999
$buttonSpeichern = -9999
;Datenbank Variable
$db_data_dir = @ScriptDir & "\data.db"
; Array für den Inhalt der GUIs
Global $button, $buttonSchleifeEnde, $ausgabenSchleifenEnde
Global $ListviewAusgaben
$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]
$ListviewAusgabenUeberschrift[0] = "Datum"
$ListviewAusgabenUeberschrift[1] = "Laden"
$ListviewAusgabenUeberschrift[2] = "Betrag"
$ListviewAusgabenUeberschrift[3] = "Waehrung"
$ListviewAusgabenUeberschrift[4] = "Bezahlt_mit"
$ListviewAusgabenUeberschrift[5] = "Bereich"
#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 ###
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
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
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
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
;~ ########################################################################################################################
;~ ######################### Beginn der Funktionen, die über die Navigation aufgerufen werden #############################
;~ ########################################################################################################################
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
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
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
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
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
;~ ########################################################################################################################
;~ ######################################### Ende der Navigations Funktionen ##############################################
;~ ########################################################################################################################
;~ ########################################################################################################################
;~ ####################### Beginn der Funktionen, um GUI Items zu erstellen, auszublenen oder einzublenden ################
;~ ########################################################################################################################
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
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
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
Func VersteckeAusgabenItems()
Dim $i
For $i = 0 to $ausgabenSchleifenEnde Step 1
GUICtrlSetState($Ausgaben[$i], $GUI_HIDE)
Next
GUICtrlSetState($ListviewAusgaben, $GUI_HIDE)
EndFunc
;~ ########################################################################################################################
;~ ####################### Ende der Funktionen, um GUI Items zu erstellen, auszublenen oder einzublenden ##################
;~ ########################################################################################################################
;~ ########################################################################################################################
;~ ############################### Anfang der Funktionen, um Die Listviews zu bearbeiten ##################################
;~ ########################################################################################################################
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
Func DelListViewItem()
If $ListviewCount > 0 Then
_GUICtrlListView_DeleteItemsSelected($ListviewAusgaben)
EndIf
EndFunc
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
;~ 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] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _select($aRow)
For $s In $aRow
ConsoleWrite($s & @TAB)
Next
ConsoleWrite(@CRLF)
EndFunc
_SQLite_Close($db_data)
_SQLite_Shutdown()
;~ ########################################################################################################################
;~ ################################ Ende der Funktionen, um Die Listviews zu bearbeiten ###################################
;~ ########################################################################################################################
Eintrag in die Datenbank, wenn 2 Zeilen in der Listview stehen:
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
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.
;~ ###################################################################################################################################
;~ ###################################################################################################################################
;~ ## ##
;~ ## 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 ##
;~ ## ##
;~ ###################################################################################################################################
;~ ###################################################################################################################################
#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>
;~ 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
;Veariable werden gefüllt
$font = "Arial"
$komma = ","
$eur = "€"
; Array für den Inhalt der GUIs
Global $button, $buttonSchleifeEnde, $ausgabenSchleifenEnde
Global $ListviewAusgaben
$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]
$ListviewAusgabenUeberschrift[0] = "Datum"
$ListviewAusgabenUeberschrift[1] = "Laden"
$ListviewAusgabenUeberschrift[2] = "Betrag"
$ListviewAusgabenUeberschrift[3] = "Bezahlt mit"
$ListviewAusgabenUeberschrift[4] = "Bereich"
#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 ###
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
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
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
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
;~ ########################################################################################################################
;~ ######################### Beginn der Funktionen, die über die Navigation aufgerufen werden #############################
;~ ########################################################################################################################
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
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
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
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
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
;~ ########################################################################################################################
;~ ######################################### Ende der Navigations Funktionen ##############################################
;~ ########################################################################################################################
;~ ########################################################################################################################
;~ ####################### Beginn der Funktionen, um GUI Items zu erstellen, auszublenen oder einzublenden ################
;~ ########################################################################################################################
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
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
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)
Else
For $i = 0 to $ausgabenSchleifenEnde Step 1
GUICtrlSetState($Ausgaben[$i], $GUI_SHOW)
Next
GUICtrlSetState($ListviewAusgaben, $GUI_SHOW)
EndIf
EndFunc
Func VersteckeAusgabenItems()
Dim $i
For $i = 0 to $ausgabenSchleifenEnde Step 1
GUICtrlSetState($Ausgaben[$i], $GUI_HIDE)
Next
GUICtrlSetState($ListviewAusgaben, $GUI_HIDE)
EndFunc
;~ ########################################################################################################################
;~ ####################### Ende der Funktionen, um GUI Items zu erstellen, auszublenen oder einzublenden ##################
;~ ########################################################################################################################
;~ ########################################################################################################################
;~ ############################### Anfang der Funktionen, um Die Listviews zu bearbeiten ##################################
;~ ########################################################################################################################
Func AddListview()
GUICtrlCreateLabel("test", 400,400,100,25)
EndFunc
;~ ########################################################################################################################
;~ ################################ Ende der Funktionen, um Die Listviews zu bearbeiten ###################################
;~ ########################################################################################################################
Wo liegt mein Fehler, und wie kann er behoben werden?
Ich danke schon mal im vorraus für eure Hilfe!
Gruß
0cool
@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
@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
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
name22: Schau Dir mal die Zeile 17 in meinen Skript an. In dieser Zeile wird die Batch Datei aufgerufen.
Gruß
0cool
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:
;~ Varibale werden geladen
$path = "C:\Program Files\Tools\Autologon"
$bat = "advFirewall.exe"
$advFirewall = $path & "\" & $bat
$admin = "Admin"
$pw = "*********"
If FileExists($advFirewall) Then
MsgBox(64, "Erfolg", "Die Datei " & $advFirewall & " existiert.")
Else
MsgBox(64, "Erfolg", "Die Datei " & $advFirewall & " existiert nicht.")
Exit
EndIf
;~ 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
Der Code der aufgerufenen BAT Datei sieht ist der folgende:
Als Fehlermeldung bekomme ich die folgende Meldung:
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
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:
#comments-start
Skrit-Name: Haushaltsbuch.exe
Erstellt am: 22.06.2012
Fuunktion: Erfassung der Einahmen und Ausgabe im Haushalt
#########################################################
#comments-end
; 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>
; Constante werden definiert
Const $versicherungenOutput = @ScriptDir & "\data\versicherungen.txt"
Const $einkaufOutput = @ScriptDir & "\data\Einkaeufe.txt"
Const $einnahmenOutput = @ScriptDir & "\data\einnahmen.txt"
; 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"
; 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)
$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
; 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)
; 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)
; 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)
; 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)
$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
; 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
; Check if file opened for reading OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
If $countlines > 0 Then
; Read in lines of text until the EOF is reached
;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
; 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
; Check if file opened for reading OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
If $countlines > 0 Then
; Read in lines of text until the EOF is reached
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)
; Der Aktuelle Betrag der gesamten Ausgaben im gesamten Monat wird angezeigt.
GUICtrlSetData($BetragAusgaben, $viewAusgaben)
EndFunc
; Ende der Funktionen
Falls du weitere verbesserungsvorschläge hast bin ich gerne zu. Wie schon gesagt ich bin ein Neuling in AutoIt
Gruß
0cool
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:
#comments-start
Skrit-Name: Haushaltsbuch.exe
Ersteller: Thorsten Zelt
Erstellt am: 22.06.2012
Fuunktion: Erfassung der Einahmen und Ausgabe im Haushalt
#########################################################
#comments-end
; 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>
; Constante werden definiert
Const $versicherungenOutput = @ScriptDir & "\data\versicherungen.txt"
Const $einkaufOutput = @ScriptDir & "\data\Einkaeufe.txt"
Const $einnahmenOutput = @ScriptDir & "\data\einnahmen.txt"
; 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"
; 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)
$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
; In der While Schleife werden Aktionen ausgeführt
While 1
; Eine Line zwischen den Versicherungen und der Einkäufen wird gezogen
;~ _GDIPlus_Startup()
;~ $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hWnd)
;~ _GDIPlus_GraphicsDrawLine($hGraphics, 128,250,765,250)
$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)
; 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)
; 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)
; 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)
$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
; 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
; Check if file opened for reading OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
If $countlines > 0 Then
; Read in lines of text until the EOF is reached
;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)
Local $countlines = _FileCountLines($einkaufOutput)
Local $file = FileOpen($einkaufOutput, 0)
Local $BetragEinnahmen
Local $viewAusgaben
; Check if file opened for reading OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
If $countlines > 0 Then
; Read in lines of text until the EOF is reached
; 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)
If $BetragEinnahmen <> '' Then
GUICtrlSetData($BetragEinnahmen, $viewAusgaben)
EndIf
$BetragEinnahmen = GUICtrlCreateLabel($viewAusgaben & $Eur, 260, 143, 150, 17)
;~ GUICtrlSetData($BetragEinnahmen, $viewAusgaben)
EndFunc
; Ende der Funktionen
Wie kann ich mein Vorhaben verwirklichen?
Danke schon mal für eure Hilfe!
0cool
@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
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:
Mein Ziel:
Ich hoffe das ich jetzt mein Ziel gut erklärt habe.
Gruß
0cool
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)
; Check if file opened for reading OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
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
Else
$line = FileReadLine($file)
$betrag = StringSplit($line, " ")
GUICtrlCreateLabel($betrag[2], 260, 107, 100, 17)
EndIf
FileClose($file)
EndFunc
Danke schon mal für eure Hilfe.
Gruß
0cool
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)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
ExitLoop
Case $button
GUICtrlSetState($TabSheet2, $GUI_SHOW) ;i das Tabitem anzeigen
EndSwitch
WEnd
; Ende
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