14_taegige_termine_mit_feiertagsverschiebung

  • Moin Moin zusammen.

    Ich habe ab dem Montag den 29.12.2014 zwei Gruppen, mit jeweils zehn Teilnehmer/innen.
    Diese haben jeder einen Tag innerhalb von 14 Tagen, an dem sie für bestimmte Abläufe
    zuständig ist.

    Am 29.12.2014 sind in der Gruppe-1: Nr.-6 und in Gruppe-2 Nr.-1. Am nächsten Tag erhöht
    sich die Nr.-6 auf Nr.-7 und die Nr.-1 auf Nr.-2. Nach der Nr.-10 kommt dann wieder die
    Nr.-1.

    Das geht so bis zum 31.12.2015, ABER: vor oder nach Feiertagen verschiebt es sich, so das
    möglichst schnell die bekannte Reihenfolge wieder aufgenommen werden kann.

    Ich habe das als Excelliste und könnte damit mein Vorhaben zwar umsetzen, würde es aber
    lieber in AutoIt scripten.

    Nur wie? Denn ich habe noch gar keine Idee, wie und wo ich da anfangen soll. Wenn es funktioniert
    werde ich einige solche "Aufgabenverteilungspläne mit regelmäßigen Aufgaben für die Auszubildenen"
    erstellen, um es ihnen einfacher zu machen. Aber erst einmal einen, für den Durchblick.

    Ich habe es mir so gedacht, das in einer InputBox zum Beispiel "6" und in der zweiten "1"
    steht und dann die Tage mit vollständigem Datum ausgegeben werden, in den in Gruppe-1 die "6"
    steht und in Gruppe-2 die "1". Ist nur eine Zahl angegeben, dann soll für die andere Gruppe
    na klar keine Angaben gemacht werden, da sie nicht vorhanden ist. Bei der "0" soll nichts
    angegeben werden. Zusätzlich soll die Ausgabe erfolgen, wer als nächstes dran ist und zwar
    in einer MsgBox.

    Ich habe mal die Ecelliste beigefügt.
    - rot = Sonn- und zu beachtende Feiertage.
    - grün = die Bereichswochen die irgendwie abweichend sind (Feiertage in der Nähe)
    Habe die Tage mal in einer Spalte durchnummeriert. Evtl. kann man damit was anfangen?

    Die GUI:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Aufgabenverteilung mit 14-tägiger Widerholung.", 421, 438, 192, 124)
    $Label1 = GUICtrlCreateLabel("Aufgabenverteilung mit 14-tägiger Widerholung.", 8, 8, 399, 24)
    GUICtrlSetFont(-1, 12, 800, 4, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Gruppe 1", 8, 40, 79, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Label3 = GUICtrlCreateLabel("Gruppe 2", 128, 40, 79, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    $Input1 = GUICtrlCreateInput("6", 88, 40, 33, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $Input2 = GUICtrlCreateInput("1", 216, 40, 25, 28)
    GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
    $Anzeige = GUICtrlCreateButton("Anzeige", 256, 40, 153, 25)
    $Ergebnisanzeige = GUICtrlCreateEdit("", 8, 80, 401, 345)
    ;GUICtrlSetData(-1, "Ergebnisanzeige")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $Anzeige
    MsgBox(64,"Info","Wenn Button gedrückt wurde, soll unten die Ausgabe erfolgen.")
    MsgBox(64,"Info","Wenn Button gedrückt wurde, soll zusätzlich eine MsgBox auf gehen und ausgeben, wer am Folgetag dran ist.")

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

    EndSwitch
    WEnd

    [/autoit]

    Ich bin echt gespannt, ob und wie das umzusetzen ist.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    3 Mal editiert, zuletzt von Alina (9. Dezember 2014 um 04:19)

  • Hatte noch überlegt, da ich nicht schlafen konnte, es in diese Richtung zu machen, das ich für jede/m Teilnehmer/in die Termine in eine globale Auflistung schreibe, also insgesammt dann ja 20 Teilnehmer/innen, was auch bedeutet zwei mal 365 Tage in diese 20 globalen Auflistungen einschreiben/eintragen.
    Aber wie das dann richtig nutzen mit der oben gezeigten GUI? Oder die Daten irgendwie aus der
    Exceltabelle ziehen (als *csv abspeichern und diese dann auslesen)? Ich habe da irgendwie ein großen Knoten in meinem Kopf.

    Idee der Datenerfassung manuell unter Einsicht der Exceltabelle:

    Spoiler anzeigen
    [autoit]


    Global $Gruppe1[11]=[10,1,2,3,4,5,6,7,8,9,10]
    ConsoleWrite('Aktueller MA GR 1: ' & $Gruppe1[6] & @CR)

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

    Global $Gruppe2[11]=[10,1,2,3,4,5,6,7,8,9,10]
    ConsoleWrite('Aktueller MA GR 2: ' & $Gruppe2[1] & @CR)

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

    ; Später statt Januartermine dann alle Termine in dem Zeitraum 01.01.2015 bis 31.12.2015
    ; 29.12.2014 - 31.12.2014 dienen dem Verständnis wie es zu den Zahlenfolgen kommt.
    ;Januartermine: $Azu16 = 1 für 1. Gruppe und 6 für 6. Person
    Global $Azu16[4] =["29.12.2014","12.01.2015","26.01.2015"]
    ConsoleWrite('Azu Gruppe-1 Nr.-6: ' & $Azu16[1] & @CR) ; Testausgabe

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

    ;Januartermine: ; $Azu21 = 1 für 2. Gruppe und 1 für 1. Person
    Global $Azu21[4] =["29.12.2014","12.01.2015","26.01.2015"]
    ConsoleWrite('Azu Gruppe-2 Nr.-1: ' & $Azu21[1] & @CR) ; Testausgabe

    [/autoit]

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    5 Mal editiert, zuletzt von Alina (9. Dezember 2014 um 15:37)

  • Ich hab in der Richtung mal was gemacht. Einen Terminplaner mit einbeziehen von Wochenende und Feiertagen (da dort nicht gearbeitet wird) sowie der verknüpfung der Termine mit .xls dateien.
    Hab grad nur keine Zeit. Eventuell könntest du spezifisch die Stelle sagen, an der es hapert (wochentag berechnen/excel-tabelle auslesen,...) ich würd mir das dann morgen ansehen.
    Vielleicht ist ja auch jemand anders schneller :)