Hallo ihr da draußen,
Zurzeit arbeite ich aus Laune und weil ich die Zeit gerade übrig hab an einem Programm, welches die Besetzung des Dienstplanes und die damit verbunden Suche nach Mitarbeitern erleichtern soll. Bisher war ein Zettel mit Telefonnummern dafür ausreichend, führt aber ab und zu zum Verlust der Übersicht und es entstehen Missverständnisse.
Vorweg möchte ich nochmal erwähnen, dass ich nie irgendetwas in die Richtung Computer, IT oder Software - Engineering professionell gelehrt bekommen habe, ich bitte daher um ein bisschen Verständnis für den Zustand meines Source-Codes
Dieser Thread soll mir wenn möglich dabei Helfen, die Abläufe zu optimieren, neue Ideen und Wege kennen zu lernen und Fehler im Code zu enttarnen.
Ich werde den Code updaten, wenn sich grundlegende Dinge verändert haben oder neue Funktionen entstanden sind.
Viel Spaß beim ausprobieren und danke für jede Sekunde die Ihr euch damit auseinandersetzt
Ps.: Es wurden keine externen #Includes eingebaut, sollte daher bei jedem mit Copy/Paste laufen.
Lg Stoani
;Edit1(ToDo Liste eingefügt):
- EInträge bearbeiten
- Anruf-Protokoll
- Suche SMS generate
- Nummern-Liste
-Suche erstellen
;Edit2(Schriftart):
Falls jemand das Original mit Dunant Schriftart ausprobieren möchte, Hier* ist ein Link zur Downloadseite. *(Link verweist auf: http://design.roteskreuz.at/vorlagen/vorla…emente/schrift/)
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiImageList.au3>
#include <Date.au3>
#include <GuiListView.au3>
#include <StructureConstants.au3>
#include <Array.au3>
#include <StaticConstants.au3>
#Region ### GRAPHICAL USER INTERFACE (PARENT) ###
$GUI = GUICreate("Dienstsuche OST - GMUNDEN", 1600, 900, -1, -1, BitOR($WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU))
$MenuItem1 = GUICtrlCreateMenu("Aktion")
$SubItem1_1 = GUICtrlCreateMenuItem("Dienstsuche starten", $MenuItem1)
$SubItem1_2 = GUICtrlCreateMenuItem("Sperren", $MenuItem1)
$SubItem1_3 = GUICtrlCreateMenuItem("Beenden", $MenuItem1)
$MenuItem2 = GUICtrlCreateMenu("Liste")
$SubItem2_1 = GUICtrlCreateMenuItem("Anzeigen", $MenuItem2)
$SubItem2_2 = GUICtrlCreateMenuItem("Bearbeiten", $MenuItem2)
$SubItem2_3 = GUICtrlCreateMenuItem("Exportieren", $MenuItem2)
$List1 = GUICtrlCreateListView("", 0, 0, 1600, 880, $LVS_SINGLESEL)
GUICtrlSetBkColor($List1, 0X292929)
GUICtrlSetFont($List1, 12, 300, -1, "Dunant Light", 5)
GUICtrlSetColor($List1, 0XFFFFFF)
$contextmenu = GUICtrlCreateContextMenu($List1)
$sofort = GUICtrlCreateMenuItem("Sofort", $contextmenu)
$dringend = GUICtrlCreateMenuItem("Dringend", $contextmenu)
$normal = GUICtrlCreateMenuItem("Normal", $contextmenu)
$erledigt = GUICtrlCreateMenuItem("Erledigt", $contextmenu)
GUICtrlCreateMenuItem("", $contextmenu)
$erstellen = GUICtrlCreateMenuItem("Eintrag erstellen", $contextmenu)
GUISetState(@SW_SHOWMAXIMIZED)
GUISetState(@SW_SHOW)
#EndRegion ### GRAPHICAL USER INTERFACE ###
_Setup_Scene()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $SubItem1_1 ;Dienstsuche starten
Case $SubItem1_2 ;Sperren
Case $SubItem1_3 ;Beenden
Exit
Case $SubItem2_1 ;Anzeigen
Case $SubItem2_2 ;Bearbeiten
Case $SubItem2_3 ;Exportieren
Case $sofort ; PRIORITÄTEN werden definiert und eingetragen.
$LastSelection = _GUICtrlListView_GetSelectionMark($List1)
_GUICtrlListView_AddSubItem($List1, $LastSelection, "█ SOFORT █", 2)
_GUICtrlListView_SetItemImage($List1, $LastSelection, 1)
Case $dringend
$LastSelection = _GUICtrlListView_GetSelectionMark($List1)
_GUICtrlListView_AddSubItem($List1, $LastSelection, "DRINGEND", 2)
_GUICtrlListView_SetItemImage($List1, $LastSelection, 2)
Case $normal
$LastSelection = _GUICtrlListView_GetSelectionMark($List1)
_GUICtrlListView_AddSubItem($List1, $LastSelection, "Normal", 2)
_GUICtrlListView_SetItemImage($List1, $LastSelection, 3)
Case $erledigt
$LastSelection = _GUICtrlListView_GetSelectionMark($List1)
_GUICtrlListView_AddSubItem($List1, $LastSelection, "✔", 2)
_GUICtrlListView_SetItemImage($List1, $LastSelection, 4)
Case $erstellen
GUISetState(@SW_DISABLE, $GUI) ; Parent-GUI wird disabled.
#Region ### Setup Child GUI ###
$cGUI = GUICreate("Eintrag erstellen", 400, 300, -1, -1, -1, $WS_EX_TOOLWINDOW, $GUI)
$cBtn = GUICtrlCreateButton("Erstellen", 10, 270, 380, 30)
GUICtrlSetFont($cBtn, 14, 300, -1, "Dunant Medium")
GUICtrlCreateGraphic(200, 0, 1, 230, $SS_SUNKEN) ; Trennlinie
;--------- TAGDIENST -------
$cLable_TD = GUICtrlCreateLabel("Tagdienst ( 7 - 19 Uhr )", 10, 20, 180, 30, $SS_Center)
GUICtrlSetFont($cLable_TD, 14, 300, -1, "Dunant Light")
$cCheckBox_EL_TD = GUICtrlCreateCheckbox("Einsatzlenker", 10, 70, 130)
$cCheckBox_TF_TD = GUICtrlCreateCheckbox("Transportführer", 10, 100, 130)
$cCheckBox_AMD_TD = GUICtrlCreateCheckbox("Ambulanzdienst", 10, 130, 130)
$cCheckBox_HEL_TD = GUICtrlCreateCheckbox("HÄND Lenker", 10, 160, 130)
$cCombo_EL_TD = GUICtrlCreateCombo("", 140, 70, 50, 30)
GUICtrlSetData($cCombo_EL_TD, "1|2|3|4|5|6|7|8|9|10")
$cCombo_TF_TD = GUICtrlCreateCombo("", 140, 100, 50, 30)
GUICtrlSetData($cCombo_TF_TD, "1|2|3|4|5|6|7|8|9|10")
$cCombo_AMD_TD = GUICtrlCreateCombo("", 140, 130, 50, 30)
GUICtrlSetData($cCombo_AMD_TD, "1|2|3|4|5|6|7|8|9|10")
$cCombo_HEL_TD = GUICtrlCreateCombo("", 140, 160, 50, 30)
GUICtrlSetData($cCombo_HEL_TD, "1|2|3|4|5|6|7|8|9|10")
GUICtrlSetState($cCombo_EL_TD, 128)
GUICtrlSetState($cCombo_TF_TD, 128)
GUICtrlSetState($cCombo_AMD_TD, 128)
GUICtrlSetState($cCombo_HEL_TD, 128)
GUICtrlSetFont($cCheckBox_EL_TD, 12, 300, -1, "Dunant Light")
GUICtrlSetFont($cCheckBox_TF_TD, 12, 300, -1, "Dunant Light")
GUICtrlSetFont($cCheckBox_AMD_TD, 12, 300, -1, "Dunant Light")
GUICtrlSetFont($cCheckBox_HEL_TD, 12, 300, -1, "Dunant Light")
;--------- NACHTDIENST -------
$cLable_ND = GUICtrlCreateLabel("Nachtdienst ( 19 - 7 Uhr )", 210, 20, 180, 30, $SS_Center)
GUICtrlSetFont($cLable_ND, 14, 300, -1, "Dunant Light")
$cCheckBox_EL_ND = GUICtrlCreateCheckbox("Einsatzlenker", 210, 70, 130)
$cCheckBox_TF_ND = GUICtrlCreateCheckbox("Transportführer", 210, 100, 130)
$cCheckBox_AMD_ND = GUICtrlCreateCheckbox("Ambulanzdienst", 210, 130, 130)
$cCheckBox_HEL_ND = GUICtrlCreateCheckbox("HÄND Lenker", 210, 160, 130)
$cCombo_EL_ND = GUICtrlCreateCombo("", 340, 70, 50, 30)
GUICtrlSetData($cCombo_EL_ND, "1|2|3|4|5|6|7|8|9|10")
$cCombo_TF_ND = GUICtrlCreateCombo("", 340, 100, 50, 30)
GUICtrlSetData($cCombo_TF_ND, "1|2|3|4|5|6|7|8|9|10")
$cCombo_AMD_ND = GUICtrlCreateCombo("", 340, 130, 50, 30)
GUICtrlSetData($cCombo_AMD_ND, "1|2|3|4|5|6|7|8|9|10")
$cCombo_HEL_ND = GUICtrlCreateCombo("", 340, 160, 50, 30)
GUICtrlSetData($cCombo_HEL_ND, "1|2|3|4|5|6|7|8|9|10")
$cLable_Bemerkung = GUICtrlCreateLabel("Bemerkung:", 10, 210, 180, 30, $SS_LEFT)
GUICtrlSetFont($cLable_Bemerkung, 14, 300, -1, "Dunant Light")
$cInput = GUICtrlCreateInput("", 10, 235, 380, 25)
GUICtrlSetFont($cInput, 12, 300, -1, "Dunant Light")
GUICtrlSetState($cCombo_EL_ND, 128)
GUICtrlSetState($cCombo_TF_ND, 128)
GUICtrlSetState($cCombo_AMD_ND, 128)
GUICtrlSetState($cCombo_HEL_ND, 128)
GUICtrlSetFont($cCheckBox_EL_ND, 12, 300, -1, "Dunant Light")
GUICtrlSetFont($cCheckBox_TF_ND, 12, 300, -1, "Dunant Light")
GUICtrlSetFont($cCheckBox_AMD_ND, 12, 300, -1, "Dunant Light")
GUICtrlSetFont($cCheckBox_HEL_ND, 12, 300, -1, "Dunant Light")
GUISetState(@SW_SHOW)
#EndRegion ### Setup Child GUI ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
GUISetState(@SW_ENABLE, $GUI)
GUIDelete($cGUI)
ExitLoop
Case $cBtn ; <------ BUTTON ERSTELLEN
$LastSelection = _GUICtrlListView_GetSelectionMark($List1) ; Die letzte Auswahl des Listviews wird in eine Variable gespeichert.
$EL_TD = "" ;Variablen müssen vorher als Leer definiert werden.
$TF_TD = ""
$AMD_TD = ""
$HEL_TD = ""
$EL_ND = ""
$TF_ND = ""
$AMD_ND = ""
$HEL_ND = ""
If GUICtrlRead($cCheckBox_EL_TD) = 1 Then ;Wenn die Checkbox aktiv ist, wird der Inhalt ausgelesen, sonst nicht. Gibts da keine schönere Variante?
$EL_TD = "[" & GUICtrlRead($cCombo_EL_TD) & "-EL]"
EndIf
If GUICtrlRead($cCheckBox_TF_TD) = 1 Then
$TF_TD = "[" & GUICtrlRead($cCombo_TF_TD) & "-TF]"
EndIf
If GUICtrlRead($cCheckBox_AMD_TD) = 1 Then
$AMD_TD = "[" & GUICtrlRead($cCombo_AMD_TD) & "-AMD]"
EndIf
If GUICtrlRead($cCheckBox_HEL_TD) = 1 Then
$HEL_TD = "[" & GUICtrlRead($cCombo_HEL_TD) & "-HÄND]"
EndIf
If GUICtrlRead($cCheckBox_EL_ND) = 1 Then
$EL_ND = "[" & GUICtrlRead($cCombo_EL_ND) & "-EL]"
EndIf
If GUICtrlRead($cCheckBox_TF_ND) = 1 Then
$TF_ND = "[" & GUICtrlRead($cCombo_TF_ND) & "-TF]"
EndIf
If GUICtrlRead($cCheckBox_AMD_ND) = 1 Then
$AMD_ND = "[" & GUICtrlRead($cCombo_AMD_ND) & "-AMD]"
EndIf
If GUICtrlRead($cCheckBox_HEL_ND) = 1 Then
$HEL_ND = "[" & GUICtrlRead($cCombo_HEL_ND) & "-HÄND]"
EndIf
$BEM = GUICtrlRead($cInput)
_GUICtrlListView_AddSubItem($List1, $LastSelection, $BEM, 5) ;Bemerkung in Listview eintragen.
_GUICtrlListView_AddSubItem($List1, $LastSelection, $EL_TD & $TF_TD & $AMD_TD & $HEL_TD, 3) ;Tagdienst Output in LV eintragen.
_GUICtrlListView_AddSubItem($List1, $LastSelection, $EL_ND & $TF_ND & $AMD_ND & $HEL_ND, 4) ;Nachtdienst Output in LV eintragen.
GUISetState(@SW_ENABLE, $GUI) ;Enabled Parent-GUI
GUIDelete($cGUI) ;Löscht Child-GUI
ExitLoop ;Tritt aus dem Loop des Child-GUI's aus um wieder in den Loop des Parent-GUI's zu gelangen.
;~ ############### REGION TAGDIENST ###############
;Wenn die Checkbox aktiv ist, wird die Combobox enabled, sonst disabled(standard).
Case $cCheckBox_EL_TD ;<------------------- EINSATZLENKER
If _IsChecked($cCheckBox_EL_TD) Then
GUICtrlSetState($cCombo_EL_TD, 64)
Else
GUICtrlSetState($cCombo_EL_TD, 128)
EndIf
Case $cCheckBox_TF_TD ;<------------------- TRANSPORTFÜHRER
If _IsChecked($cCheckBox_TF_TD) Then
GUICtrlSetState($cCombo_TF_TD, 64)
Else
GUICtrlSetState($cCombo_TF_TD, 128)
EndIf
Case $cCheckBox_AMD_TD ;<------------------- AMBULANZDIENST
If _IsChecked($cCheckBox_AMD_TD) Then
GUICtrlSetState($cCombo_AMD_TD, 64)
Else
GUICtrlSetState($cCombo_AMD_TD, 128)
EndIf
Case $cCheckBox_HEL_TD ;<------------------- HÄND LENKER
If _IsChecked($cCheckBox_HEL_TD) Then
GUICtrlSetState($cCombo_HEL_TD, 64)
Else
GUICtrlSetState($cCombo_HEL_TD, 128)
EndIf
;~ ############### REGION NACHTDIENST ###############
Case $cCheckBox_EL_ND ;<------------------- EINSATZLENKER
If _IsChecked($cCheckBox_EL_ND) Then
GUICtrlSetState($cCombo_EL_ND, 64)
Else
GUICtrlSetState($cCombo_EL_ND, 128)
EndIf
Case $cCheckBox_TF_ND ;<------------------- TRANSPORTFÜHRER
If _IsChecked($cCheckBox_TF_ND) Then
GUICtrlSetState($cCombo_TF_ND, 64)
Else
GUICtrlSetState($cCombo_TF_ND, 128)
EndIf
Case $cCheckBox_AMD_ND ;<------------------- AMBULANZDIENST
If _IsChecked($cCheckBox_AMD_ND) Then
GUICtrlSetState($cCombo_AMD_ND, 64)
Else
GUICtrlSetState($cCombo_AMD_ND, 128)
EndIf
Case $cCheckBox_HEL_ND ;<------------------- HÄND LENKER
If _IsChecked($cCheckBox_HEL_ND) Then
GUICtrlSetState($cCombo_HEL_ND, 64)
Else
GUICtrlSetState($cCombo_HEL_ND, 128)
EndIf
EndSwitch
WEnd
EndSwitch
WEnd
; ### FUNKTIONS SEKTION ###
; Hier werden alle Funktionen erstellt.
Func _IsChecked($idControlID)
Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED
EndFunc ;==>_IsChecked
Func _Setup_Scene()
_GUICtrlListView_AddColumn($List1, "Wochentag", 100, 1)
_GUICtrlListView_AddColumn($List1, "Datum", 100, 2)
_GUICtrlListView_AddColumn($List1, "Priorität", 100, 2)
_GUICtrlListView_AddColumn($List1, "Tagdienst 07:00 - 19:00", 250, 2)
_GUICtrlListView_AddColumn($List1, "Nachtdienst 19:00 - 07:00", 250, 2)
_GUICtrlListView_AddColumn($List1, "Bemerkung", 300, 2)
$hImage = _GUIImageList_Create()
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List1, 0xFFFFFF, 16, 16)) ; Weiß
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List1, 0xFF0000, 16, 16)) ; Rot
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List1, 0xEC9A4C, 16, 16)) ;Orange
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List1, 0x00cbff, 16, 16)) ;Blau
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($List1, 0x00FF00, 16, 16)) ;Grün
_GUICtrlListView_SetImageList($List1, $hImage, 1)
Global $Array[_DateDaysInMonth(@YEAR, @MON) - @MDAY + 1][5]
For $i = 0 To _DateDaysInMonth(@YEAR, @MON) - @MDAY Step 1
$Array[$i][1] = _DateTimeFormat(_DateAdd('d', $i, _NowCalcDate()), 2)
$Array[$i][0] = _DateDayOfWeek(_DateToDayOfWeek(@YEAR, @MON, @MDAY + $i), 2)
Next
_GUICtrlListView_AddArray($List1, $Array)
EndFunc ;==>_Setup_Scene
Alles anzeigen
Edit 3:
Projekt derzeit auf Eis gelegt, weil es einfach nicht wirklich umsetzbar ist, ohne auf die Datenbanken des Dienstplanes Zugriff zu haben.
Wenn sich dementsprechend mal was tut, werde ich mich gerne wieder damit beschäftigen!
Trotzdem danke an alle die hier ihren Beitrag geleistet haben!!!
Ihr seid die Besten