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

Beiträge von Kleiner

  • >>> Dienstplanprogramm fertig für jeder man nutzbar <<<

    • Kleiner
    • 30. Oktober 2009 um 13:37

    Danke nuts für dein test ich habe soweit von dir gemeldete fehler behoben!
    Post#1

    Mich würde da noch intresieren wie ich denn die Zeile 245 bis 385 kleiner bekomme denn sie laufen ja schon in einer for schleife wo die farbe auf dem ganzen code (31)*24 zeilen verteilt werden!????

    Edit: wa schon wieder ein fehler! wenn ich im code was ändere dann ändert sich auch ( @GUI_CtrlId ) so wie ich das im code habe: arbeite ich auch zum ersten mal mit!

    LG Kleiner

  • >>> Dienstplanprogramm fertig für jeder man nutzbar <<<

    • Kleiner
    • 30. Oktober 2009 um 13:07

    Nuts: Zitat (Das Skript bricht ab sobald man den angesprochenen Button drückt und noch gar keine Wert eingegeben hat. )

    Bei den button müßte eigentlich "'Berechnen M-1" "'Berechnen M-2" "'Berechnen M-3" usw. stehen bei mir habe ich keine fehler??????????
    Versteh ich jetzt nich welches OS hast du???

    Ich glaube ich weiß was du meinst bei der .EXE kommt der fehler oder??????


    LG Kleiner

  • >>> Dienstplanprogramm fertig für jeder man nutzbar <<<

    • Kleiner
    • 30. Oktober 2009 um 12:57

    Ich dacht schon keiner möchte dazu was sagen! :rolleyes:

    BugFix: Stimmt hast du recht aber ihr geht es ja nicht darum ob einer damit was anfangen kann oder habe ich da jetzt eine falsche auffassung von dem teil des forum?????


    Nuts: Wie meinst du das,das der code abbricht ich habe bei mir gerade alle mal getestet und das eizigste was fasch ist das wenn kein monat ausgewählt wurde er schon mit was rechnet ist mir nicht ganz kla mit was aber er rechnet.
    Wie meinst du das mit der abfrage z.B ob schon welche vorhanden sind???
    Und gib mir bitte ein kleinen denkanstoß wegen : Zitat ( Zeile 245 bis 385 könnte man vermutlich extrem kürzen. ) wehr ganz lieb von dir???

    LG Kleiner ( freu mich ) :)

  • >>> Dienstplanprogramm fertig für jeder man nutzbar <<<

    • Kleiner
    • 30. Oktober 2009 um 12:27

    Post#1

    Hallo leute kein Feedback von eich? ?(


    LG Kleiner

  • >>> Dienstplanprogramm fertig für jeder man nutzbar <<<

    • Kleiner
    • 29. Oktober 2009 um 16:24

    Posst#1


    Edit: Hatte ein fehler in der übernahme der feirtage nun behoben neu in Post#1


    LG Kleiner

  • >>> Dienstplanprogramm fertig für jeder man nutzbar <<<

    • Kleiner
    • 27. Oktober 2009 um 14:19

    Hallo Schnitzel!

    Freu mich das du mein tool testest!

    Also der code erlaubt 12 Mitarbeiter (Personen) in ein Dienstplan zu verarbeiten, also wenn du für 12 Mitarbeiter den dienst für nächsten monat vergeben willst oder den jetzigene kannst du schichen vergeben F=Früh S=Spät FF=Frü-Frü kurze frühsicht F2-S2 habe in dem code bestimmte werte wie die anderen auch am ende sollen sie frei einstellbar sein sowie Na u. Z ausser F-S-FF-SS
    Jeder mitarbieter kann seperat verarbeitet werden also wenn du nur einen berabeitest und ihn berechnest die werte lasen sich auch in einer ini speichern und wieder abrufen wobei nur der Name Position Soll Ist Übertrag und R=Urlaub gespeichert werden das was nicht möglich ist das wenn ein gespeicherter monat neu gespeichert wird das nur bei dem berarbeiteten mitarbeiter die werte geendert werden sonder der gesamte monat wirt neu gespeichert!
    Die obige zeile ist für die schichten F-S-FF usw die darunter für Urlaub also U.
    Achja ganz vergessen K = Krank kann man auch vergeben!
    Was noch kommt feiertagsberechnung, speichern der werte da wo sie geendert wurden oder neu, vieleicht eine Mitarbeiter auswertung wieviel im jahr oder die letzten monate gearbeitet und krank macher! ;)
    Wie soch geagt die gespeicherten werte lassen sich aufrufen durch wählen des monats!

    Nachtrag: Druckbar solles am ende auch werden = zu verteilen an die mitarbeiter o. zu aushängen am büro!! :D

    LG Kleiner

  • >>> Dienstplanprogramm fertig für jeder man nutzbar <<<

    • Kleiner
    • 26. Oktober 2009 um 19:04

    Hallo Liebe Leute!

    Ich habe die die vorläufige Endversion fertiggestellt für jeder man nutzbar!

    Einige Infos vorab: Ihr können 4 Schicht Bezeichnung freie werte zuteilen, ihr werden aufgefordert Feiertage auszuwählen was den Zweck hat das in jedem Bundesland verschieden gefeiert wird und für die richtige Rechnung erforderlich ist! Darüber hinaus werden ihr gefragt ob eine Desktop verlinken anleget werden soll. Auf der linken Seite können ihr in dem ersten Eingabe Feld den Namen eintragen darunter die Position des Mitarbeiters! Rechts daneben sind drei Eingabe Felder untereinander das erste ist für Plus-Minus stunden vom vor Monat darunter die die Stunden in der Woche z.B 40 st. das letzte ist für Urlaub. Daneben haben ihr jetzt 31 * 2 Felder die erste Reihe ist für die schichten und die untere für Urlaub zu besseren Übersicht! Standard für schichten in diesem Programm sind F-S-FF-SS-K u. U die sind abhängig von den Stunden in der Woche z.b ein Mitarbeiter hat eine 40 st.woche, setzt sich die Rechnung wie folgt zusammen 40/5 = 8 die 8 wird jetzt für F-S-K-U genutzt weiter 8/2 = 4 die 4 wird für FF-SS, ihr habt wie schon erwähnt die Möglichkeit 4 schichten nach euren Wünschen anzupassen! Des Weiteren lassen sich die Namen Position und die gerechneten werte speichern und auch wieder aufrufen!
    F=Frühsicht S=Spätschicht (FF=Frühes Früh SS=Spätes Spät kurze Zwischenschichten) K=Krank U=Urlaub und die Möglichkeit F2-S2-Z-Na zu freien Verwendung!

    Feiertagsberechnung von: BugFix
    Druck Option von: Nuts wenn ich richtigliege


    Update: 21.11.2009
    Neu jeder gespeicherter Monat lässt sich komplett wieder einlesen! (Jeder Name-Position , vergebene Schicht u. Rechnung)
    Ubdate: 23.11.2009 Bug behoben und Optimiert!
    Update:25.11.2009 4 Bugs behoben und Optimiert!
    Neu: Ansicht leeren , jedes Jahr wird einzelnt gespeichert sowie die dazugehörigen Monate und auch wieder einlesbar!

    So der Code:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=Pic\ICON_541.ICO
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <Array.au3>
    #include <Date.au3>
    #include<File.au3>
    #include <GuiButton.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <GUIScrollBars.au3>
    #include <ListviewConstants.au3>
    #include <ScrollBarConstants.au3>
    #include <WindowsConstants.au3>
    Opt('MustDeclareVars', 1)
    Opt('GUIOnEventMode', 1)
    Global $likpro = @DesktopDir & '\Dienstplan.lnk', $sDBFile = @ScriptDir & '\Druckerbank.html', $schichtsetz = @ScriptDir & '\data\Schichten.ini', $GUI, $GUI2, $GUI3, $GUI4, $GUI5, $as_array
    If Not FileExists($likpro) Then _desklink()
    If Not FileExists($sDBFile) Then _FileCreate($sDBFile)
    If Not FileExists($schichtsetz) Then
    For $i = 0 To 3
    IniWrite($schichtsetz, 'Schichten', 'Gesetzt' & $i + 1, '0')
    Next
    EndIf
    $GUI = GUICreate('Dienstplan', 1010, 600, -1, -1)
    GUISetBkColor(0xFFFACD, $GUI)
    GUISetOnEvent(-3, '_Exit')
    Local $OptionsMenu = GUICtrlCreateMenu(' M&enü ')
    Local $aMenue[6][2] = [['A&nsicht Speichern', '_save_lesen'],['M&onat Einlesen', '_save_lesen'],['Ansicht Leeren', '_save_lesen'],['S&peicherabfrage', '_Fgui'],['S&chichtsetzen', '_gui5'],['B&eenden', '_Exit']]
    Local $aMErst[5]
    For $i = 0 To 4
    $aMErst[$i] = GUICtrlCreateMenuItem($aMenue[$i][0], $OptionsMenu)
    GUICtrlSetOnEvent(-1, $aMenue[$i][1])
    Next
    GUICtrlCreateLabel('Monat :', 12, 15, 40, 20)
    GUICtrlSetFont(-1, 9, 400, 2)
    GUICtrlCreateLabel('Soll', 868, 68, 20, 15)
    GUICtrlSetTip(-1, 'Gesamter Monats Zeitraum ')
    GUICtrlCreateLabel('Ist', 920, 68, 20, 15)
    GUICtrlSetTip(-1, 'Wieviel im Monat geleistet')
    GUICtrlCreateLabel('Übertrag', 950, 68, 42, 15)
    GUICtrlSetTip(-1, 'Plus Minus Stunden Übertragen')
    GUICtrlCreateLabel('Jahr :', 17, 44, 40, 20)
    GUICtrlSetFont(-1, 9, 400, 2)
    Local $monataus = GUICtrlCreateLabel('-------------------', 60, 15, 75)
    Local $mweahl = GUICtrlCreateCombo('', 60, 15, 110, 20)
    GUICtrlSetState($mweahl, $GUI_HIDE + $GUI_DISABLE)
    GUICtrlSetOnEvent(-1, 'PlusMinus')
    GUICtrlSetData($mweahl, 'Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember')
    Local $monatzahl = GUICtrlCreateLabel('0', -100, 0, 0, 0)
    Local $miusB = GUICtrlCreateButton('Wählen', 125, 14, 49, 20)
    GUICtrlSetOnEvent(-1, 'PlusMinus')
    Local $jahr = GUICtrlCreateLabel(@YEAR, 60, 44, 40, 19)
    Local $minus = GUICtrlCreateButton('-', 135, 44, 15, 15)
    GUICtrlSetOnEvent(-1, 'PlusMinus')
    Local $plus = GUICtrlCreateButton('+', 150, 44, 15, 15)
    GUICtrlSetOnEvent(-1, 'PlusMinus')
    Local $Schalt = GUICtrlCreateLabel('', 860, 44, 60, 25)
    GUICtrlSetColor(-1, 0x0000FF)
    Local $option = GUICtrlCreateButton('Option', 925, 22, 60, 30)
    GUICtrlSetOnEvent(-1, '_Fgui3')
    Local $feita = GUICtrlCreateLabel('Feitertage:', 190, 17, 80, 20)
    GUICtrlSetColor(-1, 0x0000FF)
    Local $afeilabel[7]
    Local $l = 267
    For $i = 0 To 6
    $afeilabel[$i] = GUICtrlCreateLabel('', $l, 17, 60, 18)
    GUICtrlSetOnEvent(-1, '_ftausl')
    GUICtrlSetColor(-1, 0x0000FF)
    $l += 65
    Next
    Local $abutt[12]
    Local $x = 120
    For $i = 0 To 11
    $abutt[$i] = GUICtrlCreateButton('Berechnen M-' & $i + 1, 9, $x, 98, 20)
    GUICtrlSetOnEvent(-1, '_buton')
    $x += 70
    Next
    Local $agrupre[12], $arzei[12], $arzeire[12], $aname[12][2]
    Local $x = 116, $x1 = 111, $x2 = 124, $x3 = 120, $x4 = 79, $y4 = 101
    For $i = 0 To 11
    $agrupre[$i] = GUICtrlCreateGroup('', 858, $x1, 45, 25)
    $arzei[$i] = GUICtrlCreateLabel('R=', 112, $x2, 19, 12)
    $arzeire[$i] = GUICtrlCreateLabel('R=', 880, $x3, 20, 12)
    $aname[$i][0] = GUICtrlCreateInput('', 9, $x4, 120, 21)
    $aname[$i][1] = GUICtrlCreateInput('', 9, $y4, 120, 19)
    $x += 70
    $x1 += 70
    $x2 += 70
    $x3 += 70
    $x4 += 70
    $y4 += 70
    Next
    Local $arTage[31][2], $aschTage[31][2], $aschTage1[31][2], $aschTage2[31][2], $aschTage3[31][2]
    Local $aschTage4[31][2], $aschTage5[31][2], $aschTage6[31][2], $aschTage7[31][2], $aschTage8[31][2]
    Local $aschTage9[31][2], $aschTage10[31][2], $aschTage11[31][2]
    Local $x = 176
    For $i = 0 To 30
    $arTage[$i][0] = GUICtrlCreateLabel(StringRight('0' & $i + 1, 2), $x + 2, 46, 19, 18)
    $arTage[$i][1] = GUICtrlCreateLabel('', $x + 2, 69, 19, 18)
    $aschTage[$i][0] = GUICtrlCreateInput('', $x, 90, 21, 20)
    $aschTage[$i][1] = GUICtrlCreateInput('', $x, 111, 21, 20)
    $aschTage1[$i][0] = GUICtrlCreateInput('', $x, 160, 21, 20)
    $aschTage1[$i][1] = GUICtrlCreateInput('', $x, 181, 21, 20)
    $aschTage2[$i][0] = GUICtrlCreateInput('', $x, 230, 21, 20)
    $aschTage2[$i][1] = GUICtrlCreateInput('', $x, 251, 21, 20)
    $aschTage3[$i][0] = GUICtrlCreateInput('', $x, 300, 21, 20)
    $aschTage3[$i][1] = GUICtrlCreateInput('', $x, 321, 21, 20)
    $aschTage4[$i][0] = GUICtrlCreateInput('', $x, 370, 21, 20)
    $aschTage4[$i][1] = GUICtrlCreateInput('', $x, 391, 21, 20)
    $aschTage5[$i][0] = GUICtrlCreateInput('', $x, 440, 21, 20)
    $aschTage5[$i][1] = GUICtrlCreateInput('', $x, 461, 21, 20)
    $aschTage6[$i][0] = GUICtrlCreateInput('', $x, 510, 21, 20)
    $aschTage6[$i][1] = GUICtrlCreateInput('', $x, 531, 21, 20)
    $aschTage7[$i][0] = GUICtrlCreateInput('', $x, 580, 21, 20)
    $aschTage7[$i][1] = GUICtrlCreateInput('', $x, 601, 21, 20)
    $aschTage8[$i][0] = GUICtrlCreateInput('', $x, 650, 21, 20)
    $aschTage8[$i][1] = GUICtrlCreateInput('', $x, 671, 21, 20)
    $aschTage9[$i][0] = GUICtrlCreateInput('', $x, 720, 21, 20)
    $aschTage9[$i][1] = GUICtrlCreateInput('', $x, 741, 21, 20)
    $aschTage10[$i][0] = GUICtrlCreateInput('', $x, 790, 21, 20)
    $aschTage10[$i][1] = GUICtrlCreateInput('', $x, 811, 21, 20)
    $aschTage11[$i][0] = GUICtrlCreateInput('', $x, 860, 21, 20)
    $aschTage11[$i][1] = GUICtrlCreateInput('', $x, 881, 21, 20)
    $x += 22
    Next
    Local $asoll[12][2], $aist[12][2], $arurlaub[12][2], $asoler[12][2], $auebertr[12][2]
    Local $x = 101, $x1 = 84, $x2 = 121, $x3 = 115
    Local $y = 84, $y2 = 115, $y4 = 79
    For $i = 0 To 11
    $asoll[$i][0] = GUICtrlCreateInput('', 130, $x, 45, 19)
    $asoll[$i][1] = GUICtrlCreateInput('', 858, $y, 45, 21)
    $aist[$i][0] = GUICtrlCreateInput('', 904, $x1, 45, 21)
    $arurlaub[$i][0] = GUICtrlCreateInput('', 130, $x2, 45, 18)
    $arurlaub[$i][1] = GUICtrlCreateInput('', 904, $y2, 45, 21)
    $asoler[$i][0] = GUICtrlCreateInput('', 950, $x3, 45, 21)
    $auebertr[$i][0] = GUICtrlCreateInput('', 130, $y4, 45, 21)
    $auebertr[$i][1] = GUICtrlCreateInput('', 950, $x1, 45, 21)
    $x += 70
    $y += 70
    $x1 += 70
    $x2 += 70
    $y2 += 70
    $x3 += 70
    $y4 += 70
    Next
    _GUIScrollBars_Init($GUI)
    GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL")
    GUISetState()
    $GUI2 = GUICreate('Speicher Abfrage', 627, 585, -1, -1, $WS_SIZEBOX, $WS_EX_ACCEPTFILES)
    GUISetOnEvent(-3, '_Fguischl')
    Local $monaswa = GUICtrlCreateCombo('', 20, 520, 75, 22)
    GUICtrlCreateLabel('Bitte Monat auswählen !', 110, 525, 140, 22)
    Local $alinil = GUICtrlCreateButton('Daten Einlesen', 240, 520, 90, 20)
    GUICtrlSetOnEvent(-1, '_save_lesen')
    GUICtrlCreateButton('Print', 335, 520, 90, 20)
    GUICtrlSetOnEvent(-1, '_Druck')
    Local $hListview = GUICtrlCreateListView('Name|Position|Soll|Ist|Übertrag|R=Urlaub', 0, 0, 625, 500)
    _GUICtrlListView_SetExtendedListViewStyle($hListview, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
    Global $hLVHandle = GUICtrlGetHandle($hListview)
    Local $alistHa[6] = ['Name', 'Position', 'Soll', 'Ist', 'Übertrag', 'R=Urlaub']
    Local $alzeig[6]
    For $i = 0 To 5
    $alzeig[$i] = _GUICtrlListView_SetColumn($hLVHandle, $i, $alistHa[$i], 100, 0)
    Next
    GUICtrlSetData($monaswa, 'Januar|Februar|März|April|Mai|Juni|Juli|August|September|Oktober|November|Dezember')
    GUISetState(@SW_HIDE, $GUI2)
    $GUI3 = GUICreate('Option', 250, 100, -1, -1)
    GUISetOnEvent(-3, '_Fguischl3')
    Local $aspeig = GUICtrlCreateButton('Daten Speichern', 20, 20, 100, 20)
    GUICtrlSetOnEvent(-1, '_save_lesen')
    GUICtrlCreateButton('Speicher Abfragen', 125, 20, 100, 20)
    GUICtrlSetOnEvent(-1, '_Fgui')
    GUICtrlCreateLabel('Feiertage', 38, 60, 60, 20)
    GUICtrlSetColor(-1, 0x0000FF)
    Local $speiloe1 = GUICtrlCreateButton('Zurücksetzen', 125, 57, 100, 20)
    GUICtrlSetOnEvent(-1, '_speleoein')
    GUISetState(@SW_HIDE, $GUI3)
    $GUI4 = GUICreate('Feiertage', 370, 420, -1, -1)
    GUISetOnEvent(-3, '_Fguischl4')
    GUICtrlCreateLabel('Die zutreffenden Feiertage des jeweiligen Bundeslands auswählen.', 25, 10, 390, 20)
    GUICtrlSetColor(-1, 0x0000FF)
    Local $afei = _Feiertage(GUICtrlRead($jahr))
    Local $feiersp[32]
    Local $x = 20, $y = 50
    For $i = 0 To 31
    If $i = 16 Then
    $x = 200
    $y = 50
    EndIf
    $feiersp[$i] = GUICtrlCreateButton($afei[$i][1], $x, $y, 150, 20)
    GUICtrlSetOnEvent(-1, '_wrii')
    $y += 22
    Next
    GUISetState(@SW_HIDE, $GUI4)
    $GUI5 = GUICreate('Schichten vergeben', 370, 330, -1, -1)
    GUISetOnEvent(-3, '_gui5exit')
    GUICtrlCreateLabel('Sie haben die Möglichkeit 4 schichten mit verschiedene Zeiten auszustatten. Das Programm merkt sich die eingegeben Zeiten und arbeitet mit ihnen!', 20, 20, 320, 50)
    Local $schiInput[4]
    Local $t = 80
    For $i = 0 To 3
    $schiInput[$i] = GUICtrlCreateInput('', 160, $t, 30, 20)
    $t += 50
    Next
    Local $schibut[4]
    Local $t = 80
    For $i = 0 To 3
    $schibut[$i] = GUICtrlCreateButton('Speichern', 220, $t, 80, 20)
    GUICtrlSetOnEvent(-1, '_schisetz')
    $t += 50
    Next
    Local $schizurue = GUICtrlCreateButton('Werte Zurücksetzen', 190, 270, 110, 20)
    GUICtrlSetOnEvent(-1, '_speleoein')
    Local $sichtiniaus = IniReadSection($schichtsetz, ' Schichten ')
    If @error Then
    Else
    For $i = 1 To $sichtiniaus[0][0]
    GUICtrlSetData($schiInput[$i - 1], $sichtiniaus[$i][1])
    Next
    EndIf
    GUICtrlCreateLabel('Schichtbezeichnung: F2 ', 25, 83, 120, 20)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlCreateLabel('Schichtbezeichnung: S2 ', 25, 133, 120, 20)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlCreateLabel('Schichtbezeichnung: Z ', 25, 183, 120, 20)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlCreateLabel('Schichtbezeichnung: Na ', 25, 233, 120, 20)
    GUICtrlSetColor(-1, 0x0000FF)
    GUISetState(@SW_HIDE, $GUI5)
    Func _desklink()
    If FileExists(@ScriptDir & '\data\Ndekv') Then Return
    Local $bLoop = 1
    Local $spei = MsgBox(4, '', 'Wollen sie eine Verknüpfung auf dem Dektop anlegen?')
    If $spei = 7 Then
    _FileCreate(@ScriptDir & '\data\Ndekv')
    $bLoop = 0
    EndIf
    If $bLoop = 1 Then FileCreateShortcut(@ScriptDir & "\Dienstplan.exe", @DesktopDir & "\Dienstplan.lnk", @DesktopDir & "\Pic\ICON_541.ICO", @SW_MINIMIZE)
    EndFunc ;==>_desklink
    Func _speleoein()
    Switch @GUI_CtrlId
    Case $speiloe1
    FileDelete(@ScriptDir & '\data\Feiertage' & GUICtrlRead($jahr) & '.ini')
    Sleep(150)
    _Wochentag()
    Case $schizurue
    FileDelete(@ScriptDir & '\data\Schichten.ini')
    Local $s = IniReadSection($schichtsetz, 'Schichten')
    For $i = 0 To 3
    IniWrite($schichtsetz, 'Schichten', 'Gesetzt' & $i + 1, '0')
    GUICtrlSetData($schiInput[$i], '0')
    Next
    EndSwitch
    EndFunc ;==>_speleoein
    Func PlusMinus()
    Dim $am[12][2] = [['Januar', 1],['Februar', 2],['März', 3],['April', 4],['Mai', 5],['Juni', 6],['Juli', 7],['August', 8],['September', 9],['Oktober', 10],['November', 11],['Dezember', 12]]
    Switch @GUI_CtrlId
    Case $miusB
    GUICtrlSetState($miusB, $GUI_HIDE)
    GUICtrlSetState($mweahl, $GUI_SHOW + $GUI_ENABLE)
    Case $mweahl
    GUICtrlSetState($mweahl, $GUI_HIDE + $GUI_DISABLE)
    GUICtrlSetState($miusB, $GUI_SHOW)
    For $i = 0 To UBound($am) - 1
    If $am[$i][0] = GUICtrlRead($mweahl) Then GUICtrlSetData($monatzahl, $am[$i][1])
    Next
    GUICtrlSetData($monataus, GUICtrlRead($mweahl))
    _Wochentag()
    Case $minus
    If GUICtrlSetData($jahr, GUICtrlRead($jahr) - 1) Then _Wochentag()
    Case $plus
    If GUICtrlSetData($jahr, GUICtrlRead($jahr) + 1) Then _Wochentag()
    EndSwitch
    EndFunc ;==>PlusMinus
    Func _Wochentag()
    Dim $aei1[12] = [$aschTage, $aschTage1, $aschTage2, $aschTage3, $aschTage4, $aschTage5, $aschTage6, $aschTage7, $aschTage8, $aschTage9, $aschTage10, $aschTage11]
    Dim $z, $zah = 0, $anzSaSo = 0, $iniaus, $feierINI = @ScriptDir & '\data\Feiertage' & GUICtrlRead($jahr) & '.ini'
    GUICtrlSetData($Schalt, '')
    If Not FileExists($feierINI) Then Return MsgBox(0, 'Info', 'Es ist kein Feiertag speicher vorhanden!') & _Fgui4()
    For $i = 0 To 6
    GUICtrlSetData($afeilabel[$i], '')
    Next
    For $i = 0 To 30
    GUICtrlSetState($arTage[$i][0], $GUI_HIDE)
    GUICtrlSetState($arTage[$i][1], $GUI_HIDE)
    Next
    For $i = 0 To UBound($aei1) - 1
    $z = $aei1[$i]
    For $e = 0 To UBound($z) - 1
    If $e < _DateDaysInMonth(GUICtrlRead($jahr), GUICtrlRead($monatzahl)) Then
    GUICtrlSetData($arTage[$e][1], _getwochwntag(_DateToDayOfWeek(GUICtrlRead($jahr), GUICtrlRead($monatzahl), GUICtrlRead($arTage[$e][0]))))
    GUICtrlSetState($z[$e][0], $GUI_ENABLE)
    GUICtrlSetState($z[$e][1], $GUI_ENABLE)
    Else
    GUICtrlSetData($arTage[$e][1], "")
    GUICtrlSetState($z[$e][0], $GUI_DISABLE)
    GUICtrlSetState($z[$e][1], $GUI_DISABLE)
    EndIf
    Next
    Next
    For $i = 0 To UBound($aei1) - 1
    $z = $aei1[$i]
    For $e = 0 To UBound($z) - 1
    If GUICtrlRead($arTage[$e][1]) = 'Sa' Or GUICtrlRead($arTage[$e][1]) = 'So' Then
    GUICtrlSetBkColor($z[$e][0], 0xDADBE5)
    GUICtrlSetBkColor($z[$e][1], 0xDADBE5)
    GUICtrlSetColor($arTage[$e][1], 0xff0000)
    GUICtrlSetColor($arTage[$e][0], 0xff0000)
    Else
    GUICtrlSetBkColor($z[$e][0], 0xFFFFFF)
    GUICtrlSetBkColor($z[$e][1], 0xFFFFFF)
    GUICtrlSetColor($arTage[$e][1], 0x000000)
    GUICtrlSetColor($arTage[$e][0], 0x000000)
    EndIf
    Next
    Next
    $iniaus = IniReadSection($feierINI, GUICtrlRead($monataus))
    _ArraySort($iniaus, 0, 0, 0, 1)
    For $i = 1 To UBound($iniaus) - 1
    Local $as_arrayr = _StringSplitCount(StringReplace($iniaus[$i][1], '.', ''), 2)
    If _DateToDayOfWeekISO($as_arrayr[2] & $as_arrayr[3], $as_arrayr[1], $as_arrayr[0]) = 5 Or _DateToDayOfWeekISO($as_arrayr[2] & $as_arrayr[3], $as_arrayr[1], $as_arrayr[0]) = 6 Then
    Else
    $zah += 1
    EndIf
    GUICtrlSetData($afeilabel[$i - 1], $iniaus[$i][1])
    Next
    For $i = 0 To 30
    GUICtrlSetState($arTage[$i][0], $GUI_SHOW)
    GUICtrlSetState($arTage[$i][1], $GUI_SHOW)
    If _DateToDayOfWeek(GUICtrlRead($jahr), GUICtrlRead($monatzahl), GUICtrlRead($arTage[$i][0])) = 1 Or _DateToDayOfWeek(GUICtrlRead($jahr), GUICtrlRead($monatzahl), GUICtrlRead($arTage[$i][0])) = 7 Then $anzSaSo += 1
    Next
    $x = _DateDaysInMonth(GUICtrlRead($jahr), GUICtrlRead($monatzahl)) - $anzSaSo - $zah
    If _DateIsLeapYear(GUICtrlRead($jahr)) Then GUICtrlSetData($Schalt, 'Schaltjahr')
    EndFunc ;==>_Wochentag
    Func _getwochwntag($wtag)
    Local $aWT[8] = ['', 'So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa']
    Return $aWT[$wtag]
    EndFunc ;==>_getwochwntag
    Func _buton()
    If GUICtrlRead($monataus) = '-------------------' Then Return MsgBox(0, 'Info', 'Keine Monat ausgewählt!')
    Local $b = (@GUI_CtrlId - 31)
    Local $mr
    If $b = 0 Then $mr = $aschTage
    If $b = 1 Then $mr = $aschTage1
    If $b = 2 Then $mr = $aschTage2
    If $b = 3 Then $mr = $aschTage3
    If $b = 4 Then $mr = $aschTage4
    If $b = 5 Then $mr = $aschTage5
    If $b = 6 Then $mr = $aschTage6
    If $b = 7 Then $mr = $aschTage7
    If $b = 8 Then $mr = $aschTage8
    If $b = 9 Then $mr = $aschTage9
    If $b = 10 Then $mr = $aschTage10
    If $b = 11 Then $mr = $aschTage11
    GUICtrlSetData($aist[$b][0], (_aUtage($mr) * _weiter(GUICtrlRead($asoll[$b][0]))) + _renunga2($mr, $b))
    GUICtrlSetData($arurlaub[$b][1], StringReplace(GUICtrlRead($arurlaub[$b][0]), ',', '.') - _aUtage($mr))
    GUICtrlSetData($asoll[$b][1], _weiter(GUICtrlRead($asoll[$b][0])) * $x)
    GUICtrlSetData($asoler[$b][0], Round(GUICtrlRead($aist[$b][0]) - GUICtrlRead($asoll[$b][1]), 2))
    GUICtrlSetData($auebertr[$b][1], Round(GUICtrlRead($asoler[$b][0]) + StringReplace(GUICtrlRead($auebertr[$b][0]), ',', '.'), 2))
    EndFunc ;==>_buton
    Func _renunga2($rech, $c)
    Local $zaehlen = 0
    Local $s = IniReadSection($schichtsetz, 'Schichten')
    Local $ssch = StringReplace($s[1][1], ',', '.')
    Local $ssch1 = StringReplace($s[2][1], ',', '.')
    Local $ssch2 = StringReplace($s[3][1], ',', '.')
    Local $ssch3 = StringReplace($s[4][1], ',', '.')
    Local $a = _weiter(GUICtrlRead($asoll[$c][0]))
    Local $b = $a / 2
    For $i = 0 To UBound($rech) - 1
    If GUICtrlRead($rech[$i][0]) = 'F' Then $zaehlen += $a
    If GUICtrlRead($rech[$i][0]) = 'S' Then $zaehlen += $a
    If GUICtrlRead($rech[$i][0]) = 'FF' Then $zaehlen += $b
    If GUICtrlRead($rech[$i][0]) = 'SS' Then $zaehlen += $b
    If GUICtrlRead($rech[$i][0]) = 'Z' Then $zaehlen += $ssch2
    If GUICtrlRead($rech[$i][0]) = 'F2' Then $zaehlen += $ssch
    If GUICtrlRead($rech[$i][0]) = 'S2' Then $zaehlen += $ssch1
    If GUICtrlRead($rech[$i][0]) = 'Na' Then $zaehlen += $ssch3
    If GUICtrlRead($rech[$i][0]) = 'K' Then $zaehlen += $a
    Next
    Return $zaehlen
    EndFunc ;==>_renunga2
    Func _aUtage($urech)
    Local $anzSicht = 0
    For $i = 0 To UBound($urech) - 1
    If GUICtrlRead($urech[$i][1]) = 'U' Then $anzSicht += 1
    Next
    Return $anzSicht
    EndFunc ;==>_aUtage
    Func _weiter($wochstu)
    Local $waus = StringReplace($wochstu, ',', '.')
    Return $waus / 5
    EndFunc ;==>_weiter
    Func _save_lesen()
    Dim $z, $wahl = GUICtrlRead($jahr), $zz = 0, $N = 0, $h = 0, $sch = @ScriptDir & '\data\' & $wahl & '\SichtenSpeicher\Schicht' & GUICtrlRead($mweahl) & '.ini', $alesenschreibINI = @ScriptDir & '\data\' & $wahl & '\Dienstplan_settings_Ueberblick' & $wahl & '.ini', $aData
    Dim $spei, $loop = 1
    Dim $aei1[34][2] = [['Name', $aname],['Position', $aname],['Soll', $asoll],['WS', $asoll],['Ist', $aist],['Übertrag', $auebertr],['PM', $auebertr],['Urlaub', $arurlaub],['NU', $arurlaub],['Soller', $asoler],['M1-', $aschTage],['UT1-', $aschTage],['M2-', $aschTage1],['UT2-', $aschTage1],['M3-', $aschTage2],['UT3-', $aschTage2],['M4-', $aschTage3],['UT4-', $aschTage3],['M5-', $aschTage4],['UT5-', $aschTage4],['M6-', $aschTage5],['UT6-', $aschTage5],['M7-', $aschTage6],['UT7-', $aschTage6],['M8-', $aschTage7],['UT8-', $aschTage7],['M9-', $aschTage8],['UT9-', $aschTage8],['M10-', $aschTage9],['UT10-', $aschTage9],['M11-', $aschTage10],['UT11-', $aschTage10],['M12-', $aschTage11],['UT12-', $aschTage11]]
    DirCreate(@ScriptDir & '\data\' & GUICtrlRead($jahr) & '\Sichtenspeicher')
    Switch @GUI_CtrlId
    Case $aMErst[0], $aspeig
    If GUICtrlRead($monataus) = '-------------------' Then Return MsgBox(0, 'Info', 'Kein Monat ausgewählt!')
    GUISetState(@SW_HIDE, $GUI)
    ProgressOn('', 'Daten werden gespeichert ...')
    $h += 10
    ProgressSet($h, $h & '%')
    For $i = 0 To 11
    IniWrite($alesenschreibINI, GUICtrlRead($monataus), 'Name' & $i + 1, GUICtrlRead($aname[$i][0]) & '|' & GUICtrlRead($aname[$i][1]) & '|' & GUICtrlRead($asoll[$i][1]) & '|' & GUICtrlRead($aist[$i][0]) & '|' & GUICtrlRead($auebertr[$i][1]) & '|' & GUICtrlRead($arurlaub[$i][1]))
    $h += 2
    ProgressSet($h, $h & '%')
    Next
    For $i = 0 To UBound($aei1) - 1
    $N = 0
    If $aei1[$i][0] = 'Position' Or $aei1[$i][0] = 'Soll' Or $aei1[$i][0] = 'Übertrag' Or $aei1[$i][0] = 'Urlaub' Or StringLeft($aei1[$i][0], 2) = 'UT' Then $N = 1
    $z = $aei1[$i][1]
    For $e = 0 To UBound($z) - 1
    If GUICtrlRead($z[$e][$N]) <> IniRead($sch, GUICtrlRead($mweahl), $aei1[$i][0] & $e + 1, '') Then IniWrite($sch, GUICtrlRead($monataus), $aei1[$i][0] & $e + 1, GUICtrlRead($z[$e][$N]))
    Next
    $h += 2
    ProgressSet($h, $h & '%')
    Next
    ProgressOff()
    GUISetState(@SW_SHOW, $GUI)
    MsgBox(64, 'Speicher Bericht', 'Speicher der Daten Komplett!')
    Case $aMErst[1]
    For $i = 0 To UBound($aei1) - 1
    $N = 0
    If $aei1[$i][0] = 'Position' Or $aei1[$i][0] = 'Soll' Or $aei1[$i][0] = 'Übertrag' Or $aei1[$i][0] = 'Urlaub' Or StringLeft($aei1[$i][0], 2) = 'UT' Then $N = 1
    $z = $aei1[$i][1]
    For $e = 0 To UBound($z) - 1
    If Not GUICtrlRead($z[$e][$N]) = '' Then Return MsgBox(0, 'Info', 'Bevor eingelesen werden kann, Speichern oder leren sie die Ansicht!')
    Next
    Next
    If IniReadSection($sch, GUICtrlRead($mweahl)) Then Return MsgBox(0, 'Info', 'Speicher nicht vorhanden!')
    GUISetState(@SW_HIDE, $GUI)
    ProgressOn('', 'Daten werden geladen ...')
    $h += 1
    ProgressSet($h, $h & '%')
    For $i = 0 To UBound($aei1) - 1
    $N = 0
    If $aei1[$i][0] = 'Position' Or $aei1[$i][0] = 'Soll' Or $aei1[$i][0] = 'Übertrag' Or $aei1[$i][0] = 'Urlaub' Or StringLeft($aei1[$i][0], 2) = 'UT' Then $N = 1
    $z = $aei1[$i][1]
    For $e = 0 To UBound($z) - 1
    If GUICtrlRead($z[$e][$N]) = '' Then GUICtrlSetData($z[$e][$N], IniRead($sch, GUICtrlRead($mweahl), $aei1[$i][0] & $e + 1, ''))
    Next
    $h += 3
    ProgressSet($h, Round($h) & '%')
    Next
    ProgressOff()
    GUISetState(@SW_SHOW, $GUI)
    MsgBox(64, 'Einlese Bericht', 'Einlesen vom Speicher Komplett!')
    Case $alinil
    If Not FileExists($alesenschreibINI) Or IniReadSection($alesenschreibINI, GUICtrlRead($monaswa)) Then Return MsgBox(0, 'Info', 'Speicher nicht vorhanden!')
    $aData = IniReadSection($alesenschreibINI, GUICtrlRead($monaswa))
    GUICtrlCreateListViewItem('----------|----------|---------|' & GUICtrlRead($monaswa) & GUICtrlRead($jahr) & '|----------|----------', $hListview)
    For $i = 1 To $aData[0][0]
    GUICtrlCreateListViewItem($aData[$i][1], $hListview)
    Next
    MsgBox(0, 'Daten einelese', 'Daten von ' & GUICtrlRead($monaswa) & ' wurde erfolgreich eingelsen!')
    Case $aMErst[2]
    For $i = 0 To UBound($aei1) - 1
    $N = 0
    If $aei1[$i][0] = 'Position' Or $aei1[$i][0] = 'Soll' Or $aei1[$i][0] = 'Übertrag' Or $aei1[$i][0] = 'Urlaub' Or StringLeft($aei1[$i][0], 2) = 'UT' Then $N = 1
    $z = $aei1[$i][1]
    For $e = 0 To UBound($z) - 1
    GUICtrlSetData($z[$e][$N], '')
    Next
    Next
    EndSwitch
    EndFunc ;==>_save_lesen
    Func _ftausl()
    Local $c = (@GUI_CtrlId - 24)
    Local $d = GUICtrlRead($afeilabel[$c])
    Local $inifeiaus = IniReadSection(@ScriptDir & '\data\Feiertage' & GUICtrlRead($jahr) & '.ini', GUICtrlRead($monataus))
    If @error Then
    Else
    For $i = 1 To $inifeiaus[0][0]
    If $inifeiaus[$i][1] = $d Then MsgBox(0, '', $inifeiaus[$i][0])
    Next
    EndIf
    EndFunc ;==>_ftausl
    Func _wrii()
    Local $a = (@GUI_CtrlId - 1015)
    Local $afeius = _Feiertage(GUICtrlRead($jahr))
    Local $as_array = _StringSplitCount(StringReplace($afeius[$a][0], '.', ''), 2)
    Local $as_aweit = _getmonatwahl($as_array[1])
    IniWrite(@ScriptDir & '\data\Feiertage' & GUICtrlRead($jahr) & '.ini', $as_aweit, $afeius[$a][1], $afeius[$a][0])
    _GUICtrlButton_Enable($feiersp[$a], False)
    EndFunc ;==>_wrii
    Func _StringSplitCount(Const $S_TEXT, Const $I_COUNT)
    Return StringRegExp($S_TEXT, '.{1,' & $I_COUNT & '}', 3)
    EndFunc ;==>_StringSplitCount
    Func _getmonatwahl($monatw)
    Local $aMonat[13] = ['', 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
    Return $aMonat[$monatw]
    EndFunc ;==>_getmonatwahl
    Func _schisetz()
    Local $a = (@GUI_CtrlId - 1052)
    Local $c
    If $a = 0 Then $c = 1
    If $a = 1 Then $c = 2
    If $a = 2 Then $c = 3
    If $a = 3 Then $c = 4
    IniWrite($schichtsetz, 'Schichten', 'Gesetzt' & $c, GUICtrlRead($schiInput[$a]))
    EndFunc ;==>_schisetz
    Func _Druck()
    Local $array = _Listviewtoarray($hLVHandle)
    _test($array)
    EndFunc ;==>_Druck
    Func _test($array)
    Local $open = FileOpen($sDBFile, 2)
    Local $html = _ArrayToHTMLTable2($array, True)
    FileWrite($open, $html)
    FileClose($open)
    ShellExecute($sDBFile)
    EndFunc ;==>_test
    Func _Listviewtoarray($hwnd)
    Local $col, $getcol, $lcount, $atext, $counter = 1
    $col = _GUICtrlListView_GetColumnCount($hwnd)
    $lcount = _GUICtrlListView_GetItemCount($hwnd)
    Local $alistview[$lcount + 1][$col]
    For $y = 0 To $col - 1
    $getcol = _GUICtrlListView_GetColumn($hwnd, $y)
    $alistview[0][$y] = $getcol[5]
    Next
    For $i = 0 To $lcount - 1
    $atext = _GUICtrlListView_GetItemTextArray($hwnd, $i)
    For $x = 0 To $atext[0] - 1
    $alistview[$counter][$x] = $atext[$x + 1]
    Next
    $counter += 1
    Next
    Return $alistview
    $counter = 1
    EndFunc ;==>_Listviewtoarray
    Func _ArrayToHTMLTable2(ByRef $aArray, $bHeader = True, $break = 37)
    Local $int, $theader, $hcounter = 0, $del = $break + 1
    Local $iD1 = UBound($aArray, 1)
    If @error Then
    SetError(1)
    Return ''
    EndIf
    Local $iD2 = UBound($aArray, 2)
    If @error Then
    SetError(1)
    Return ''
    EndIf
    Local $sTable = ""
    $sTable &= '<style type="text/css">' & @CRLF
    $sTable &= '</style>' & @CRLF
    $sTable &= '<table border="1" style="width:100%">' & @CRLF
    Local $iStart = 0
    If $bHeader Then
    $iStart = 1
    $sTable &= '<tr>' & @CRLF
    For $i = 0 To $iD2 - 1
    $theader &= @TAB & '<th align="left">' & $aArray[0][$i] & '</th>' & @CRLF
    Next
    $sTable &= $theader
    $sTable &= '</tr>' & @CRLF
    EndIf
    For $i = $iStart To $iD1 - 1
    $hcounter += 1
    If $hcounter = $del Then
    $sTable &= '</table>' & @CRLF
    $sTable &= '<h5>Übertrag</h5>' & @CRLF
    $sTable &= '<h5 style="page-break-before:always">Übertrag</h5>' & @CRLF
    $sTable &= '<table border="1" style="width:100%">' & @CRLF
    $sTable &= '<tr>' & @CRLF
    $sTable &= $theader
    $sTable &= '</tr>' & @CRLF
    $hcounter = 0
    $del = $break
    EndIf
    $sTable &= '<tr>' & @CRLF
    For $j = 0 To $iD2 - 1
    $sTable &= @TAB & '<td>' & $aArray[$i][$j] & '</td>' & @CRLF
    Next
    $sTable &= '</tr>' & @CRLF
    Next
    $sTable &= '</table>' & @CRLF
    $theader = ""
    Return $sTable
    EndFunc ;==>_ArrayToHTMLTable2
    Func _Feiertage($year, $DateTyp = 1)
    Local $4AdvDat, $3AdvDat, $2AdvDat, $1AdvDat, $TotSoDat, $BuBDat, $MutterDat, $ErnteDat, $tmp
    Local $HDays[32][2], $a, $b, $c, $d, $e, $H1, $H2, $N, $M
    $HDays[0][0] = $year & "/01/01\Neujahr"
    $HDays[1][0] = $year & "/01/06\Heilige Drei Könige"
    $HDays[2][0] = $year & "/02/14\Valentinstag"
    $HDays[3][0] = $year & "/05/01\Maifeiertag"
    $HDays[4][0] = $year & "/10/03\Tag der Deutschen Einheit"
    $HDays[5][0] = $year & "/10/31\Reformationstag"
    $HDays[6][0] = $year & "/11/01\Allerheiligen"
    $HDays[7][0] = $year & "/12/24\Heiligabend"
    $HDays[8][0] = $year & "/12/25\1. Weihnachtsfeiertag"
    $HDays[9][0] = $year & "/12/26\2. Weihnachtsfeiertag"
    $HDays[10][0] = $year & "/12/31\Silvester"
    $a = Mod($year, 19)
    $b = Mod($year, 4)
    $c = Mod($year, 7)
    $H1 = Int($year / 100)
    $H2 = Int($year / 400)
    $N = 4 + $H1 - $H2
    $M = 15 + $H1 - $H2 - Floor(Int((8 * $H1 + 13) / 25))
    $d = Mod((19 * $a + $M), 30)
    $e = Mod((2 * $b + 4 * $c + 6 * $d + $N), 7)
    If $d + $e = 35 Then
    Dim $Easter = 50
    Else
    If $d = 28 And $e = 6 And $a > 10 Then
    $Easter = 49
    Else
    Local $Easter = 22 + $d + $e
    EndIf
    EndIf
    If $Easter < 32 Then
    Local $EasterDay = $Easter
    Local $EasterMonth = "03"
    Else
    Dim $EasterDay = $Easter - 31
    Local $EasterMonth = "04"
    EndIf
    If $EasterDay < 10 Then
    $EasterDay = "0" & $EasterDay
    EndIf
    If $year < 1900 Then
    Local $RestJahr = Mod($year, 100)
    If _DateIsLeapYear($year) Then
    If $RestJahr < 10 Then
    Local $RestJahr = "0" & $RestJahr
    EndIf
    Local $Tempyear = 20 & $RestJahr
    Else
    If $RestJahr < 10 Then
    Local $RestJahr = "0" & $RestJahr
    EndIf
    $Tempyear = 19 & $RestJahr
    EndIf
    Local $EasterDate = $Tempyear & "/" & $EasterMonth & "/" & $EasterDay
    Else
    Dim $EasterDate = $year & "/" & $EasterMonth & "/" & $EasterDay
    EndIf
    Local $WFastDate = _DateAdd('d', -52, $EasterDate)
    Local $RosDat = _DateAdd('d', -48, $EasterDate)
    Local $FastDat = _DateAdd('d', -47, $EasterDate)
    Local $AschDat = _DateAdd('d', -46, $EasterDate)
    Local $GrDoDat = _DateAdd('d', -3, $EasterDate)
    Local $KarDat = _DateAdd('d', -2, $EasterDate)
    Local $OSaDat = _DateAdd('d', -1, $EasterDate)
    Local $OSoDat = $EasterDate
    Local $OMoDat = _DateAdd('d', 1, $EasterDate)
    Local $HiFaDat = _DateAdd('d', 39, $EasterDate)
    Local $PfSoDat = _DateAdd('d', 49, $EasterDate)
    Local $PfMoDat = _DateAdd('d', 50, $EasterDate)
    Local $FroDat = _DateAdd('d', 60, $EasterDate)
    For $maitag = 8 To 14
    If _DateToDayOfWeek($year, 5, $maitag) = 1 Then
    If $maitag < 10 Then
    $maitag = "0" & $maitag
    EndIf
    $MutterDat = $year & "/05/" & $maitag
    If $MutterDat = $PfSoDat Then
    $MutterDat = _DateAdd('d', -7, $year & "/05/" & $maitag)
    EndIf
    ExitLoop
    EndIf
    Next
    For $oktobertag = 1 To 7
    If _DateToDayOfWeek($year, 10, $oktobertag) = 1 Then
    $oktobertag = "0" & $oktobertag
    $ErnteDat = $year & "/10/" & $oktobertag
    ExitLoop
    EndIf
    Next
    For $deztag = 18 To 24
    If _DateToDayOfWeek($year, 12, $deztag) = 1 Then
    $4AdvDat = $year & "/12/" & $deztag
    $3AdvDat = _DateAdd('d', -7, $4AdvDat)
    $2AdvDat = _DateAdd('d', -14, $4AdvDat)
    $1AdvDat = _DateAdd('d', -21, $4AdvDat)
    $TotSoDat = _DateAdd('d', -28, $4AdvDat)
    $BuBDat = _DateAdd('d', -32, $4AdvDat)
    ExitLoop
    EndIf
    Next
    $HDays[11][0] = $WFastDate & "\Weiberfastnacht"
    $HDays[12][0] = $RosDat & "\Rosenmontag"
    $HDays[13][0] = $FastDat & "\Fastnacht"
    $HDays[14][0] = $AschDat & "\Aschermittwoch"
    $HDays[15][0] = $GrDoDat & "\Gründonnerstag"
    $HDays[16][0] = $KarDat & "\Karfreitag"
    $HDays[17][0] = $OSaDat & "\Ostersamstag"
    $HDays[18][0] = $OSoDat & "\Ostersonntag"
    $HDays[19][0] = $OMoDat & "\Ostermontag"
    $HDays[20][0] = $HiFaDat & "\Christi Himmelfahrt"
    $HDays[21][0] = $PfSoDat & "\Pfingstsonntag"
    $HDays[22][0] = $PfMoDat & "\Pfingstmontag"
    $HDays[23][0] = $MutterDat & "\Muttertag"
    $HDays[24][0] = $FroDat & "\Fronleichnam"
    $HDays[25][0] = $ErnteDat & "\Erntedankfest"
    $HDays[26][0] = $BuBDat & "\Buß- und Bettag"
    $HDays[27][0] = $TotSoDat & "\Totensonntag"
    $HDays[28][0] = $1AdvDat & "\1. Advent"
    $HDays[29][0] = $2AdvDat & "\2. Advent"
    $HDays[30][0] = $3AdvDat & "\3. Advent"
    $HDays[31][0] = $4AdvDat & "\4. Advent"
    _ArraySort($HDays, 0, 0, 10)
    _ArraySort($HDays, 0, 11)
    For $i = 0 To 31
    If $DateTyp Then
    $tmp = StringSplit($HDays[$i][0], "\", 2)
    $HDays[$i][0] = StringMid($tmp[0], 9) & "." & StringMid($tmp[0], 6, 2) & "." & StringMid($tmp[0], 1, 4)
    $HDays[$i][1] = $tmp[1]
    Else
    $HDays[$i][1] = StringTrimLeft($HDays[$i][0], 11)
    $HDays[$i][0] = StringLeft($HDays[$i][0], 10)
    EndIf
    Next
    Return $HDays
    EndFunc ;==>_Feiertage
    Func WM_VSCROLL($hwnd, $Msg, $wParam, $lParam)
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)
    Local $index = -1, $yChar, $yPos
    Local $Min, $Max, $Page, $Pos, $TrackPos
    For $x = 0 To UBound($aSB_WindowInfo) - 1
    If $aSB_WindowInfo[$x][0] = $hwnd Then
    $index = $x
    $yChar = $aSB_WindowInfo[$index][2]
    ExitLoop
    EndIf
    Next
    If $index = -1 Then Return 0
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hwnd, $SB_VERT)
    $Min = DllStructGetData($tSCROLLINFO, "nMin")
    $Max = DllStructGetData($tSCROLLINFO, "nMax")
    $Page = DllStructGetData($tSCROLLINFO, "nPage")
    $yPos = DllStructGetData($tSCROLLINFO, "nPos")
    $TrackPos = DllStructGetData($tSCROLLINFO, "nTrackPos")
    $Pos = $yPos
    Switch $nScrollCode
    Case $SB_TOP
    DllStructSetData($tSCROLLINFO, "nPos", $Min)
    Case $SB_BOTTOM
    DllStructSetData($tSCROLLINFO, "nPos", $Max)
    Case $SB_LINEUP
    DllStructSetData($tSCROLLINFO, "nPos", $Pos - 1)
    Case $SB_LINEDOWN
    DllStructSetData($tSCROLLINFO, "nPos", $Pos + 1)
    Case $SB_PAGEUP
    DllStructSetData($tSCROLLINFO, "nPos", $Pos - $Page)
    Case $SB_PAGEDOWN
    DllStructSetData($tSCROLLINFO, "nPos", $Pos + $Page)
    Case $SB_THUMBTRACK
    DllStructSetData($tSCROLLINFO, "nPos", $TrackPos)
    EndSwitch
    DllStructSetData($tSCROLLINFO, "fMask", $SIF_POS)
    _GUIScrollBars_SetScrollInfo($hwnd, $SB_VERT, $tSCROLLINFO)
    _GUIScrollBars_GetScrollInfo($hwnd, $SB_VERT, $tSCROLLINFO)
    $Pos = DllStructGetData($tSCROLLINFO, "nPos")
    If ($Pos <> $yPos) Then
    _GUIScrollBars_ScrollWindow($hwnd, 0, $yChar * ($yPos - $Pos))
    $yPos = $Pos
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_VSCROLL
    Func _Exit()
    Exit
    EndFunc ;==>_Exit
    Func _Fgui()
    GUISetState(@SW_HIDE, $GUI3)
    GUISetState(@SW_SHOW, $GUI2)
    EndFunc ;==>_Fgui
    Func _Fgui3()
    GUISetState(@SW_SHOW, $GUI3)
    EndFunc ;==>_Fgui3
    Func _Fgui4()
    GUISetState(@SW_SHOW, $GUI4)
    EndFunc ;==>_Fgui4
    Func _Fguischl()
    GUISetState(@SW_HIDE, $GUI2)
    EndFunc ;==>_Fguischl
    Func _Fguischl3()
    GUISetState(@SW_HIDE, $GUI3)
    EndFunc ;==>_Fguischl3
    Func _Fguischl4()
    GUISetState(@SW_HIDE, $GUI4)
    If FileExists(@ScriptDir & '\data\Feiertage' & GUICtrlRead($jahr) & '.ini') Then _Wochentag()
    For $i = 0 To 31
    _GUICtrlButton_Enable($feiersp[$i], True)
    Next
    EndFunc ;==>_Fguischl4
    Func _gui5()
    GUISetState(@SW_SHOW, $GUI5)
    EndFunc ;==>_gui5
    Func _gui5exit()
    GUISetState(@SW_HIDE, $GUI5)
    EndFunc ;==>_gui5exit
    While 1 * Sleep(10)
    WEnd

    [/autoit]

    Und immer noch unter 1000 zeilen!

    Freu mich auf Feedback!

    LG Kleiner

    Dateien

    Dienstplan.zip 439,11 kB – 411 Downloads
  • GDI+: Rotating Letters

    • Kleiner
    • 26. Oktober 2009 um 09:48

    Guten Morgen Leute!

    Ich muß den Virus arlam von deinem code zurück nehmen!!!!!!

    Ich mach das compile immer aus SciTE und darum hatte ich so auch noch keine probleme, es liegt an der Beta version von Autoit wie gester herrausgefunden das autoit Beta als stabdart bei mir eingestellt ist und aus dieser version kommen der arlam!
    Wenn ich die beta version bei mir runter schmeiße und alles mit der finale mache ist alles ok tja woran das wohl liegen mag :D !


    LG Kleiner

  • GDI+: Rotating Letters

    • Kleiner
    • 25. Oktober 2009 um 11:52

    Stimmt an der Beta Version habe ich gar nicht gedacht!

    Tja wegen dem Virus keine Ahnung warum das so ist aber ich fand es wichtig dir mitzuteilen!

    Ansonsten wie schon die Vorredner schöner Code!!

    Lg Kleiner

  • GDI+: Rotating Letters

    • Kleiner
    • 25. Oktober 2009 um 09:37

    Hallo BugFix!

    Habe bei mir das Antivir auf standart sinlosen arlam hate ich bis jetzt noch nicht darum mein post!

    LG Kleiner

    Nachtrag: es geht ja über Scite auch danach die exe kein virus nur wenn ich rechte maustaste und compile! wegen den code werde ich die erkänung nicht auf niedrig stellen!!!!!!
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Dateien

    Bildschirminhalt erfassen-3.jpg 78,14 kB – 0 Downloads
  • GDI+: Rotating Letters

    • Kleiner
    • 25. Oktober 2009 um 08:58

    Hallo (XP Pro User)

    Mein Test auch bei änderrung!!!

    Bei doppelklick!
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Und rechte maustaste Compile Script!
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Es geht beides nur aus SciTE herraus!!!!!!!!!

    Also vom aussehen super code ! Nur die beiden sachen sind schlecht und nicht für jeden user verständlich voralledem der !!!!!!!!!!!! Virus arlam !!!!!!!!!

    LG Kleiner

    Dateien

    Bildschirminhalt erfassen-2.jpg 27,12 kB – 0 Downloads
  • kurz stopen ( GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND') )

    • Kleiner
    • 22. Oktober 2009 um 01:19

    Hallo Leute!


    Habe eine frage zu benutzerregestrierte funktionen: ist es möglich das auführen von GUIRegisterMsg kruz zu stopen und dann weiter laufen zu lassen???

    Ich habe ein code der auf einmal sehr viel berechnet der läuft mit GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND') aber wenn ich im code eine andere func aufrufe die auch eine mänge berechnet und anzeigt dauert es ziemlich lage bis er das beweltigt hat!
    durch GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND') werden soweit ich verstanden habe alles andere pausiert darum meine frage????


    LG Kleiner

  • Input abfragen ob eine eingabe gemacht wurde???

    • Kleiner
    • 21. Oktober 2009 um 23:51

    Vielen dank Jam00 !!!


    Lg Kleiner

  • Input abfragen ob eine eingabe gemacht wurde???

    • Kleiner
    • 21. Oktober 2009 um 23:11

    Hallo Liebe Leute!


    Habe mal eine frage: wie kann man eine Input abfragen ob eine eingabe gemacht worden ist zahl text ist egal nur OB oder anders erst wenn eine eingabe dann weiter ????


    Lg Kleiner

  • Kein Effekt mehr bei Buttons

    • Kleiner
    • 12. Oktober 2009 um 06:36

    Guten Morgen!

    Ich Kannte den code doch erst seit gestern ich habe in Windows-Info ( GUIOnEventMode ) benutzt = Bilder als Button!

    Und als ich die frage von NoName gerade noch mal gelesen habe, ist mir klar geworden das ich sie falsch verstanden hatte!


    LG Kleiner :rolleyes:

  • Kein Effekt mehr bei Buttons

    • Kleiner
    • 11. Oktober 2009 um 19:13

    Schöne sache, der code von BugFix ich kenne da die sache mit ( GUIOnEventMode ) aber da wird ja nicht so schön der klick animiert !


    LG Kleiner

  • Kein Effekt mehr bei Buttons

    • Kleiner
    • 11. Oktober 2009 um 17:50

    Muß es Bitmap stiye 0x0080 sein denn mit ( $BS_BITMAP ) würde es gehen!

    Oder ( 0x0080 & $BS_BITMAP )

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    Example()

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

    Func Example()
    Local $msg

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

    GUICreate("My GUI") ; will create a dialog box that when displayed is centered

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

    GUICtrlCreateButton("my picture button", 10, 20,50, 55, $BS_BITMAP & 0x0080) ;bitmap style
    GUICtrlSetImage(-1, 'hilfe.bmp');<----- das .bmp solte aber im gleichen verzeichnis ligen

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

    GUISetState()

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    EndFunc

    [/autoit]

    LG kleiner

  • Per Button Fenster öffnen...

    • Kleiner
    • 11. Oktober 2009 um 13:24

    Tut nur fenster öffnen mehr nicht den rest bekommst du denke ich hin!

    [autoit]


    _meine()

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

    Func _meine()
    Local $msg

    Local $gui = GUICreate('', 200, 200, -1, -1)
    $dutton = GUICtrlCreateButton('test', 20, 20, 50, 25)
    GUISetState()

    $gui2 = GUICreate('', 100, 100, -1, -1)
    GUISetState(@SW_HIDE, $gui2)

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $dutton
    GUISetState(@SW_SHOW, $gui2)
    EndSelect
    WEnd
    EndFunc ;==>_meine

    [/autoit]

    Nachtrag:

    Um dir das verständlich zu machen du kanst fenster erstell wie du willst nur solange du sie nicht brauchst solltest du sie ausblenden mit GUISetState(@SW_HIDE, $Fenstername)
    zu einblenden GUISetState(@SW_SHOW, $Fenstername) und ein fenster nicht im fenster erstell also immer alein und die dazugehörigen GUICtrlCreate.

    Also $gui = GUICreate
    dazugehörigen GUICtrlCreate ..
    .....
    ..
    GUISetState() und dann einblenden @SW_SHOW (zeigen) oder ausblenden @SW_HIDE ( fenster wird nicht angezeigt )

    Ich hoffe das es zum verstendis reicht!!

    LG Kleiner

  • Gemeinsames Lernen / Kleines gemeinsames Projekt

    • Kleiner
    • 10. Oktober 2009 um 14:04

    Find ich super!

    Bin auch anfänger und die ide ist supper habe selber für mein code mal geworben keiner hat sich gemeldet!


    So hir bin ich - bin dabei :thumbup:


    LG Kleiner

  • Fenster mit Vertikalen Scroll?

    • Kleiner
    • 9. Oktober 2009 um 17:50

    Vielen Dank! :thumbup:

    Ich habe gerade große Augen bekommen, ich dachte mir haa das habe ich doch gestern doch schon mal getestet das wirt nicht klapen!!!
    Und sch.... klapt doch :D dann habe ich gestern wohl ein andere kombi gehabt! 8|


    nachtrag: in der hilfe wird es so gezeigt!!

    [autoit]

    GUIRegisterMsg($WM_SIZE, "WM_SIZE") ; Fenstergröße ändern
    GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL") ; Vertikales Scrollen
    GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL") ; Horizontales Scrollen

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

    GUISetState()

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

    _GUIScrollBars_Init($hGUI)
    _GUIScrollBars_Init($h_cGUI)

    [/autoit]

    LG Kleiner

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

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