Task Parent/Child
Dieser Artikel behandelt Methoden, die mit der hierarchischen Struktur von Aufgaben im Gantt-Diagramm arbeiten.
Für grundlegende Operationen wie das Abrufen des Aufgabenobjekts oder der ID siehe den Artikel Task Object/Id.
Elternelement einer Aufgabe
Um das Elternelement einer Aufgabe zu finden, können Sie die Methode getParent verwenden oder auf die Eigenschaft "parent" des Aufgabenobjekts zugreifen:
gantt.getParent("t1");//->"pr_2"
//oder
var taskObj = gantt.getTask("t1");//-> {id:"t1", text:"Task #5", parent:"pr_2", ...}
var taskParent = taskObj.parent; //-> "pr_2"
Beachten Sie, dass die Methode, falls die Aufgabe kein Elternelement hat, die root id zurückgibt.
Kinder einer Aufgabe
Um die Kinder einer übergeordneten Aufgabe abzurufen, verwenden Sie die Methode getChildren:
var data = {
tasks:[
{id:"p_1", text:"Project #1", start_date:"01-04-2020", duration:18},
{id:"t_1", text:"Task #1", start_date:"02-04-2020", duration:8,
parent:"p_1"}
]};
gantt.getChildren("p_1");//->["t_1"]
Wenn Sie alle Kinder einer Aufgabe (nicht nur die direkten) erhalten möchten, verwenden Sie die Methode eachTask() mit der ID der übergeordneten Aufgabe als zweites Argument:
const children = [];
// Alle Kinder einer Aufgabe durchlaufen
gantt.eachTask(function(child){
children.push(child)
}, 11);
Prüfen, ob eine Aufgabe Kinder hat
Um festzustellen, ob eine Aufgabe untergeordnete Aufgaben hat, verwenden Sie die Methode hasChild:
var data = {
tasks:[
{id:"p_1", text:"Project #1", start_date:"01-04-2020", duration:18,
open:true},
{id:"t_1", text:"Task #1", start_date:"02-04-2020", duration:8,
parent:"p_1"},
{id:"t_2", text:"Task #2", start_date:"11-04-2020", duration:8,
parent:"p_1"}
]
};
gantt.init("gantt_here");
gantt.parse(data);
gantt.hasChild("p_1"); //-> true /*!*/
gantt.hasChild("t_1"); //-> false /*!*/
Nächste Aufgabe im Baum
Um das Aufgabenobjekt zu erhalten, das nach einer bestimmten Aufgabe kommt, verwenden Sie die Methode getNext:
var data = {
tasks:[
{id:"p_1", text:"Project #1", start_date:"01-04-2020", duration:18,
open:true},
{id:"t_1", text:"Task #1", start_date:"02-04-2020", duration:8,
parent:"p_1"},
{id:"t_2", text:"Task #2", start_date:"11-04-2020", duration:8,
parent:"p_1"}
]
};
gantt.init("gantt_here");
gantt.parse(data);
gantt.getNext("p_1"); -> "t_1" /*!*/
gantt.getNext("t_1"); -> "t_2" /*!*/
gantt.getNext("t_2"); -> null /*!*/
Beachten Sie, dass gantt Aufgaben unabhängig von ihrer Baumebene gleich behandelt.
Vorherige Aufgabe im Baum
Um das Aufgabenobjekt zu erhalten, das vor einer bestimmten Aufgabe kommt, verwenden Sie die Methode getPrev:
var data = {
tasks:[
{id:"p_1", text:"Project #1", start_date:"01-04-2020", duration:18,
open:true},
{id:"t_1", text:"Task #1", start_date:"02-04-2020", duration:8,
parent:"p_1"},
{id:"t_2", text:"Task #2", start_date:"11-04-2020", duration:8,
parent:"p_1"}
]
};
gantt.init("gantt_here");
gantt.parse(data);
gantt.getPrev("p_1"); -> null /*!*/
gantt.getPrev("t_1"); -> "p_1" /*!*/
gantt.getPrev("t_2"); -> "t_1" /*!*/
Auch hier werden Aufgaben unabhängig von ihrer Baumebene betrachtet.
Geschwister einer Aufgabe
Um die Geschwister einer bestimmten Aufgabe zu erhalten, verwenden Sie die Methode getSiblings:
var data = {
tasks:[
{id:"p_1", text:"Project #1", start_date:"01-04-2020", duration:18,
open:true},
{id:"t_1", text:"Task #1", start_date:"02-04-2020", duration:8,
parent:"p_1"},
{id:"t_2", text:"Task #2", start_date:"11-04-2020", duration:8,
parent:"p_1"}
]
};
gantt.init("gantt_here");
gantt.parse(data);
gantt.getSiblings("t_1"); -> ["t_1", "t_2"] /*!*/
Nächstes Geschwister einer Aufgabe
Um das nächste Geschwister einer Aufgabe zu finden, verwenden Sie die Methode getNextSibling:
var data = {
tasks:[
{id:"p_1", text:"Project #1", start_date:"01-04-2020", duration:18,
open:true},
{id:"t_1", text:"Task #1", start_date:"02-04-2020", duration:8,
parent:"p_1"},
{id:"t_2", text:"Task #2", start_date:"11-04-2020", duration:8,
parent:"p_1"}
]
};
gantt.init("gantt_here");
gantt.parse(data);
gantt.getNextSibling("t_1"); -> "t_2" /*!*/
gantt.getNextSibling("t_2"); -> null (wenn kein nächstes Geschwister vorhanden ist) /*!*/
Vorheriges Geschwister einer Aufgabe
Um das vorherige Geschwister einer Aufgabe zu erhalten, verwenden Sie die Methode getPrevSibling:
var data = {
tasks:[
{id:"p_1", text:"Project #1", start_date:"01-04-2020", duration:18,
open:true},
{id:"t_1", text:"Task #1", start_date:"02-04-2020", duration:8,
parent:"p_1"},
{id:"t_2", text:"Task #2", start_date:"11-04-2020", duration:8,
parent:"p_1"}
]
};
gantt.init("gantt_here");
gantt.parse(data);
gantt.getPrevSibling("t_2"); -> "t_1" /*!*/
gantt.getPrevSibling("t_1"); -> null (wenn kein vorheriges Geschwister vorhanden ist) /*!*/