Moinsen
Ich bin zurzeit u.A. im Telefonsupport tätig. Dabei hatte ich schon immer das Problem, dass ich bisher meine Notizen von Hand machen musste.
Wenn ich also mal keinen Stift zur Hand hatte, ists halt öfters passiert, dass die Notizen dann halt nicht gemacht wurden. So habe ich immer wieder die Namen & Nummern der Anrufer vergessen und das bedeutet im Telefonsupport eigentlich immer Ärger (beschwerden etc.).
Damit ich sowas in Zukunft vermeiden kann, habe ich nun ein kurzes Skript für einen Notizblock geschrieben.
Das Ganze wird bei einem Anruf von der Telefonsoftware automatisch gestartet womit es auch die Aufmerksamkeit auf sich zieht (den Teil habe ich hier aber aus Sicherheitsgründen rausnehmen müssen).
Die erstellten Notizen können gespeichert werden, dadurch kann man sie zu einem späteren Zeitpunkt wieder anzeigen und natürlich auch wieder löschen.
Gelöschte Notizen werden sicherheitshalber archiviert und können wieder zurück in die Originaldatei kopiert werden.
Das Skript ist relativ einfach gehalten, da ich nicht allzuviel Zeit damit vergeuden wollte. Es ist bei weitem nicht perfekt, aber für meine Zwecke reicht es absolut.
Spoiler anzeigen
#include <File.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListView.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
$Form1 = GUICreate("Notizblock", 1128, 438, 192, 124)
$Label1 = GUICtrlCreateLabel("Name:", 5, 5, 35, 17)
$Label2 = GUICtrlCreateLabel("Standort:", 5, 30, 47, 17)
$Label3 = GUICtrlCreateLabel("Kontakt:", 5, 55, 44, 17)
$Label4 = GUICtrlCreateLabel("Protokoll:", 5, 80, 48, 17)
$Input1 = GUICtrlCreateInput("", 55, 5, 546, 21)
$Input2 = GUICtrlCreateInput("", 55, 30, 546, 21)
$Input3 = GUICtrlCreateInput("", 55, 55, 546, 21)
$Input4 = GUICtrlCreateEdit("", 55, 80, 546, 300, BitOR($ES_AUTOVSCROLL,$ES_WANTRETURN,$WS_VSCROLL))
$Button1 = GUICtrlCreateButton("Speichern", 440, 390, 75, 25)
$List1 = GUICtrlCreateListView("ID|Datum|Zeit|Name", 615, 10, 501, 370, BitOr($LVS_REPORT, $LVS_SHOWSELALWAYS))
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 100)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 397)
$Button2 = GUICtrlCreateButton("Leeren", 525, 390, 75, 25)
$Button3 = GUICtrlCreateButton("Löschen", 1040, 390, 75, 25)
$Button4 = GUICtrlCreateButton("Anzeigen", 955, 390, 75, 25)
UpdateList()
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$Time = @HOUR &":" &@MIN
$Date = @MDAY &"." &@MON &"." &@YEAR
$Name = StringReplace(StringReplace(GUICtrlRead($Input1), "&", "+"), "#", "*")
$Place = StringReplace(StringReplace(GUICtrlRead($Input2), "&", "+"), "#", "*")
$Contact = StringReplace(StringReplace(GUICtrlRead($Input3), "&", "+"), "#", "*")
$Protocol = StringReplace(StringReplace(GUICtrlRead($Input4), "&", "+"), "#", "*")
$LineCount = FileCountItems(@ScriptDir &"\Data\reports.log")
$ReportFile = FileOpen(@ScriptDir &"\Data\reports.log", 1)
$StringToWrite = $LineCount + 1 &"&" &$Date &"&" &$Time &"&" &$Name &"&" &$Place &"&" &$Contact &"&" &$Protocol &"#"
FileWriteLine($ReportFile, $StringToWrite)
GUICtrlSetData($Input1, "")
GUICtrlSetData($Input2, "")
GUICtrlSetData($Input3, "")
GUICtrlSetData($Input4, "")
FileClose($ReportFile)
UpdateList()
GUICtrlSetState($Button3, $GUI_ENABLE)
GUICtrlSetState($Button4, $GUI_ENABLE)
Case $Button2
GUICtrlSetState($Button1, $GUI_ENABLE)
GUICtrlSetState($Button3, $GUI_ENABLE)
GUICtrlSetData($Input1, "")
GUICtrlSetData($Input2, "")
GUICtrlSetData($Input3, "")
GUICtrlSetData($Input4, "")
Case $Button3
$ToDel = _GUICtrlListView_GetSelectedIndices($List1)
If $ToDel >= 0 Then
Archive($ToDel + 1)
_GUICtrlListView_DeleteItemsSelected($List1)
FileDeleteItem($ToDel + 1)
Else
MsgBox(16, "Eintrag auswählen!", "Sie müssen zuerst einen Eintrag auswählen, den Sie löschen möchten!", 2)
EndIf
UpdateList()
Case $Button4
GUICtrlSetState($Button1, $GUI_DISABLE)
GUICtrlSetState($Button3, $GUI_DISABLE)
$GetLine = _GUICtrlListView_GetSelectedIndices($List1)
If $GetLine >= 0 Then
$LineText = FileReadEntry($GetLine + 1)
$View = StringSplit($LineText, "&")
GUICtrlSetData($Input1, $View[4])
GUICtrlSetData($Input2, $View[5])
GUICtrlSetData($Input3, $View[6])
GUICtrlSetData($Input4, $View[7])
Else
MsgBox(16, "Eintrag auswählen!", "Sie müssen zuerst einen Eintrag auswählen, den Sie anzeigen möchten!", 2)
EndIf
UpdateList()
EndSwitch
WEnd
Func UpdateList()
$Select = _GUICtrlListView_GetSelectedIndices($List1)
GUICtrlDelete($List1)
$List1 = GUICtrlCreateListView("ID|Datum|Zeit|Name", 615, 10, 501, 370)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 100)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 50)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 297)
$LineCount = FileCountItems(@ScriptDir &"\Data\reports.log")
For $i = 1 To $LineCount
$LineText = FileReadEntry($i)
$Items = StringSplit($LineText, "&")
_GUICtrlListView_AddItem($List1, $Items[1])
_GUICtrlListView_AddSubItem($List1, $i - 1, $Items[2], 1)
_GUICtrlListView_AddSubItem($List1, $i - 1, $Items[3], 2)
_GUICtrlListView_AddSubItem($List1, $i - 1, $Items[4], 3)
Next
$test = _GUICtrlListView_SetItemSelected(GUICtrlGetHandle($List1), $Select, True)
If $LineCount = 0 Then
_GUICtrlListView_AddItem($List1, "")
_GUICtrlListView_AddSubItem($List1, 0, "Keine Einträge vorhanden!", 3)
GUICtrlSetState($Button3, $GUI_DISABLE)
GUICtrlSetState($Button4, $GUI_DISABLE)
EndIf
EndFunc
Func FileReadEntry($Entry)
$FileHandle = FileOpen(@ScriptDir &"\Data\reports.log", 0)
$String = FileRead($FileHandle)
$Array = StringSplit($String, "#")
$Return = $Array[$Entry]
FileClose($FileHandle)
Return $Return
EndFunc
Func FileCountItems($FilePath)
$FileHandle = FileOpen(@ScriptDir &"\Data\reports.log", 0)
$String = FileRead($FileHandle)
$Array = StringSplit($String, "#")
$ItemCount = $Array[0]
$Return = $ItemCount - 1
Return $Return
EndFunc
Func FileDeleteItem($Entry)
$FileHandle = FileOpen(@ScriptDir &"\Data\reports.log", 0)
$String = FileRead($FileHandle)
FileClose($FileHandle)
$Array = StringSplit($String, "#")
_ArrayDelete($Array, $Entry)
_ArrayDelete($Array, 0)
$FileHandle = FileOpen(@ScriptDir &"\Data\reports.log", 2)
$NewString = _ArrayToString($Array, "#")
FileWrite($FileHandle, $NewString)
FileClose($FileHandle)
EndFunc
Func Archive($Entry)
$FileHandle = FileOpen(@ScriptDir &"\Data\reports.log", 0)
$String = FileRead($FileHandle)
FileClose($FileHandle)
$Array = StringSplit($String, "#")
$EntryToArchive = $Array[$Entry]
$ClosedHandle = FileOpen(@ScriptDir &"\Data\closed.log", 1)
FileWriteLine($ClosedHandle, $EntryToArchive)
FileClose($ClosedHandle)
EndFunc
Wer s brauchen kann/anpassen will, solls nehmen "It's free"
lg Gene