0

Aufgabe mit Teilaufgaben

Ich habe in meiner Datenbankstruktur eine Hauptaufgabe inTabelle A und Teilaufgaben in Untertabelle B. Nun soll den Bearbeitern der jeweiligen Teilaufgaben diese nur angezeigt werden, wenn die notwendigen Voraufgaben bearbeitet wurden. Ich habe mir das so vorgestellt, dass ich bei der jeweiligen Teilaufgabe in Untertabelle B ein Statusfeld ändere, sobald die vorherige Aufgabe erledigt wurde. Die Teilaufgaben sind jeweils in der Bezeichnung mit einer aufsteigenden Nummer versehen, anhand derer man die nachfolgenden Aufgaben erkennen kann.

Um das etwas deutlicher zu machen hier ein Beispiel:

Ich lege in der Haupttabelle A eine neue Hauptaufgabe "Artikel schreiben" an. In der Untertabelle B werden dann folgende Teilaufgaben angelegt:

1. Artikelentwurf schreiben

2. Abstimmung mit Kunden

3. Veröffentlichung Website

4. Veröffentlichung Agentur

5. Veröffentlichung Soziale Medien

 

Nach Erstellung der Teilaufgaben haben diese alle den Status offen und lediglich die Nr. 1 den Status in Bearbeitung. Wenn nun die Teilaufgabe 1 erledigt wurde (Status: erledigt), soll die Teilaufgabe 2 eine Statusänderung erhalten von Offen auf Pending. 

Ich müsste vermutlich ein Script schreiben, welches in der Funktion nach Änderung abläuft. Wie kann ich das konkret realisieren? Danke für kreative Ideen...

4 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo, wenn die Teilaufgaben in der richtigen Reihenfolge generiert werden, dann könnte der Code für den Änderungstrigger im Statusfeld der Teilaufgaben bspw. so aussehen:

    if text(Status) = "Erledigt" then
        let myNr := number(Nr);
        let myHA := Hauptaufgaben;
        let nextTA := first(select Teilaufgaben where Hauptaufgaben = myHA and number(Nr) > myNr);
        if nextTA != null then
            nextTA.(Status := "Ausstehend")
        else
            myHA.(Status := "Erledigt")
        end
    end

    Ich bin jetzt einfach mal davon ausgegangen, dass auch die Tabelle 'Hauptaufgaben' ein Statusfeld mit denselben Einträgen hat. Mit dem "else"-Zweig würde dieses Statusfeld nach Erledigung der letzten Teilaufgabe ebenfalls automatisch auf "Erledigt" gesetzt. Falls das nicht gewünscht ist, kann das "else" mitsamt der nachfolgenden Zeile einfach entfallen.

    • Pro BoutiquenFonds GmbH
    • Eichelfr
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke für den Ansatz Copytexter! Tolle Unterstützung hier im Forum, das schätze ich wirklich an Ninox... Frank

    • Pro BoutiquenFonds GmbH
    • Eichelfr
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Nun gibt es noch eine weitere Anforderung zu den Teilaufgaben. Wie müsste obiger Coder erweitert werden, wenn Teilaufgabe 3 auf erledigt gesetzt wird und alle nachfolgenden Aufgaben (>3) auf den Status "Ausstehend" geändert werden (nicht nur die nächste Teilaufgabe). Die Anzahl kann der Teilaufgaben kann hierbei unterschiedlich sein, je nachdem welche bei der jeweiligen Hauptaufgabe angelegt wurden. 

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Frank, wenn alle folgenden Teilaufgaben auf "Ausstehend" gesetzt werden sollen, dann würde ich es so versuchen:

    if text(Status) = "Erledigt" then
        let myNr := number(Nr);
        let myHA := Hauptaufgaben;
        ((select Teilaufgaben where Hauptaufgaben = myHA and number(Nr) > myNr).Status := "Ausstehend");
    end