0

Projekte DB

Hallo Forum,

ich habe die Beispiel DB Projekte einmal ausprobiert.

Etwas ist ist mir aufgefallen. Das Endedatum für einen Task kann vor dem Anfangdatum liegen.

Wie könnte man diesen Fehler abfangen?

 

Und wie kann ich folgendes realisieren?

Ich möchte gerne tasks miteinander verknüpfen. Task2 kann erst beginnen wenn task1 erledigt ist. Verschiebt sich task1 um eine Woche, muss sich auch task2 um eine Woche verschieben. Das wäre für die Gant-Chart Ansicht auch ganz praktisch 

 

Klingt glaub ich nach viel Konfiguration, oder?

Vielen Dank für eure Anregungen.

Viele Grüße 

Alexander 

15 Antworten

null
    • Birger_H
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Dies ist leicht möglich. In den Eigentschaften den 'Ende Datum' Felds gibt es die Property "Nach Änderungen folgendes...":

    –––
    if 'Ende Datum' then
       if 'Ende Datum' > 'Beginn Datum' then
          alert("Ende vor dem Beginn? Kann nicht sein.");
          'Ende Datum' := null
       end
    end
    –––

    Birger

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo,

    @Birger - ich denke du wolltest "<" statt ">" schreiben...:

    if 'Ende Datum' then
       if 'Ende Datum' < 'Beginn Datum' then
          alert("Ende vor dem Beginn? Kann nicht sein.");
          'Ende Datum' := null
       end
    end

    VG Frank

    • Birger_H
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Richtig! Vielen Dank, Frank.

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Alexander,

    "Und wie kann ich folgendes realisieren?

    Ich möchte gerne tasks miteinander verknüpfen. Task2 kann erst beginnen wenn task1 erledigt ist. Verschiebt sich task1 um eine Woche, muss sich auch task2 um eine Woche verschieben."

    Vorschlag: Du gibst der Task-Tabelle eine Verknüpfung mit sich selbst und benennst diese z. B. "Vorgänger", die zusätlich angelegte Verknüpfung 1:n dazu nennst Du dann vielleicht "Nachfolger". Task2 bekommt dann als Vorgänger den Task1 zugewiesen - wodurch dann Task2 automatisch Nachfolger von Task1 ist. Änderst du den Termin von Task1 greifst du auf die Nachfolger-Datensätze zu und änderst dort die Termine entsprechend. Das muss dann natürlich rekursiv passieren damit dann auch die Nachfolger von Task2 verschoben werden...

    VG Frank 

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    "Vielen Dank, Frank" erinnert mich gerade ein wenig an "Danke Anke" ... und nun zurück zum Lück! 😂

    • Alexander_Pietsch
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Frank, hallo Alexander

    damit komme ich doch schon mal ein ganzes Stück weiter. 

    Vielen Dank für euere Bemühungen. 

    VG 

    Alex

    • Alexander_Pietsch
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Gleich noch eine Frage hinterher .... 

    Wie bekomme ich folgende Anforderung realisert:

    Ein Task hat eine Anfang Datum und ein Ende Datum. Jetzt verschiebt sich das Anfang Datum um 2 Tage. Das Ende Datum soll sich ebenfalls um 2 Tage verschieben. Ich vermute, das geht nur, wenn ich vorher eine Dauer für den Task vergebe, oder? 

     

    ..und eins noch:

    Wie kann ich ein "SubProject" als Abgeschlossen markieren, wenn alles Tasks abgeschlossen sind? 

    Zusätzlich könnete man ja das SubProjet in den Status "in Bearbeitung" setzen, solbald eine Task in den Status "in Bearbeitung" wechselt. 

     

    Vielen Dank für Ideen. 

    VG 

    Alex

    • Frank_Schafer
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Alex,

    1. Du kannst die Dauer beim Verschieben natürlich auch errechnen und zwischenspeichern, ich denke aber dass ein Feld Dauer grundsätzlich da nicht schlecht wäre. Du kannst die Dauer ja nach Eingabe des Ende Datum errechnen - genauso aber auch das Ende Datum nach Eingabe der Dauer.

    2. Da stellt sich mir erst mal die Frage, wie die Tasks denn eigentlich als Abgeschlosen markiert werden und ob Projekt/SubProject sowie Task verschiedene Tabellen sind oder Datensätze der gleichen Tabelle. Je nachdem könntest du den Status einfach über ein berechnetes Feld anzeigen - ungefähr so:

    if count(select Task where SubProject = this and Status="in Bearbeitung") = 0 then
      "Abgeschlossen"
    else
      "in Bearbeitung"
    end

    oder du musst eine solche Prüfung bei der Statusänderung durchführen und dann das Statusfeld des SubProjects ändern.

    VG Frank

    • Alexander_Pietsch
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Frank, 

    Vielen Dank für deine Hilfe. 

    Punkt 1. habe ich umsetzen können. 

    Punkt 2 macht mich kirre: 

    Ich habe ein Funtionsfeld mit dem Namen Status in 'Sub Project' eingebaut. 

    Die Funtion: 

    if cnt(select Task where 'Sub Project' = this and Status = 2) = 0 then
    "Abgeschlossen"
    else
    "Bearbeitung"
    end

     

    Leider ist der Status immer Abgeschlossen obwohl es noch drei Tasks gibt, die in Bearbeitung sind, also im Status 2.

    In Tabelle Task ist eine N:1 Verknüfung (Komposition) mit Tabelle Sub Project. 

    Hast du noch eine Idee? 
    VG
    Alex

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

    Spontane Idee: Schon mal mit "number(Status) = 2" versucht?

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

    Zweite, nicht mehr ganz so spontane Idee: "this" vorher in eine Variable schreiben und diese dann für die Abfrage nutzen.

    • Alexander_Pietsch
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter. 

    die erste spontane Idee war es leider nicht. Die zweit, verstehe ich nicht so ganz. Das script sieht aktuell so aus: 

    if cnt(select Task where 'Sub Project' = this and number(Status) = 3) != 0 then
    "Abgeschlossen"
    else
    "Bearbeitung"
    end

     

    VG
    Alex

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

    Hallo Alex, gemeint war folgendes:

     

    let mySub := this;
    if cnt(select Task where 'Sub Project' = mySub and number(Status) = 3) != 0 then
       "Abgeschlossen"
    else
       "Bearbeitung"
    end

    • Alexander_Pietsch
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter, 

    super! Das war es schon ( fast) 

    let mySub := this;
    if cnt(select Task where 'Sub Project' = mySub and number(Status) != 3) = 0 then
    "Abgeschlossen"
    else
    "Bearbeitung"
    end

    Habe den Status auf !=3 geändert. Nun funktioniert es . 

     

    Vielen Dank für deine Hilfe! 
    VG
    Alex

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

    👍

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 15Antworten
  • 2996Ansichten