ich würde auch ein editfeld nehmen, und die daten mit filewritefromarray einfügen, die du vorher mit filereadtoarray aus der txt ausgelesen hast
Beiträge von sc4ry
-
-
dann werden meine scripte aber so kurz =)
spaß, werd das nächste mal dran denken

-
d.h. dass er noch in der falschen schleife hängt ...
die frage ist wo, glaub mit dem schnipsel kommen wir nicht weitkannst ja TrayIconDebug auf 1 setzen, dann siehst du wo dein script rumidlet =)
oder exitloop?
-
mit fleißiger, oder eigentlich hauptsächlicher hilfe von bugfix, hier nun die erste version von grundbuch.
hiermit können buchungssätze angelegt werden (in einer txt), in der man eine liste mit kto + nr. zur verfügung hat, die automatisch gezogen werden.
ein check überprüft, ob soll an haben gleich ist und es können einträge geändert, hinzugefügt oder gelöscht werden.viel spaß
Version 0.01
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <guiconstants.au3>
#include <guilistview.au3>
#include <file.au3>
Opt("GUIOnEventMode", 1)HotKeySet("^z", 'Undo')
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{F1}", 'InsertAcc')
HotKeySet("{F2}", 'EditAcc')
HotKeySet("{F3}", 'DeleteAcc')
HotKeySet("{F5}", 'save')Global $flag
[/autoit] [autoit][/autoit] [autoit]
Global $list
Global $nr = 1
Global $input, $iinput, $iiinput
Global Const $WM_NOTIFY = 0x004E
Global Const $NM_FIRST = 0
Global Const $NM_LAST = (-99)
Global Const $NM_CLICK = ($NM_FIRST - 2)
Global Const $NM_DBLCLK = ($NM_FIRST - 3)
Global Const $NM_RCLICK = ($NM_FIRST - 5)
Global Const $NM_RDBLCLK = ($NM_FIRST - 6)Dim $pathKonten = 'konten.txt', $pathUndo = $pathKonten & '.BAK'
[/autoit] [autoit][/autoit] [autoit]
Dim $arKonten, $arListe[1]FileInstall("konten.txt", "konten.txt")
[/autoit] [autoit][/autoit] [autoit]$maingui = GUICreate("Grundbuch 0.01 - thx 2 BugFix", 500, 300)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_Event_Close, 'CloseGUI')
$menu = GUICtrlCreateMenu("&Konto")
$add = GUICtrlCreateMenuItem("&einfügen F1", $menu)
GUICtrlSetOnEvent(-1, 'InsertAcc')
$edit = GUICtrlCreateMenuItem("&bearbeiten F2", $menu)
GUICtrlSetOnEvent(-1, 'EditAcc')
$blind = GUICtrlCreateMenuItem("", $menu)
$remove = GUICtrlCreateMenuItem("&löschen F3", $menu)
GUICtrlSetOnEvent(-1, 'DeleteAcc')
$blind = GUICtrlCreateMenuItem("", $menu)
$undo = GUICtrlCreateMenuItem("&undo STRG+Z", $menu)
GUICtrlSetOnEvent(-1, 'Undo')
GUICtrlCreateGroup("Konten-Liste", 0, 5, 170, 270)
$list = GUICtrlCreateListView("Konto|Nr.", 5, 20, 160, 250, -1, BitOR($LVS_EX_GRIDLINES,$LVS_EX_FULLROWSELECT))
_GUICtrlListViewSetColumnWidth(-1, 0, 88)
_GUICtrlListViewSetColumnWidth(-1, 1, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Grundbuch", 170, 5, 330, 270)
GUICtrlCreateLabel("Konto", 180, 20)
GUICtrlCreateLabel("Nr.", 360, 20)
GUICtrlCreateLabel("Betrag", 430, 20)
GUICtrlCreateLabel("an...", 180, 115)
$button1 = GUICtrlCreateButton(">", 175, 35, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button2 = GUICtrlCreateButton(">", 175, 55, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button3 = GUICtrlCreateButton(">", 175, 75, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button4 = GUICtrlCreateButton(">", 175, 95, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button5 = GUICtrlCreateButton(">", 175, 135, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button6 = GUICtrlCreateButton(">", 175, 155, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button7 = GUICtrlCreateButton(">", 175, 175, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button8 = GUICtrlCreateButton(">", 175, 195, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$input1 = GUICtrlCreateInput("", 195, 35, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input2 = GUICtrlCreateInput("", 195, 55, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input3 = GUICtrlCreateInput("", 195, 75, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input4 = GUICtrlCreateInput("", 195, 95, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input5 = GUICtrlCreateInput("", 195, 135, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input6 = GUICtrlCreateInput("", 195, 155, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input7 = GUICtrlCreateInput("", 195, 175, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input8 = GUICtrlCreateInput("", 195, 195, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$iinput1 = GUICtrlCreateInput("", 360, 35, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg1')
$iinput2 = GUICtrlCreateInput("", 360, 55, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg2')
$iinput3 = GUICtrlCreateInput("", 360, 75, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg3')
$iinput4 = GUICtrlCreateInput("", 360, 95, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg4')
$iinput5 = GUICtrlCreateInput("", 360, 135, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg5')
$iinput6 = GUICtrlCreateInput("", 360, 155, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg6')
$iinput7 = GUICtrlCreateInput("", 360, 175, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg7')
$iinput8 = GUICtrlCreateInput("", 360, 195, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg8')
$iiinput1 = GUICtrlCreateInput("", 430, 35, 60, 15)
$iiinput2 = GUICtrlCreateInput("", 430, 55, 60, 15)
$iiinput3 = GUICtrlCreateInput("", 430, 75, 60, 15)
$iiinput4 = GUICtrlCreateInput("", 430, 95, 60, 15)
$iiinput5 = GUICtrlCreateInput("", 430, 135, 60, 15)
$iiinput6 = GUICtrlCreateInput("", 430, 155, 60, 15)
$iiinput7 = GUICtrlCreateInput("", 430, 175, 60, 15)
$iiinput8 = GUICtrlCreateInput("", 430, 195, 60, 15)
GUICtrlCreateLabel("File-Name", 180, 225)
$filename = GUICtrlCreateInput("", 240, 225, 200, 15)
GUICtrlSetTip(-1, "Name der Datei, OHNE Zusatzt -txt-")
GUICtrlCreateButton("speichere Buchungssatz (F5)", 265, 245)
GUICtrlSetTip(-1, "speichert den angegebenen Buchungssatz in einer txt-Datei")
GUICtrlSetOnEvent(-1, 'save')
GUICtrlCreateGroup("", -99, -99, 1, 1)
For $i = $button1 to $button8
GUICtrlSetTip($i, "übernimmt markierten Kontennamen + Konten-Nr.")
Next
For $i = $input1 To $input8
GUICtrlSetTip($i, "... gewünschter Kontenname (Nr. wird, sofern vorhanden, übernommen)")
Next
For $i = $iinput1 To $iinput8
GUICtrlSetTip($i, "... gewünschte Konten-Nr. (Name wird, sofern vorhanden, übernommen)")
Next
For $i = $iiinput1 To $iiinput8
GUICtrlSetTip($i, "... Betrag ohne Währung (wird in € angegeben)")
Next
GUISetState(@SW_SHOW, $maingui)
ReadAcc($pathKonten)
GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")
While 1
Sleep(100)
Wend
Func CloseGUI()
Exit
EndFunc
Func ReadAcc($PATH) ; aus Datei in ListView schreiben
_FileReadToArray($PATH, $arKonten)
If (Not IsArray($arKonten)) Then
MsgBox(0, 'Fehler', 'Kontenliste konnte nicht gelesen werden!')
Return
EndIf
ReDim $arListe[UBound($arKonten)-1]
For $i = 1 To $arKonten[0]
$arListe[$i-1] = GUICtrlCreateListViewItem($arKonten[$i], $list)
Next
EndFunc
Func WriteAcc() ; aus ListView in Datei schreiben (nach jedem Edit, Add und Löschen)
$anz = _GUICtrlListViewGetItemCount($list)
ReDim $arKonten[$anz]
For $i = 0 To UBound($arKonten)-1
$arKonten[$i] = _GUICtrlListViewGetItemText($list, $i, 0) & '|' & _GUICtrlListViewGetItemText($list, $i, 1)
Next
If FileExists($pathKonten) Then FileMove($pathKonten, $pathKonten & '.BAK', 1)
_FileWriteFromArray($pathKonten, $arKonten)
EndFunc
Func InsertAcc() ; Konto hinzufügen
ReDim $arListe[UBound($arListe)+1]
$arListe[UBound($arListe)-1] = GUICtrlCreateListViewItem( InputBox('Kontoname', 'Bitte Namen des neuen Kontos eingeben:', "", "", 300, 120) & '|' & _
InputBox('Kontonummer', 'Bitte die Nummer des neuen Kontos eingeben:', "", "", 300, 120), $list)
WriteAcc()
EndFunc
Func DeleteAcc() ; Konto löschen
$index = _GUICtrlListViewGetCurSel($list)
_GUICtrlListViewDeleteItem ($list, $index)
WriteAcc()
EndFunc
Func EditAcc() ; Konto bearbeiten
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
$name = InputBox('Kontoname', 'Hier können Sie den Kontennamen ändern:', $name, "", 300, 120)
$number = InputBox('Kontonummer', 'Hier können Sie die Kontonummer ändern:', $number, "", 300, 120)
_GUICtrlListViewSetItemText($list, $index, 0, $name)
_GUICtrlListViewSetItemText($list, $index, 1, $number)
WriteAcc()
EndFunc
Func Undo() ; letzte Aktion (Edit, New, Delete) rückgängig machen
_GUICtrlListViewDeleteAllItems($list)
ReadAcc($pathUndo)
WriteAcc()
EndFunc
Func ListView_DoubleClick() ; Werte übertragen
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
For $i = $input1 To $input8
If GUICtrlRead($i) = '' Then
GUICtrlSetData($i, $name)
Switch $i
Case $input1
GUICtrlSetData($iinput1, $number)
Case $input2
GUICtrlSetData($iinput2, $number)
Case $input3
GUICtrlSetData($iinput3, $number)
Case $input4
GUICtrlSetData($iinput4, $number)
Case $input5
GUICtrlSetData($iinput5, $number)
Case $input6
GUICtrlSetData($iinput6, $number)
Case $input7
GUICtrlSetData($iinput7, $number)
Case $input8
GUICtrlSetData($iinput8, $number)
EndSwitch
ExitLoop
EndIf
Next
EndFuncFunc FillIn()
[/autoit] [autoit][/autoit] [autoit]
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
$i = @GUI_CTRLID
Switch $i
Case 18
GUICtrlSetData($input1, $name)
GUICtrlSetData($iinput1, $number)
Case 19
GUICtrlSetData($input2, $name)
GUICtrlSetData($iinput2, $number)
Case 20
GUICtrlSetData($input3, $name)
GUICtrlSetData($iinput3, $number)
Case 21
GUICtrlSetData($input4, $name)
GUICtrlSetData($iinput4, $number)
Case 22
GUICtrlSetData($input5, $name)
GUICtrlSetData($iinput5, $number)
Case 23
GUICtrlSetData($input6, $name)
GUICtrlSetData($iinput6, $number)
Case 24
GUICtrlSetData($input7, $name)
GUICtrlSetData($iinput7, $number)
Case 25
GUICtrlSetData($input8, $name)
GUICtrlSetData($iinput8, $number)
EndSwitch
EndFuncFunc NameChg()
[/autoit] [autoit][/autoit] [autoit]
$i = @GUI_CTRLID
$index = _GUICtrlListViewFindItem($list, GUICtrlRead($i))
$number = _GUICtrlListViewGetItemText($list, $index, 1)
Switch $i
Case 26
GUICtrlSetData($iinput1, $number)
Case 27
GUICtrlSetData($iinput2, $number)
Case 28
GUICtrlSetData($iinput3, $number)
Case 29
GUICtrlSetData($iinput4, $number)
Case 30
GUICtrlSetData($iinput5, $number)
Case 31
GUICtrlSetData($iinput6, $number)
Case 32
GUICtrlSetData($iinput7, $number)
Case 33
GUICtrlSetData($iinput8, $number)
EndSwitch
EndFunc
Func save()
$sum1 = GUICtrlRead($iiinput1) + GUICtrlRead($iiinput2) + GUICtrlRead($iiinput3) + GUICtrlRead($iiinput4)
$sum2 = GUICtrlRead($iiinput5) + GUICtrlRead($iiinput6) + GUICtrlRead($iiinput7) + GUICtrlRead($iiinput8)
If $sum1 <> $sum2 Then
MsgBox(16, "Fehler", "Summen stimmen nicht überein" & @CRLF & @CRLF & $sum1 & " - " & $sum2 & " = " & $sum1 - $sum2)
ElseIf GUICtrlRead($filename) = "" Then
[/autoit] [autoit][/autoit] [autoit]
$flag = True
$file2 = InputBox("File-Name", "Geben Sie einen File-Namen ein", "", "", 300,120)
$file = $file2 & ".txt"
Else
$file = GUICtrlRead($filename) & ".txt"
EndIf
$save = FileOpen($file, 1)
FileWrite($save, "> " & $nr & "." & @CRLF)
If GUICtrlRead($input1) = "" Then
Else
FileWrite($save, GUICtrlRead($iinput1) & " " & GUICtrlRead($input1) & " " & GUICtrlRead($iiinput1) & " €" & @CRLF)
EndIf
If GUICtrlRead($input2) = "" Then
Else
FileWrite($save, GUICtrlRead($iinput2) & " " & GUICtrlRead($input2) & " " & GUICtrlRead($iiinput2) & " €" & @CRLF)
EndIf
If GUICtrlRead($input3) = "" Then
Else
FileWrite($save, GUICtrlRead($iinput3) & " " & GUICtrlRead($input3) & " " & GUICtrlRead($iiinput3) & " €" & @CRLF)
EndIf
If GUICtrlRead($input4) = "" Then
Else
FileWrite($save, GUICtrlRead($iinput4) & " " & GUICtrlRead($input4) & " " & GUICtrlRead($iiinput4) & " €" & @CRLF)
EndIf
If GUICtrlRead($input5) = "" Then
Else
FileWrite($save, "an " & GUICtrlRead($iinput5) & " " & GUICtrlRead($input5) & " " & GUICtrlRead($iiinput5) & " €" & @CRLF)
EndIf
If GUICtrlRead($input6) = "" Then
Else
FileWrite($save, "an " & GUICtrlRead($iinput6) & " " & GUICtrlRead($input6) & " " & GUICtrlRead($iiinput6) & " €" & @CRLF)
EndIf
If GUICtrlRead($input7) = "" Then
Else
FileWrite($save, "an " & GUICtrlRead($iinput7) & " " & GUICtrlRead($input7) & " " & GUICtrlRead($iiinput7) & " €" & @CRLF)
EndIf
If GUICtrlRead($input8) = "" Then
Else
FileWrite($save, "an " & GUICtrlRead($iinput8) & " " & GUICtrlRead($input8) & " " & GUICtrlRead($iiinput8) & " €" & @CRLF)
EndIf
FileWrite($save, "-" & @CRLF)
FileWrite($save, "Summe: " & $sum1 & " €" & @CRLF)
FileWrite($save, @CRLF)
FileClose($save)
For $i = $input1 To $input8
GUICtrlSetData($i, "")
Next
For $i = $iinput1 To $iinput8
GUICtrlSetData($i, "")
Next
For $i = $iiinput1 To $iiinput8
GUICtrlSetData($i, "")
Next
If $flag = True Then
GUICtrlSetData($filename, $file2)
$flag = False
Else
EndIf
$nr = $nr + 1
EndIf
EndFunc; WM_NOTIFY event handler
[/autoit] [autoit][/autoit] [autoit]
Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam)
;#forceref $hWndGUI, $MsgID, $wParam
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam);NMHDR (hwndFrom, idFrom, code)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3)
Select
Case $wParam = $list
Select
Case $event = $NM_CLICK
;~ ListView_Click ()
Case $event = $NM_DBLCLK
ListView_DoubleClick ()
Case $event = $NM_RCLICK
;~ ListView_RightClick ()
Case $event = $NM_RDBLCLK
;~ ListView_RightDblClick ()
EndSelect
EndSelect
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc ;==>WM_Notify_Events
Func NumberChg1()
$index = _LV_Search($list, GUICtrlRead($iinput1))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input1, $name)
EndFunc
Func NumberChg2()
$index = _LV_Search($list, GUICtrlRead($iinput2))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input2, $name)
EndFunc
Func NumberChg3()
$index = _LV_Search($list, GUICtrlRead($iinput3))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input3, $name)
EndFunc
Func NumberChg4()
$index = _LV_Search($list, GUICtrlRead($iinput4))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input4, $name)
EndFunc
Func NumberChg5()
$index = _LV_Search($list, GUICtrlRead($iinput5))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input5, $name)
EndFunc
Func NumberChg6()
$index = _LV_Search($list, GUICtrlRead($iinput6))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input6, $name)
EndFunc
Func NumberChg7()
$index = _LV_Search($list, GUICtrlRead($iinput7))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input7, $name)
EndFunc
Func NumberChg8()
$index = _LV_Search($list, GUICtrlRead($iinput8))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input8, $name)
EndFuncFunc _LV_Search($LV, $What2Find)
[/autoit]
$count = _GUICtrlListViewGetItemCount($LV)
If $count < 1 Then Return -1 ; Return -1 ; leere Liste
$countSub = _GUICtrlListViewGetSubItemsCount($LV)
For $i = 0 To $count-1
For $k = 0 To $countSub-1
If _GUICtrlListViewGetItemText($LV, $i, $k) = $What2Find Then Return $i
Next
Next
Return -2 ; Return -2 ; nicht gefunden
EndFuncVersion 1.01
+Excel-Export
+Auto-NameSpoiler anzeigen
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit] [autoit][/autoit] [autoit]
#AutoIt3Wrapper_Allow_Decompile=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <guiconstants.au3>
#include <guilistview.au3>
#include <file.au3>
#include <excel.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]HotKeySet("^z", 'Undo')
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{F1}", 'InsertAcc')
HotKeySet("{F2}", 'EditAcc')
HotKeySet("{F3}", 'DeleteAcc')
HotKeySet("{F5}", 'save')
HotKeySet("{F6}", 'excel')Global $flag
[/autoit] [autoit][/autoit] [autoit]
Global $list
Global $nr = 1
Global $input, $iinput, $iiinput
Global $save
Global Const $WM_NOTIFY = 0x004E
Global Const $NM_FIRST = 0
Global Const $NM_LAST = (-99)
Global Const $NM_CLICK = ($NM_FIRST - 2)
Global Const $NM_DBLCLK = ($NM_FIRST - 3)
Global Const $NM_RCLICK = ($NM_FIRST - 5)
Global Const $NM_RDBLCLK = ($NM_FIRST - 6)
Dim $pathKonten = 'konten.txt', $pathUndo = $pathKonten & '.BAK'
Dim $arKonten, $arListe[1]FileInstall("konten.txt", "konten.txt")
[/autoit] [autoit][/autoit] [autoit]$maingui = GUICreate("Grundbuch 1.01 (by Daniel von Pluto)", 500, 300)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_Event_Close, 'CloseGUI')
$menu = GUICtrlCreateMenu("&Konto")
$add = GUICtrlCreateMenuItem("&einfügen F1", $menu)
GUICtrlSetOnEvent(-1, 'InsertAcc')
$edit = GUICtrlCreateMenuItem("&bearbeiten F2", $menu)
GUICtrlSetOnEvent(-1, 'EditAcc')
$blind = GUICtrlCreateMenuItem("", $menu)
$remove = GUICtrlCreateMenuItem("&löschen F3", $menu)
GUICtrlSetOnEvent(-1, 'DeleteAcc')
$blind = GUICtrlCreateMenuItem("", $menu)
$undo = GUICtrlCreateMenuItem("&undo STRG+Z", $menu)
GUICtrlSetOnEvent(-1, 'Undo')
GUICtrlCreateGroup("Konten-Liste", 0, 5, 170, 270)
$list = GUICtrlCreateListView("Konto|Nr.", 5, 20, 160, 250, -1, BitOR($LVS_EX_GRIDLINES,$LVS_EX_FULLROWSELECT))
_GUICtrlListViewSetColumnWidth(-1, 0, 88)
_GUICtrlListViewSetColumnWidth(-1, 1, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Grundbuch", 170, 5, 330, 270)
GUICtrlCreateLabel("Konto", 180, 20)
GUICtrlCreateLabel("Nr.", 360, 20)
GUICtrlCreateLabel("Betrag", 430, 20)
GUICtrlCreateLabel("an...", 180, 115)
$button1 = GUICtrlCreateButton(">", 175, 35, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button2 = GUICtrlCreateButton(">", 175, 55, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button3 = GUICtrlCreateButton(">", 175, 75, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button4 = GUICtrlCreateButton(">", 175, 95, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button5 = GUICtrlCreateButton(">", 175, 135, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button6 = GUICtrlCreateButton(">", 175, 155, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button7 = GUICtrlCreateButton(">", 175, 175, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button8 = GUICtrlCreateButton(">", 175, 195, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$input1 = GUICtrlCreateInput("", 195, 35, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input2 = GUICtrlCreateInput("", 195, 55, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input3 = GUICtrlCreateInput("", 195, 75, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input4 = GUICtrlCreateInput("", 195, 95, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input5 = GUICtrlCreateInput("", 195, 135, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input6 = GUICtrlCreateInput("", 195, 155, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input7 = GUICtrlCreateInput("", 195, 175, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input8 = GUICtrlCreateInput("", 195, 195, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$iinput1 = GUICtrlCreateInput("", 360, 35, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg1')
$iinput2 = GUICtrlCreateInput("", 360, 55, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg2')
$iinput3 = GUICtrlCreateInput("", 360, 75, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg3')
$iinput4 = GUICtrlCreateInput("", 360, 95, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg4')
$iinput5 = GUICtrlCreateInput("", 360, 135, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg5')
$iinput6 = GUICtrlCreateInput("", 360, 155, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg6')
$iinput7 = GUICtrlCreateInput("", 360, 175, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg7')
$iinput8 = GUICtrlCreateInput("", 360, 195, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg8')
$iiinput1 = GUICtrlCreateInput("", 430, 35, 60, 15)
$iiinput2 = GUICtrlCreateInput("", 430, 55, 60, 15)
$iiinput3 = GUICtrlCreateInput("", 430, 75, 60, 15)
$iiinput4 = GUICtrlCreateInput("", 430, 95, 60, 15)
$iiinput5 = GUICtrlCreateInput("", 430, 135, 60, 15)
$iiinput6 = GUICtrlCreateInput("", 430, 155, 60, 15)
$iiinput7 = GUICtrlCreateInput("", 430, 175, 60, 15)
$iiinput8 = GUICtrlCreateInput("", 430, 195, 60, 15)
GUICtrlCreateLabel("File-Name", 180, 225)
$filename = GUICtrlCreateInput("", 240, 225, 200, 15)
GUICtrlSetTip(-1, "Name der Datei, OHNE Zusatzt -txt-")
GUICtrlCreateButton("speichern (F5)", 238, 245)
GUICtrlSetTip(-1, "speichert den angegebenen Buchungssatz in einer txt-Datei")
GUICtrlSetOnEvent(-1, 'save')
GUICtrlCreateButton("export 2 Excel (F6)", 345, 245)
GUICtrlSetTip(-1, "exportiert die gespeicherten Buchungssätze nach Excel")
GUICtrlSetOnEvent(-1, 'excel')
GUICtrlCreateGroup("", -99, -99, 1, 1)
For $i = $button1 to $button8
GUICtrlSetTip($i, "übernimmt markierten Kontennamen + Konten-Nr.")
Next
For $i = $input1 To $input8
GUICtrlSetTip($i, "... gewünschter Kontenname (Nr. wird, sofern vorhanden, übernommen)")
Next
For $i = $iinput1 To $iinput8
GUICtrlSetTip($i, "... gewünschte Konten-Nr. (Name wird, sofern vorhanden, übernommen)")
Next
For $i = $iiinput1 To $iiinput8
GUICtrlSetTip($i, "... Betrag ohne Währung (wird in € angegeben)")
Next
GUISetState(@SW_SHOW, $maingui)
ReadAcc($pathKonten)
GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")
While 1
Sleep(100)
Wend
Func CloseGUI()
Exit
EndFunc
Func ReadAcc($PATH) ; aus Datei in ListView schreiben
_FileReadToArray($PATH, $arKonten)
If (Not IsArray($arKonten)) Then
MsgBox(0, 'Fehler', 'Kontenliste konnte nicht gelesen werden!')
Return
EndIf
ReDim $arListe[UBound($arKonten)-1]
For $i = 1 To $arKonten[0]
$arListe[$i-1] = GUICtrlCreateListViewItem($arKonten[$i], $list)
Next
EndFunc
Func WriteAcc() ; aus ListView in Datei schreiben (nach jedem Edit, Add und Löschen)
$anz = _GUICtrlListViewGetItemCount($list)
ReDim $arKonten[$anz]
For $i = 0 To UBound($arKonten)-1
$arKonten[$i] = _GUICtrlListViewGetItemText($list, $i, 0) & '|' & _GUICtrlListViewGetItemText($list, $i, 1)
Next
If FileExists($pathKonten) Then FileMove($pathKonten, $pathKonten & '.BAK', 1)
_FileWriteFromArray($pathKonten, $arKonten)
EndFunc
Func InsertAcc() ; Konto hinzufügen
ReDim $arListe[UBound($arListe)+1]
$arListe[UBound($arListe)-1] = GUICtrlCreateListViewItem( InputBox('Kontoname', 'Bitte Namen des neuen Kontos eingeben:', "", "", 300, 120) & '|' & _
InputBox('Kontonummer', 'Bitte die Nummer des neuen Kontos eingeben:', "", "", 300, 120), $list)
WriteAcc()
EndFunc
Func DeleteAcc() ; Konto löschen
$index = _GUICtrlListViewGetCurSel($list)
_GUICtrlListViewDeleteItem ($list, $index)
WriteAcc()
EndFunc
Func EditAcc() ; Konto bearbeiten
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
$name = InputBox('Kontoname', 'Hier können Sie den Kontennamen ändern:', $name, "", 300, 120)
$number = InputBox('Kontonummer', 'Hier können Sie die Kontonummer ändern:', $number, "", 300, 120)
_GUICtrlListViewSetItemText($list, $index, 0, $name)
_GUICtrlListViewSetItemText($list, $index, 1, $number)
WriteAcc()
EndFunc
Func Undo() ; letzte Aktion (Edit, New, Delete) rückgängig machen
_GUICtrlListViewDeleteAllItems($list)
ReadAcc($pathUndo)
WriteAcc()
EndFunc
Func ListView_DoubleClick() ; Werte übertragen
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
For $i = $input1 To $input8
If GUICtrlRead($i) = '' Then
GUICtrlSetData($i, $name)
Switch $i
Case $input1
GUICtrlSetData($iinput1, $number)
Case $input2
GUICtrlSetData($iinput2, $number)
Case $input3
GUICtrlSetData($iinput3, $number)
Case $input4
GUICtrlSetData($iinput4, $number)
Case $input5
GUICtrlSetData($iinput5, $number)
Case $input6
GUICtrlSetData($iinput6, $number)
Case $input7
GUICtrlSetData($iinput7, $number)
Case $input8
GUICtrlSetData($iinput8, $number)
EndSwitch
ExitLoop
EndIf
Next
EndFuncFunc FillIn()
[/autoit] [autoit][/autoit] [autoit]
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
$i = @GUI_CTRLID
Switch $i
Case 18
GUICtrlSetData($input1, $name)
GUICtrlSetData($iinput1, $number)
Case 19
GUICtrlSetData($input2, $name)
GUICtrlSetData($iinput2, $number)
Case 20
GUICtrlSetData($input3, $name)
GUICtrlSetData($iinput3, $number)
Case 21
GUICtrlSetData($input4, $name)
GUICtrlSetData($iinput4, $number)
Case 22
GUICtrlSetData($input5, $name)
GUICtrlSetData($iinput5, $number)
Case 23
GUICtrlSetData($input6, $name)
GUICtrlSetData($iinput6, $number)
Case 24
GUICtrlSetData($input7, $name)
GUICtrlSetData($iinput7, $number)
Case 25
GUICtrlSetData($input8, $name)
GUICtrlSetData($iinput8, $number)
EndSwitch
EndFuncFunc NameChg()
[/autoit] [autoit][/autoit] [autoit]
$i = @GUI_CTRLID
$index = _GUICtrlListViewFindItem($list, GUICtrlRead($i))
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
Switch $i
Case 26
GUICtrlSetData($input1, $name)
GUICtrlSetData($iinput1, $number)
Case 27
GUICtrlSetData($input2, $name)
GUICtrlSetData($iinput2, $number)
Case 28
GUICtrlSetData($input3, $name)
GUICtrlSetData($iinput3, $number)
Case 29
GUICtrlSetData($input4, $name)
GUICtrlSetData($iinput4, $number)
Case 30
GUICtrlSetData($input5, $name)
GUICtrlSetData($iinput5, $number)
Case 31
GUICtrlSetData($input6, $name)
GUICtrlSetData($iinput6, $number)
Case 32
GUICtrlSetData($input7, $name)
GUICtrlSetData($iinput7, $number)
Case 33
GUICtrlSetData($input8, $name)
GUICtrlSetData($iinput8, $number)
EndSwitch
EndFunc
Func save()
$sum1 = GUICtrlRead($iiinput1) + GUICtrlRead($iiinput2) + GUICtrlRead($iiinput3) + GUICtrlRead($iiinput4)
$sum2 = GUICtrlRead($iiinput5) + GUICtrlRead($iiinput6) + GUICtrlRead($iiinput7) + GUICtrlRead($iiinput8)
If $sum1 <> $sum2 Then
MsgBox(16, "Fehler", "Summen stimmen nicht überein" & @CRLF & @CRLF & $sum1 & " - " & $sum2 & " = " & $sum1 - $sum2)
ElseIf GUICtrlRead($filename) = "" Then
[/autoit] [autoit][/autoit] [autoit]
$flag = True
$file2 = InputBox("File-Name", "Geben Sie einen File-Namen ein", "", "", 300,120)
$file = $file2 & ".txt"
Else
$file = GUICtrlRead($filename) & ".txt"
EndIf
$save = FileOpen($file, 1)
FileWrite($save, "> " & $nr & "." & @CRLF)
If GUICtrlRead($input1) = "" Then
Else
FileWrite($save, ";" & GUICtrlRead($iinput1) & ";" & GUICtrlRead($input1) & ";" & GUICtrlRead($iiinput1) & " €" & @CRLF)
EndIf
If GUICtrlRead($input2) = "" Then
Else
FileWrite($save, ";" & GUICtrlRead($iinput2) & ";" & GUICtrlRead($input2) & ";" & GUICtrlRead($iiinput2) & " €" & @CRLF)
EndIf
If GUICtrlRead($input3) = "" Then
Else
FileWrite($save, ";" & GUICtrlRead($iinput3) & ";" & GUICtrlRead($input3) & ";" & GUICtrlRead($iiinput3) & " €" & @CRLF)
EndIf
If GUICtrlRead($input4) = "" Then
Else
FileWrite($save, ";" & GUICtrlRead($iinput4) & ";" & GUICtrlRead($input4) & ";" & GUICtrlRead($iiinput4) & " €" & @CRLF)
EndIf
If GUICtrlRead($input5) = "" Then
Else
FileWrite($save, "an;" & GUICtrlRead($iinput5) & ";" & GUICtrlRead($input5) & ";;" & GUICtrlRead($iiinput5) & " €" & @CRLF)
EndIf
If GUICtrlRead($input6) = "" Then
Else
FileWrite($save, "an;" & GUICtrlRead($iinput6) & ";" & GUICtrlRead($input6) & ";;" & GUICtrlRead($iiinput6) & " €" & @CRLF)
EndIf
If GUICtrlRead($input7) = "" Then
Else
FileWrite($save, "an;" & GUICtrlRead($iinput7) & ";" & GUICtrlRead($input7) & ";;" & GUICtrlRead($iiinput7) & " €" & @CRLF)
EndIf
If GUICtrlRead($input8) = "" Then
Else
FileWrite($save, "an;" & GUICtrlRead($iinput8) & ";" & GUICtrlRead($input8) & ";;" & GUICtrlRead($iiinput8) & " €" & @CRLF)
EndIf
FileWrite($save, "-" & @CRLF)
FileWrite($save, "Summe:;;;;" & $sum1 & " €" & @CRLF)
FileWrite($save, @CRLF)
FileClose($save)
For $i = $input1 To $input8
GUICtrlSetData($i, "")
Next
For $i = $iinput1 To $iinput8
GUICtrlSetData($i, "")
Next
For $i = $iiinput1 To $iiinput8
GUICtrlSetData($i, "")
Next
If $flag = True Then
GUICtrlSetData($filename, $file2)
$flag = False
Else
EndIf
$nr = $nr + 1
EndIf
EndFunc; WM_NOTIFY event handler
[/autoit] [autoit][/autoit] [autoit]
Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam)
;#forceref $hWndGUI, $MsgID, $wParam
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam);NMHDR (hwndFrom, idFrom, code)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3)
Select
Case $wParam = $list
Select
Case $event = $NM_CLICK
;~ ListView_Click ()
Case $event = $NM_DBLCLK
ListView_DoubleClick ()
Case $event = $NM_RCLICK
;~ ListView_RightClick ()
Case $event = $NM_RDBLCLK
;~ ListView_RightDblClick ()
EndSelect
EndSelect
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc ;==>WM_Notify_Events
Func NumberChg1()
$index = _LV_Search($list, GUICtrlRead($iinput1))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input1, $name)
EndFunc
Func NumberChg2()
$index = _LV_Search($list, GUICtrlRead($iinput2))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input2, $name)
EndFunc
Func NumberChg3()
$index = _LV_Search($list, GUICtrlRead($iinput3))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input3, $name)
EndFunc
Func NumberChg4()
$index = _LV_Search($list, GUICtrlRead($iinput4))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input4, $name)
EndFunc
Func NumberChg5()
$index = _LV_Search($list, GUICtrlRead($iinput5))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input5, $name)
EndFunc
Func NumberChg6()
$index = _LV_Search($list, GUICtrlRead($iinput6))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input6, $name)
EndFunc
Func NumberChg7()
$index = _LV_Search($list, GUICtrlRead($iinput7))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input7, $name)
EndFunc
Func NumberChg8()
$index = _LV_Search($list, GUICtrlRead($iinput8))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input8, $name)
EndFuncFunc _LV_Search($LV, $What2Find)
[/autoit] [autoit][/autoit] [autoit]
$count = _GUICtrlListViewGetItemCount($LV)
If $count < 1 Then Return -1 ; Return -1 ; leere Liste
$countSub = _GUICtrlListViewGetSubItemsCount($LV)
For $i = 0 To $count-1
For $k = 0 To $countSub-1
If _GUICtrlListViewGetItemText($LV, $i, $k) = $What2Find Then Return $i
Next
Next
Return -2 ; Return -2 ; nicht gefunden
EndFuncFunc excel()
[/autoit]
$export = @ScriptDir & "\" & GUICtrlRead($filename) & ".txt"
_ExcelBookOpenTxt($export, ";", 1, 1, 1, False, 1)
EndFunc -
klappt wunderbar ... saubere arbeit =)
-
danke bugfix, werd es mir mal schnell angucken.
auf dem weg zu meinen verwandten, hab ich im auto am lappi auch weitergemacht.das ist dabei rumgekommen...
nicht geklappt hat bis jetzt nur, den namen nach eingabe des names
drag&drop bin ich net zu gekommen =)PS: ah, ich wollte schon fragen warum ich das mit der nr. nicht hinbekomme ... halbe hinfahrt und ganze rückfahrt probiert (1 h) =)
PPS: so, hier mal die finale version. habe mal auf drag&drop verzichtet, hoffe das ok und du hast nicht zuviel arbeit investiert. meinst du das ist soweit erstmal ok (um es unter die leute zu bringen?)?
werde noch minimale sachen ändern, die mit dem speichern in der txt zu tun haben ...
aber ich habe schon ne idee für ne weitere version, die das ganze in excel exportiert (werd ich mich die tage dransetzen, sollte auch net soviel arbeit sein, mit excel.udf)aber vielen lieben großen dank an bugfix =)
wenns soweit fertig ist, kommts in scripte *g*Spoiler anzeigen
[autoit]#include <guiconstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <guilistview.au3>
#include <file.au3>
Opt("GUIOnEventMode", 1)HotKeySet("^z", 'Undo')
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{F1}", 'InsertAcc')
HotKeySet("{F2}", 'EditAcc')
HotKeySet("{F3}", 'DeleteAcc')
HotKeySet("{F5}", 'save')Global $flag
[/autoit] [autoit][/autoit] [autoit]
Global $list
Global $nr = 1
Global $input, $iinput, $iiinput
Global Const $WM_NOTIFY = 0x004E
Global Const $NM_FIRST = 0
Global Const $NM_LAST = (-99)
Global Const $NM_CLICK = ($NM_FIRST - 2)
Global Const $NM_DBLCLK = ($NM_FIRST - 3)
Global Const $NM_RCLICK = ($NM_FIRST - 5)
Global Const $NM_RDBLCLK = ($NM_FIRST - 6)
Dim $pathKonten = 'konten.txt', $pathUndo = $pathKonten & '.BAK'
Dim $arKonten, $arListe[1]
$maingui = GUICreate("Grundbuch 0.01", 500, 300)
GUISetOnEvent($GUI_Event_Close, 'CloseGUI')
$menu = GUICtrlCreateMenu("&Konto")
$add = GUICtrlCreateMenuItem("&einfügen F1", $menu)
GUICtrlSetOnEvent(-1, 'InsertAcc')
$edit = GUICtrlCreateMenuItem("&bearbeiten F2", $menu)
GUICtrlSetOnEvent(-1, 'EditAcc')
$blind = GUICtrlCreateMenuItem("", $menu)
$remove = GUICtrlCreateMenuItem("&löschen F3", $menu)
GUICtrlSetOnEvent(-1, 'DeleteAcc')
$blind = GUICtrlCreateMenuItem("", $menu)
$undo = GUICtrlCreateMenuItem("&undo STRG+Z", $menu)
GUICtrlSetOnEvent(-1, 'Undo')
GUICtrlCreateGroup("Konten-Liste", 0, 5, 170, 270)
$list = GUICtrlCreateListView("Konto|Nr.", 5, 20, 160, 250, -1, BitOR($LVS_EX_GRIDLINES,$LVS_EX_FULLROWSELECT))
_GUICtrlListViewSetColumnWidth(-1, 0, 88)
_GUICtrlListViewSetColumnWidth(-1, 1, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Grundbuch", 170, 5, 330, 270)
GUICtrlCreateLabel("Konto", 180, 20)
GUICtrlCreateLabel("Nr.", 360, 20)
GUICtrlCreateLabel("Betrag", 430, 20)
GUICtrlCreateLabel("an...", 180, 115)
$button1 = GUICtrlCreateButton(">", 175, 35, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button2 = GUICtrlCreateButton(">", 175, 55, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button3 = GUICtrlCreateButton(">", 175, 75, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button4 = GUICtrlCreateButton(">", 175, 95, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button5 = GUICtrlCreateButton(">", 175, 135, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button6 = GUICtrlCreateButton(">", 175, 155, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button7 = GUICtrlCreateButton(">", 175, 175, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$button8 = GUICtrlCreateButton(">", 175, 195, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn')
$input1 = GUICtrlCreateInput("", 195, 35, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input2 = GUICtrlCreateInput("", 195, 55, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input3 = GUICtrlCreateInput("", 195, 75, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input4 = GUICtrlCreateInput("", 195, 95, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input5 = GUICtrlCreateInput("", 195, 135, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input6 = GUICtrlCreateInput("", 195, 155, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input7 = GUICtrlCreateInput("", 195, 175, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input8 = GUICtrlCreateInput("", 195, 195, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$iinput1 = GUICtrlCreateInput("", 360, 35, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg1')
$iinput2 = GUICtrlCreateInput("", 360, 55, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg2')
$iinput3 = GUICtrlCreateInput("", 360, 75, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg3')
$iinput4 = GUICtrlCreateInput("", 360, 95, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg4')
$iinput5 = GUICtrlCreateInput("", 360, 135, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg5')
$iinput6 = GUICtrlCreateInput("", 360, 155, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg6')
$iinput7 = GUICtrlCreateInput("", 360, 175, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg7')
$iinput8 = GUICtrlCreateInput("", 360, 195, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg8')
$iiinput1 = GUICtrlCreateInput("", 430, 35, 60, 15)
$iiinput2 = GUICtrlCreateInput("", 430, 55, 60, 15)
$iiinput3 = GUICtrlCreateInput("", 430, 75, 60, 15)
$iiinput4 = GUICtrlCreateInput("", 430, 95, 60, 15)
$iiinput5 = GUICtrlCreateInput("", 430, 135, 60, 15)
$iiinput6 = GUICtrlCreateInput("", 430, 155, 60, 15)
$iiinput7 = GUICtrlCreateInput("", 430, 175, 60, 15)
$iiinput8 = GUICtrlCreateInput("", 430, 195, 60, 15)
GUICtrlCreateLabel("File-Name", 180, 225)
$filename = GUICtrlCreateInput("", 240, 225, 200, 15)
GUICtrlSetTip(-1, "Name der Datei, OHNE Zusatzt -txt-")
GUICtrlCreateButton("speichere Buchungssatz (F5)", 265, 245)
GUICtrlSetTip(-1, "speichert den angegebenen Buchungssatz in einer txt-Datei")
GUICtrlSetOnEvent(-1, 'save')
GUICtrlCreateGroup("", -99, -99, 1, 1)
For $i = $button1 to $button8
GUICtrlSetTip($i, "übernimmt markierten Kontennamen + Konten-Nr.")
Next
For $i = $input1 To $input8
GUICtrlSetTip($i, "... gewünschter Kontenname (Nr. wird, sofern vorhanden, übernommen)")
Next
For $i = $iinput1 To $iinput8
GUICtrlSetTip($i, "... gewünschte Konten-Nr. (Name wird, sofern vorhanden, übernommen)")
Next
For $i = $iiinput1 To $iiinput8
GUICtrlSetTip($i, "... Betrag ohne Währung (wird in € angegeben)")
Next
GUISetState(@SW_SHOW, $maingui)
ReadAcc($pathKonten)
GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")
While 1
Sleep(100)
Wend
Func CloseGUI()
Exit
EndFunc
Func ReadAcc($PATH) ; aus Datei in ListView schreiben
_FileReadToArray($PATH, $arKonten)
If (Not IsArray($arKonten)) Then
MsgBox(0, 'Fehler', 'Kontenliste konnte nicht gelesen werden!')
Return
EndIf
ReDim $arListe[UBound($arKonten)-1]
For $i = 1 To $arKonten[0]
$arListe[$i-1] = GUICtrlCreateListViewItem($arKonten[$i], $list)
Next
EndFunc
Func WriteAcc() ; aus ListView in Datei schreiben (nach jedem Edit, Add und Löschen)
$anz = _GUICtrlListViewGetItemCount($list)
ReDim $arKonten[$anz]
For $i = 0 To UBound($arKonten)-1
$arKonten[$i] = _GUICtrlListViewGetItemText($list, $i, 0) & '|' & _GUICtrlListViewGetItemText($list, $i, 1)
Next
If FileExists($pathKonten) Then FileMove($pathKonten, $pathKonten & '.BAK', 1)
_FileWriteFromArray($pathKonten, $arKonten)
EndFunc
Func InsertAcc() ; Konto hinzufügen
ReDim $arListe[UBound($arListe)+1]
$arListe[UBound($arListe)-1] = GUICtrlCreateListViewItem( InputBox('Kontoname', 'Bitte Namen des neuen Kontos eingeben:', "", "", 300, 120) & '|' & _
InputBox('Kontonummer', 'Bitte die Nummer des neuen Kontos eingeben:', "", "", 300, 120), $list)
WriteAcc()
EndFunc
Func DeleteAcc() ; Konto löschen
$index = _GUICtrlListViewGetCurSel($list)
_GUICtrlListViewDeleteItem ($list, $index)
WriteAcc()
EndFunc
Func EditAcc() ; Konto bearbeiten
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
$name = InputBox('Kontoname', 'Hier können Sie den Kontennamen ändern:', $name, "", 300, 120)
$number = InputBox('Kontonummer', 'Hier können Sie die Kontonummer ändern:', $number, "", 300, 120)
_GUICtrlListViewSetItemText($list, $index, 0, $name)
_GUICtrlListViewSetItemText($list, $index, 1, $number)
WriteAcc()
EndFunc
Func Undo() ; letzte Aktion (Edit, New, Delete) rückgängig machen
_GUICtrlListViewDeleteAllItems($list)
ReadAcc($pathUndo)
WriteAcc()
EndFunc
Func ListView_DoubleClick() ; Werte übertragen
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
For $i = $input1 To $input8
If GUICtrlRead($i) = '' Then
GUICtrlSetData($i, $name)
Switch $i
Case $input1
GUICtrlSetData($iinput1, $number)
Case $input2
GUICtrlSetData($iinput2, $number)
Case $input3
GUICtrlSetData($iinput3, $number)
Case $input4
GUICtrlSetData($iinput4, $number)
Case $input5
GUICtrlSetData($iinput5, $number)
Case $input6
GUICtrlSetData($iinput6, $number)
Case $input7
GUICtrlSetData($iinput7, $number)
Case $input8
GUICtrlSetData($iinput8, $number)
EndSwitch
ExitLoop
EndIf
Next
EndFuncFunc FillIn()
[/autoit] [autoit][/autoit] [autoit]
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
$i = @GUI_CTRLID
Switch $i
Case 18
GUICtrlSetData($input1, $name)
GUICtrlSetData($iinput1, $number)
Case 19
GUICtrlSetData($input2, $name)
GUICtrlSetData($iinput2, $number)
Case 20
GUICtrlSetData($input3, $name)
GUICtrlSetData($iinput3, $number)
Case 21
GUICtrlSetData($input4, $name)
GUICtrlSetData($iinput4, $number)
Case 22
GUICtrlSetData($input5, $name)
GUICtrlSetData($iinput5, $number)
Case 23
GUICtrlSetData($input6, $name)
GUICtrlSetData($iinput6, $number)
Case 24
GUICtrlSetData($input7, $name)
GUICtrlSetData($iinput7, $number)
Case 25
GUICtrlSetData($input8, $name)
GUICtrlSetData($iinput8, $number)
EndSwitch
EndFuncFunc NameChg()
[/autoit] [autoit][/autoit] [autoit]
$i = @GUI_CTRLID
$index = _GUICtrlListViewFindItem($list, GUICtrlRead($i))
$number = _GUICtrlListViewGetItemText($list, $index, 1)
Switch $i
Case 26
GUICtrlSetData($iinput1, $number)
Case 27
GUICtrlSetData($iinput2, $number)
Case 28
GUICtrlSetData($iinput3, $number)
Case 29
GUICtrlSetData($iinput4, $number)
Case 30
GUICtrlSetData($iinput5, $number)
Case 31
GUICtrlSetData($iinput6, $number)
Case 32
GUICtrlSetData($iinput7, $number)
Case 33
GUICtrlSetData($iinput8, $number)
EndSwitch
EndFunc
Func save()
$sum1 = GUICtrlRead($iiinput1) + GUICtrlRead($iiinput2) + GUICtrlRead($iiinput3) + GUICtrlRead($iiinput4)
$sum2 = GUICtrlRead($iiinput5) + GUICtrlRead($iiinput6) + GUICtrlRead($iiinput7) + GUICtrlRead($iiinput8)
If $sum1 <> $sum2 Then
MsgBox(16, "Fehler", "Summen stimmen nicht überein" & @CRLF & @CRLF & $sum1 & " - " & $sum2 & " = " & $sum1 - $sum2)
ElseIf GUICtrlRead($filename) = "" Then
[/autoit] [autoit][/autoit] [autoit]
$flag = True
$file2 = InputBox("File-Name", "Geben Sie einen File-Namen ein", "", "", 300,120)
$file = $file2 & ".txt"
Else
$file = GUICtrlRead($filename) & ".txt"
EndIf
$save = FileOpen($file, 1)
FileWrite($save, "> " & $nr & "." & @CRLF)
If GUICtrlRead($input1) = "" Then
Else
FileWrite($save, GUICtrlRead($iinput1) & " " & GUICtrlRead($input1) & " " & GUICtrlRead($iiinput1) & " €" & @CRLF)
EndIf
If GUICtrlRead($input2) = "" Then
Else
FileWrite($save, GUICtrlRead($iinput2) & " " & GUICtrlRead($input2) & " " & GUICtrlRead($iiinput2) & " €" & @CRLF)
EndIf
If GUICtrlRead($input3) = "" Then
Else
FileWrite($save, GUICtrlRead($iinput3) & " " & GUICtrlRead($input3) & " " & GUICtrlRead($iiinput3) & " €" & @CRLF)
EndIf
If GUICtrlRead($input4) = "" Then
Else
FileWrite($save, GUICtrlRead($iinput4) & " " & GUICtrlRead($input4) & " " & GUICtrlRead($iiinput4) & " €" & @CRLF)
EndIf
If GUICtrlRead($input5) = "" Then
Else
FileWrite($save, "an " & GUICtrlRead($iinput5) & " " & GUICtrlRead($input5) & " " & GUICtrlRead($iiinput5) & " €" & @CRLF)
EndIf
If GUICtrlRead($input6) = "" Then
Else
FileWrite($save, "an " & GUICtrlRead($iinput6) & " " & GUICtrlRead($input6) & " " & GUICtrlRead($iiinput6) & " €" & @CRLF)
EndIf
If GUICtrlRead($input7) = "" Then
Else
FileWrite($save, "an " & GUICtrlRead($iinput7) & " " & GUICtrlRead($input7) & " " & GUICtrlRead($iiinput7) & " €" & @CRLF)
EndIf
If GUICtrlRead($input8) = "" Then
Else
FileWrite($save, "an " & GUICtrlRead($iinput8) & " " & GUICtrlRead($input8) & " " & GUICtrlRead($iiinput8) & " €" & @CRLF)
EndIf
FileWrite($save, "-" & @CRLF)
FileWrite($save, "Summe: " & $sum1 & " €" & @CRLF)
FileWrite($save, @CRLF)
FileClose($save)
For $i = $input1 To $input8
GUICtrlSetData($i, "")
Next
For $i = $iinput1 To $iinput8
GUICtrlSetData($i, "")
Next
For $i = $iiinput1 To $iiinput8
GUICtrlSetData($i, "")
Next
If $flag = True Then
GUICtrlSetData($filename, $file2)
$flag = False
Else
EndIf
$nr = $nr + 1
EndIf
EndFunc; WM_NOTIFY event handler
[/autoit] [autoit][/autoit] [autoit]
Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam)
;#forceref $hWndGUI, $MsgID, $wParam
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam);NMHDR (hwndFrom, idFrom, code)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3)
Select
Case $wParam = $list
Select
Case $event = $NM_CLICK
;~ ListView_Click ()
Case $event = $NM_DBLCLK
ListView_DoubleClick ()
Case $event = $NM_RCLICK
;~ ListView_RightClick ()
Case $event = $NM_RDBLCLK
;~ ListView_RightDblClick ()
EndSelect
EndSelect
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc ;==>WM_Notify_Events
Func NumberChg1()
$index = _LV_Search($list, GUICtrlRead($iinput1))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input1, $name)
EndFunc
Func NumberChg2()
$index = _LV_Search($list, GUICtrlRead($iinput2))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input2, $name)
EndFunc
Func NumberChg3()
$index = _LV_Search($list, GUICtrlRead($iinput3))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input3, $name)
EndFunc
Func NumberChg4()
$index = _LV_Search($list, GUICtrlRead($iinput4))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input4, $name)
EndFunc
Func NumberChg5()
$index = _LV_Search($list, GUICtrlRead($iinput5))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input5, $name)
EndFunc
Func NumberChg6()
$index = _LV_Search($list, GUICtrlRead($iinput6))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input6, $name)
EndFunc
Func NumberChg7()
$index = _LV_Search($list, GUICtrlRead($iinput7))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input7, $name)
EndFunc
Func NumberChg8()
$index = _LV_Search($list, GUICtrlRead($iinput8))
If $index < 0 Then
MsgBox(0, 'Fehler', 'Kontonummer nicht vorhanden!')
Return
EndIf
$name = _GUICtrlListViewGetItemText($list, $index, 0)
GUICtrlSetData($input8, $name)
EndFuncFunc _LV_Search($LV, $What2Find)
[/autoit]
$count = _GUICtrlListViewGetItemCount($LV)
If $count < 1 Then Return -1 ; Return -1 ; leere Liste
$countSub = _GUICtrlListViewGetSubItemsCount($LV)
For $i = 0 To $count-1
For $k = 0 To $countSub-1
If _GUICtrlListViewGetItemText($LV, $i, $k) = $What2Find Then Return $i
Next
Next
Return -2 ; Return -2 ; nicht gefunden
EndFunc -
so, hab jetzt theoretisch alles fertig.
es fehlt eigentlich nur noch der check, dass wenn ich was eingebe, er sich die nr oder den namen zieht.mal gucken ob ich das schaffe, der rest schaut so aus
PS: hab grad mal wg drag&drop geschaut.
das geht eigentlich schon mit "GUICtrlSetState(-1, $GUI_DROPACCEPTED )" , aber er schreibt dann natürlich aus guilistview beide/alle spalten in eine box. wie kann man das aufteilen, dass er spalte 1 in inputbox1 schreibt, und spalte 2 in inputbox2 ?
also mit setdata sollte das ja gehen, aber wie fange ich diese drag&drop ab, so dass ich danach was ausführen kann?Spoiler anzeigen
[autoit]#include <guiconstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <guilistview.au3>
#include <file.au3>
Opt("GUIOnEventMode", 1)Global $flag
[/autoit] [autoit][/autoit] [autoit]
Global $list
Global $nr = 1
Global Const $WM_NOTIFY = 0x004E
Global Const $NM_FIRST = 0
Global Const $NM_LAST = (-99)
Global Const $NM_CLICK = ($NM_FIRST - 2)
Global Const $NM_DBLCLK = ($NM_FIRST - 3)
Global Const $NM_RCLICK = ($NM_FIRST - 5)
Global Const $NM_RDBLCLK = ($NM_FIRST - 6)
Dim $pathKonten = 'konten.txt', $pathUndo = $pathKonten & '.BAK'
Dim $arKonten, $arListe[1]
$maingui = GUICreate("Grundbuch 0.01", 500, 300)
GUISetOnEvent($GUI_Event_Close, 'CloseGUI')
$menu = GUICtrlCreateMenu("&Konto")
$add = GUICtrlCreateMenuItem("&einfügen", $menu)
GUICtrlSetOnEvent(-1, 'InsertAcc')
$edit = GUICtrlCreateMenuItem("&bearbeiten", $menu)
GUICtrlSetOnEvent(-1, 'EditAcc')
$blind = GUICtrlCreateMenuItem("", $menu)
$remove = GUICtrlCreateMenuItem("&löschen", $menu)
GUICtrlSetOnEvent(-1, 'DeleteAcc')
$blind = GUICtrlCreateMenuItem("", $menu)
$undo = GUICtrlCreateMenuItem("&undo", $menu)
GUICtrlSetOnEvent(-1, 'Undo')
GUICtrlCreateGroup("Konten-Liste", 5, 5, 160, 270)
$list = GUICtrlCreateListView("Konto|Nr.", 10, 20, 150, 250, -1, BitOR($LVS_EX_GRIDLINES,$LVS_EX_FULLROWSELECT))
_GUICtrlListViewSetColumnWidth(-1, 0, 88)
_GUICtrlListViewSetColumnWidth(-1, 1, 57)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Grundbuch", 170, 5, 325, 270)
GUICtrlCreateLabel("Konto", 180, 20)
GUICtrlCreateLabel("Nr.", 360, 20)
GUICtrlCreateLabel("Betrag", 430, 20)
GUICtrlCreateLabel("an...", 180, 115)
$button1 = GUICtrlCreateButton(">", 175, 35, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn1')
$button2 = GUICtrlCreateButton(">", 175, 55, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn2')
$button3 = GUICtrlCreateButton(">", 175, 75, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn3')
$button4 = GUICtrlCreateButton(">", 175, 95, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn4')
$button5 = GUICtrlCreateButton(">", 175, 135, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn5')
$button6 = GUICtrlCreateButton(">", 175, 155, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn6')
$button7 = GUICtrlCreateButton(">", 175, 175, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn7')
$button8 = GUICtrlCreateButton(">", 175, 195, 15, 15)
GUICtrlSetOnEvent(-1, 'FiLLIn8')
$input1 = GUICtrlCreateInput("", 195, 35, 155, 15)
$input2 = GUICtrlCreateInput("", 195, 55, 155, 15)
$input3 = GUICtrlCreateInput("", 195, 75, 155, 15)
$input4 = GUICtrlCreateInput("", 195, 95, 155, 15)
$input5 = GUICtrlCreateInput("", 195, 135, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input6 = GUICtrlCreateInput("", 195, 155, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input7 = GUICtrlCreateInput("", 195, 175, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input8 = GUICtrlCreateInput("", 195, 195, 155, 15)
GUICtrlSetOnEvent(-1, 'NameChg')
$input11 = GUICtrlCreateInput("", 360, 35, 60, 15)
$input12 = GUICtrlCreateInput("", 360, 55, 60, 15)
$input13 = GUICtrlCreateInput("", 360, 75, 60, 15)
$input14 = GUICtrlCreateInput("", 360, 95, 60, 15)
$input15 = GUICtrlCreateInput("", 360, 135, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg')
$input16 = GUICtrlCreateInput("", 360, 155, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg')
$input17 = GUICtrlCreateInput("", 360, 175, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg')
$input18 = GUICtrlCreateInput("", 360, 195, 60, 15)
GUICtrlSetOnEvent(-1, 'NumberChg')
$input111 = GUICtrlCreateInput("", 430, 35, 60, 15)
$input112 = GUICtrlCreateInput("", 430, 55, 60, 15)
$input113 = GUICtrlCreateInput("", 430, 75, 60, 15)
$input114 = GUICtrlCreateInput("", 430, 95, 60, 15)
$input115 = GUICtrlCreateInput("", 430, 135, 60, 15)
$input116 = GUICtrlCreateInput("", 430, 155, 60, 15)
$input117 = GUICtrlCreateInput("", 430, 175, 60, 15)
$input118 = GUICtrlCreateInput("", 430, 195, 60, 15)
GUICtrlCreateLabel("File-Name", 180, 225)
$filename = GUICtrlCreateInput("", 240, 225, 200, 15)
GUICtrlCreateButton("speicher Buchungssatz", 280, 245, -1, -1, $BS_DEFPUSHBUTTON)
GUICtrlSetOnEvent(-1, 'save')
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW, $maingui)
ReadAcc($pathKonten)
GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")
While 1
Sleep(100)
Wend
Func CloseGUI()
Exit
EndFunc
Func ReadAcc($PATH) ; aus Datei in ListView schreiben
_FileReadToArray($PATH, $arKonten)
If (Not IsArray($arKonten)) Then
MsgBox(0, 'Fehler', 'Kontenliste konnte nicht gelesen werden!')
Return
EndIf
ReDim $arListe[UBound($arKonten)-1]
For $i = 1 To $arKonten[0]
$arListe[$i-1] = GUICtrlCreateListViewItem($arKonten[$i], $list)
Next
EndFunc
Func WriteAcc() ; aus ListView in Datei schreiben (nach jedem Edit, Add und Löschen)
$anz = _GUICtrlListViewGetItemCount($list)
ReDim $arKonten[$anz]
For $i = 0 To UBound($arKonten)-1
$arKonten[$i] = _GUICtrlListViewGetItemText($list, $i, 0) & '|' & _GUICtrlListViewGetItemText($list, $i, 1)
Next
If FileExists($pathKonten) Then FileMove($pathKonten, $pathKonten & '.BAK', 1)
_FileWriteFromArray($pathKonten, $arKonten)
EndFunc
Func InsertAcc() ; Konto hinzufügen
ReDim $arListe[UBound($arListe)+1]
$arListe[UBound($arListe)-1] = GUICtrlCreateListViewItem( InputBox('Kontoname', 'Bitte Namen des neuen Kontos eingeben:', "", "", 300, 120) & '|' & _
InputBox('Kontonummer', 'Bitte die Nummer des neuen Kontos eingeben:', "", "", 300, 120), $list)
WriteAcc()
EndFunc
Func DeleteAcc() ; Konto löschen
$index = _GUICtrlListViewGetCurSel($list)
_GUICtrlListViewDeleteItem ($list, $index)
WriteAcc()
EndFunc
Func EditAcc() ; Konto bearbeiten
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
$name = InputBox('Kontoname', 'Hier können Sie den Kontennamen ändern:', $name, "", 300, 120)
$number = InputBox('Kontonummer', 'Hier können Sie die Kontonummer ändern:', $number, "", 300, 120)
_GUICtrlListViewSetItemText($list, $index, 0, $name)
_GUICtrlListViewSetItemText($list, $index, 1, $number)
WriteAcc()
EndFunc
Func Undo() ; letzte Aktion (Edit, New, Delete) rückgängig machen
_GUICtrlListViewDeleteAllItems($list)
ReadAcc($pathUndo)
WriteAcc()
EndFunc
Func ListView_DoubleClick() ; Werte übertragen
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
For $i = $input1 To $input8
If GUICtrlRead($i) = '' Then
GUICtrlSetData($i, $name)
Switch $i
Case $input1
GUICtrlSetData($input11, $number)
Case $input2
GUICtrlSetData($input12, $number)
Case $input3
GUICtrlSetData($input13, $number)
Case $input4
GUICtrlSetData($input14, $number)
Case $input5
GUICtrlSetData($input15, $number)
Case $input6
GUICtrlSetData($input16, $number)
Case $input7
GUICtrlSetData($input17, $number)
Case $input8
GUICtrlSetData($input18, $number)
EndSwitch
ExitLoop
EndIf
Next
EndFuncFunc FillIn1()
[/autoit] [autoit][/autoit] [autoit]
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
GUICtrlSetData($input1, $name)
GUICtrlSetData($input11, $number)
EndFunc
Func FillIn2()
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
GUICtrlSetData($input2, $name)
GUICtrlSetData($input12, $number)
EndFunc
Func FillIn3()
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
GUICtrlSetData($input3, $name)
GUICtrlSetData($input13, $number)
EndFunc
Func FillIn4()
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
GUICtrlSetData($input4, $name)
GUICtrlSetData($input14, $number)
EndFunc
Func FillIn5()
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
GUICtrlSetData($input5, $name)
GUICtrlSetData($input15, $number)
EndFunc
Func FillIn6()
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
GUICtrlSetData($input6, $name)
GUICtrlSetData($input16, $number)
EndFunc
Func FillIn7()
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
GUICtrlSetData($input7, $name)
GUICtrlSetData($input17, $number)
EndFunc
Func FillIn8()
$index = _GUICtrlListViewGetCurSel($list)
$name = _GUICtrlListViewGetItemText($list, $index, 0)
$number = _GUICtrlListViewGetItemText($list, $index, 1)
GUICtrlSetData($input8, $name)
GUICtrlSetData($input18, $number)
EndFuncFunc NameChg() ; einfach alle Namensfelder prüfen
[/autoit] [autoit][/autoit] [autoit]
; Kontoname hat sich geändert, Nummer zuordnen
EndFunc
Func NumberChg() ; einfach alle Nummerfelder prüfen
; Kontonummer hat sich geändert, Namen zuordnen
EndFuncFunc save()
[/autoit] [autoit][/autoit] [autoit]
If GUICtrlRead($filename) = "" Then
$flag = True
$file2 = InputBox("File-Name", "Geben Sie einen File-Namen ein", "", "", 300,120)
$file = $file2 & ".txt"
Else
$file = GUICtrlRead($filename) & ".txt"
EndIf
$save = FileOpen($file, 1)
FileWrite($save, "> " & $nr & "." & @CRLF)
If GUICtrlRead($input1) = "" Then
Else
FileWrite($save, GUICtrlRead($input11) & " " & GUICtrlRead($input1) & " " & GUICtrlRead($input111) & " €" & @CRLF)
EndIf
If GUICtrlRead($input2) = "" Then
Else
FileWrite($save, GUICtrlRead($input12) & " " & GUICtrlRead($input2) & " " & GUICtrlRead($input112) & " €" & @CRLF)
EndIf
If GUICtrlRead($input3) = "" Then
Else
FileWrite($save, GUICtrlRead($input13) & " " & GUICtrlRead($input3) & " " & GUICtrlRead($input113) & " €" & @CRLF)
EndIf
If GUICtrlRead($input4) = "" Then
Else
FileWrite($save, GUICtrlRead($input14) & " " & GUICtrlRead($input4) & " " & GUICtrlRead($input114) & " €" & @CRLF)
EndIf
If GUICtrlRead($input5) = "" Then
Else
FileWrite($save, "an " & GUICtrlRead($input15) & " " & GUICtrlRead($input5) & " " & GUICtrlRead($input115) & " €" & @CRLF)
EndIf
If GUICtrlRead($input6) = "" Then
Else
FileWrite($save, "an " & GUICtrlRead($input16) & " " & GUICtrlRead($input6) & " " & GUICtrlRead($input116) & " €" & @CRLF)
EndIf
If GUICtrlRead($input7) = "" Then
Else
FileWrite($save, "an " & GUICtrlRead($input17) & " " & GUICtrlRead($input7) & " " & GUICtrlRead($input117) & " €" & @CRLF)
EndIf
If GUICtrlRead($input8) = "" Then
Else
FileWrite($save, "an " & GUICtrlRead($input18) & " " & GUICtrlRead($input8) & " " & GUICtrlRead($input118) & " €" & @CRLF)
EndIf
$sum1 = GUICtrlRead($input111) + GUICtrlRead($input112) + GUICtrlRead($input113) + GUICtrlRead($input114)
$sum2 = GUICtrlRead($input115) + GUICtrlRead($input116) + GUICtrlRead($input117) + GUICtrlRead($input118)
FileWrite($save, "-" & @CRLF)
If $sum1 = $sum2 Then
FileWrite($save, "Check: OK Ergebnis: " & $sum1 & " €" & @CRLF)
Else
FileWrite($save, "Check: " & $sum1 & " zu " & $sum2 & " Differenz: " & $sum1 - $sum2 & " €" & @CRLF)
EndIf
FileWrite($save, @CRLF)
FileClose($save)
For $i = $input1 To $input118
GUICtrlSetData($i, "")
Next
If $flag = True Then
GUICtrlSetData($filename, $file2)
$flag = False
Else
EndIf
$nr = $nr + 1
EndFunc; WM_NOTIFY event handler
[/autoit]
Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam)
;#forceref $hWndGUI, $MsgID, $wParam
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam);NMHDR (hwndFrom, idFrom, code)
If @error Then Return
$event = DllStructGetData($tagNMHDR, 3)
Select
Case $wParam = $list
Select
Case $event = $NM_CLICK
;~ ListView_Click ()
Case $event = $NM_DBLCLK
ListView_DoubleClick ()
Case $event = $NM_RCLICK
;~ ListView_RightClick ()
Case $event = $NM_RDBLCLK
;~ ListView_RightDblClick ()
EndSelect
EndSelect
$tagNMHDR = 0
$event = 0
$lParam = 0
EndFunc ;==>WM_Notify_Events -
morgen bugfix ... big thx, muss mich jetzt erstmal einlesen.
bis jetzt scheint ja alles super zu klappen =)hab nur 1 sache ... die einträge per doppelklick übertragen ist ne super sache, aber die buchungssätze sind unterschiedlich lang, d.h. es werden nicht immer alle 8, bzw die ersten und letzten 4 vollständig genutzt.
da müsste es ne andere möglichkeit geben, evtl nen kleinen button vor jedem eintrag, der, wenn man darauf klickt, automatisch die markierten werte in die inputboxen einträgt.
und evtl autoausfüllen ... mal gucken wieviel ich während der schule heute schaffe *g*bzw ich fang mal mit der output-datei an =)
thx thx thx
-
ah, du bist zu geil ... =)
war grad dabei, die liste per ini füllen zu lassen, was aber bissel umständlich ist. filereadtoarray und die sachen direkt mit | zu trennen ist einfach genial *g*
mal gucken wie ich deine anderen tips verwerten kann *geilgeilgeil*
PS: was mir grad noch einfällt ... wenn ich einträge löschen will, kann ich das ja so machen:
Case $msg = $remove
_GUICtrlListViewDeleteItemsSelected($list)jetzt bleiben die natürlich in der txt drin und werden beim nächsten start wieder geladen. also müssen die da auch gelöscht werden. ich könnte natürlich beim beenden filewritefromarray machen ... oder direkt in einem abwasch die zeile aus der txt löschen (würde ich bevorzugen) ... jedoch fehlt mir der ansatz, wie ich das machen soll, da ich in der hilfe keine entsprechende funktion gefunden habe.
wobei da fällt mir ein, die zeile im listview ist auch die zeile in der txt ... also muss ich sie nicht umständlich suchen ... wie mach ich da weiter? filewritetoline? -
Hallo,
vllt hat jmd schonmal sowas geschrieben oder gesehen ... und zwar suche ich ein script, in dem man grundbuch-einträge von rechnungswesen-buchungssätzen eingeben kann.
das würde mir schon reichen, würde natürlich auch 1 nehmen, was bilanzen und konten anlegt *g*
PS: ok, dachte mir schon, dass es sowas nicht gibt.
ich habe schonmal angefangen (das grundgerüsst drumrum) ... könnte aber was hilfe gebrauchen.ich bin mir auch noch nicht ganz im klaren, wie ich es machen soll. als erstes will ich die kto-liste schonmal vorfüllen, mit kto und nr. dann wäre es schon, wenn man mit einem doppelklick/ drag&drop, kto+nr in die dafür vorgesehenden felder befördern könnte. ist das möglich?
dann sollte er auch (mit nem button prüfen, oder schöner wäre, wenn er immer automatisch prüft), das wenn in konto der name steht, er automatisch die nr raussucht um umgekehrt.
zu guter letzt muss das ganze irgendwie gespeichert werden, wobei ich da an ne einfach txt denke, das sollte reichen.hat jmd ideen/ansätze zur umsetzung?
weiterhin soll es möglich sein, die liste weiter zu füllen, daran werd ich mich heute/morgen setzen ...
also leute, ein projekt an dem ihr mitwirken könnt *g* zeigt euch =)
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#cs ----------------------------------------------------------------------------AutoIt Version: 3.2.4.9
[/autoit] [autoit][/autoit] [autoit]
Author: sc4ryScript Function:
[/autoit] [autoit][/autoit] [autoit]
hiermit kann man Grundbucheinträge für Rewe erstellen#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]#include <guiconstants.au3>
[/autoit] [autoit][/autoit] [autoit]$maingui = GUICreate("Grundbuch 0.01", 500, 300)
[/autoit] [autoit][/autoit] [autoit]
$menu = GUICtrlCreateMenu("&Konto")
$add = GUICtrlCreateMenuItem("&einfügen", $menu)
$remove = GUICtrlCreateMenuItem("&löschen", $menu)
$edit = GUICtrlCreateMenuItem("&bearbeiten", $menu)
GUICtrlCreateGroup("Konten-Liste", 5, 5, 160, 270)
$list = GUICtrlCreateListView("Konto|Nr.", 10, 20, 150, 250)
GUICtrlCreateGroup("Grundbuch", 170, 5, 325, 270)
GUICtrlCreateLabel("Konto", 180, 20)
GUICtrlCreateLabel("Nr.", 360, 20)
GUICtrlCreateLabel("Betrag", 430, 20)
$input1 = GUICtrlCreateInput("", 180, 35, 170, 15)
$input2 = GUICtrlCreateInput("", 180, 55, 170, 15)
$input3 = GUICtrlCreateInput("", 180, 75, 170, 15)
$input4 = GUICtrlCreateInput("", 180, 95, 170, 15)
GUICtrlCreateLabel("an...", 180, 115)
$input5 = GUICtrlCreateInput("", 180, 135, 170, 15)
$input6 = GUICtrlCreateInput("", 180, 155, 170, 15)
$input7 = GUICtrlCreateInput("", 180, 175, 170, 15)
$input8 = GUICtrlCreateInput("", 180, 195, 170, 15)
$input11 = GUICtrlCreateInput("", 360, 35, 60, 15)
$input12 = GUICtrlCreateInput("", 360, 55, 60, 15)
$input13 = GUICtrlCreateInput("", 360, 75, 60, 15)
$input14 = GUICtrlCreateInput("", 360, 95, 60, 15)
$input15 = GUICtrlCreateInput("", 360, 135, 60, 15)
$input16 = GUICtrlCreateInput("", 360, 155, 60, 15)
$input17 = GUICtrlCreateInput("", 360, 175, 60, 15)
$input18 = GUICtrlCreateInput("", 360, 195, 60, 15)
$input111 = GUICtrlCreateInput("", 430, 35, 60, 15)
$input112 = GUICtrlCreateInput("", 430, 55, 60, 15)
$input113 = GUICtrlCreateInput("", 430, 75, 60, 15)
$input114 = GUICtrlCreateInput("", 430, 95, 60, 15)
$input115 = GUICtrlCreateInput("", 430, 135, 60, 15)
$input116 = GUICtrlCreateInput("", 430, 155, 60, 15)
$input117 = GUICtrlCreateInput("", 430, 175, 60, 15)
$input118 = GUICtrlCreateInput("", 430, 195, 60, 15)
GUISetState ()While 1
[/autoit]
$msg = GUIGetMsg()
Select
Case $msg = $gui_event_close
Exit
EndSelect
Wend -
was funzt denn jetzt eigentlich noch nicht wieder?
wo ich hier antworte, steht dass es 2 antworten gibt, was aber nicht stimmt. ist mir gestern schon aufgefallen, aber da dachte ich, vllt hab ich mich nur verlesen =) -
nur mal so nebenbei, was ist eigentlich IOM3 ?
-
es ist zwar nicht der schönste code, aber guck dir das hier mal an, vllt hilft dir das:
-
also STRG+1 ging auch net, aber in der neuen version ist alles drin, thx
soll ich jetzt direkt alle variablen in der funktion markieren, oder eine nach der anderen?
dann kommt:
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $strTmp = ' & $strTmp & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Consolewie geh ich jetzt weiter vor? sorry, hab aber kein plan, was ich jetzt machen soll =/
-
was hast du denn für ne version?
das menü hab ich garnicht (bzw 9 einträge im tools menü) oO -
hey,
leider passiert bei alt+d nix ... im menü hab ich auch nix finden können, was evtl die funktion beinhaltet. hab die installierte version ...
-
sehr nice
sowas wollte ich immer basteln, habe es aber nicht geschafft.
hoffe es ist ok, dass ich es benutze und dafür ein klein wenig modifiziert habe ... für meinen ShutDown-Timer -
genau
oder kann ich die einfach wo auslesen? aber das ganze muss passieren, bevor ie/ff beendet wird, da sonst der verlauf automatisch gelöscht wird.
-
ich würde gerne die urls abspeichern, keine dateien runterladen .. oder versteh ich die funktion falsch?
-
Hallo,
gibt es ne möglichkeit, aufgerufene seiten aus ie/firefox abzuspeichern?