Terminverschiebung im Ablaufplan
Hallo, ich möchte einen Ablaufplan (Pos.-Anfang-Dauer-Ende) erstellen. Da habe ich verschiedene Terminabhängigkeiten definiert (Vorgänger-Nachfolger). Ich suche ein Möglichkeit bei Änderung eines Endtermin alle nachfolgenden Anfangstermine (die unmittelbar und mittelbar) verknüpft sind zu ändern.
Das folgende Foto ist ein Beispiel wie sich die Abhängigkeiten darstellen könnten:
Ich hoffe mich verständlich ausgedrückt zu haben .
Ich bedanke mich schon im voraus für Tipps und Tricks !
12 Antworten
-
Hallo I.R.
ich habe eine Idee, komme aber selbst nicht weiter und stelle sie deshalb mal zur Diskussion ein. Vielleicht weiß jemand anders etwas mehr ...
Der Einfachheit halber ist Lstg mal als reines Datum definiert. Das kannst Du dann selbst verfeinern. Die Tabelle sieht so aus:
Vorgängertermin braucht man nicht ... das entsteht halt von alleine, wenn man eine Tabelle auf sich selbst verlinkt
Der Button ist der Einfachheit halber drin und erzeugt direkt einen verlinkten Folgetermin, dem man nur noch ein Endedatum geben muss (das natürlich beim Button-Klick nicht bekannt ist).
In "Ende" ist ein "Trigger nach Aktualisierung"-Script enthalten:
let t := this; for ft in Folgetermine do let dauer := ft.Ende - ft.Start; ft.(Start := t.Ende); ft.(Ende := ft.Start + dauer) end
Wenn man jetzt ein Ende-Datum ändert, dann ändert sich das Startdatum aller direkten Folgetermine. Außerdem ändert sich das Endedatum der Folgetermine, so dass die Dauer der Folgetermine gleich bleibt.
ABER ... die Folgetermine der Folgetermine ändern sich nicht :(
Ich habe versucht das über Rekursion zu machen, aber der Aufruf meiner rekursiven Funktion in ihr selbst wird nicht akzeptiert. Da ich nicht weiß, wie lange die Kette ist, fällt mir aber nur Rekursion ein ...
Hat jemand eine Idee?
-
Erstmal vielen Dank für die Antwort. Die Änderung des unmittelbaren Folgetermin habe ich auch so gelöst. Aber wie gesagt.......die Nachfolger der Nachfolger:(.
Leider habe ich bisher keine Idee. Aber schön dass sich andere, die bestimmt auch mehr Erfahrung beim "Scripten" haben, sich meinen Problem annehmen !
-
Da ich das nicht hinbekomme, unter folgender Überschrift „Definition einer rekursiven Funktion?“ ist beschrieben wie man das System für eine Rekursion austricksen kann. Kann das helfen?
-
Hi I.R. ,
Noch eine Verständnisfrage: Bleibt es immer bei dieser Anzahl Terminen (LSTG1-6) oder sind das mal mehr oder mal weniger?
Wenn ja, wäre denkbar diese als 6 Felder in einer Tabelle anzulegen und dann mit einer Konstallation von "Trigger nach Änderung" zu aktualisieren...
Viele Grüße
Ronald -
Das Beispiel habe ich mittlerweile an meine DB angepasst und mehrfach umgestellt und probiert. Offensichtlich hat Lars recht…..ich bekomme es jedenfalls nicht hin.
Die Anzahl der Zeilen ist variabel. Ist wohl auch mit zusätzlichen Feldern nicht möglich.
Aber irgendwie muss man das doch machen können. Ich werde mal weiter tüfteln. Wenn ich eine Idee habe werde ich die natürlich zur Verfügung stellen.
-
Hallo. Schau mal, ob Dir das hilft. Die Textfelder sind Hilfsfelder mit den raw()-Werten dieser Termine, Lstg5 und Lstg6 enhalten Trigger, welche jeweils die gesamte Terminfolge ändern. Ich hoffe, so war es gedacht. Mirko
-
Erstmal Danke für die Antworten. Die Test-DB gucke ich mir mal gleich an.
Mit folgenden Script habe ich erstmal das gewünschte Ergebnis erreicht. der Zähler ist notwendig um ein Ausstieg aus der Schleife zu provozieren (ohne hat sich immer die DB festgefahren jedenfalls).
do as transaction
let id := Projekt;
let myChild := Nachfolger;
let datAnfang := Ende + 1;
let zaehler_max := cnt((select Leistung)[Projekt = id]) + 1;
let zaehler := 0;
while myChild != null and zaehler < zaehler_max do
myChild.(Anfang := datAnfang);
datAnfang := date(myChild.Ende) + 1;
myChild := myChild.Nachfolger;
zaehler := zaehler + 1
endend
Erläuterung: die Leistungs-Tabelle gehört zu ein Projekt, Nachfolger sind die verknüpften Termine
-
Ich habe mir die Termin-DB angeschaut. Bin ich da nicht auf eine feste Anzahl an Lstg angewiesen ? Eine festgesetzte Anzahl gibt es aber leider nicht, kann zwischen 2 und ....... liegen theoretisch.
-
Ich habe vor, in der Anwendung ein Ablaufdiagramm zu erstellen. Ähnliches habe ich schon in einer anderen Anwendung eingebaut (Bild) welche aber im Punkt Ablaufplan relativ einfach gestrickt ist.
Das Diagramm habe ich mit QuickChart generiert, relativ cool weil die auch einen Editor haben wo man testen/rumspielen kann. Ich habe z.B. Nullahnung von JScript habe aber mit etwas probieren das hinbekommen.
Hinweis: die roten striche im Diagramm sind Feiertage die ich aus einer Tabelle entnehme.
Der Ausdruck ist dann eine PDF mit Kopf/Fusszeile und dem Bild.
-
Hallo I.R. ,
Ich bin im Webinar-Team auf eine ähnliche Aufgabenstellung gestoßen.
Vielleicht hilft Dir diese Datenbank weiter:
347_GANTT mit Abhängigkeiten(Falls Du nicht im Webinar-Team bist, schreibe eine kurze Email an support@ninox.com mit der Bitte um Aufnahme in das Webinar-Team, dann bekommst Du einen Einladungslink)
Viel Erfolg
Ronald -
Vielen Dank für die Antwort, in dieser Art habe ich das Problem auch gelöst. Funktioniert bei mir ganz gut.
Nochmals Danke und wenn Interesse besteht kann ich ja meine Lösung hier aufzeigen.
Content aside
- vor 2 JahrenZuletzt aktiv
- 12Antworten
- 120Ansichten
-
3
Folge bereits