Zum Hauptinhalt springen

Aufgabenobjekt/ID

Um mit Daten im Gantt-Diagramm zu arbeiten, müssen Sie wissen, wie Sie das Objekt oder die ID eines Datenelements erhalten. Erstens nehmen die meisten Methoden das Datenobjekt/die ID als Parameter. Zweitens kann kein datenbezogenes Codeszenario implementiert werden, ohne sich auf das Datenobjekt/die ID zu beziehen.

Um sich über die verfügbaren baumbezogenen Methoden für Aufgaben zu informieren, lesen Sie den Aufgaben-Elternteil/Kind Artikel.

Aufgabenobjekt

Um ein Aufgabenobjekt zu erhalten, verwenden Sie die getTask Methode:

gantt.getTask("t1");
//->{id:"t1", text:"Task #5", start_date:"02-09-2020", duration:28,
// progress:0.6, parent:"pr_2", $source:[3,5], $target:[2,1], ...}

Elternteil einer Aufgabe

Um den Elternteil einer Aufgabe zu erhalten, verwenden Sie die getParent Methode oder die parent-Eigenschaft des Aufgabenobjekts:

gantt.getParent("t1"); //->"pr_2".Wenn es kein Elternteil gibt, gibt die Methode die Wurzel-ID zurück
//oder
var taskObj = gantt.getTask("t1"); //-> {id:"t1", text:"Task #5", parent:"pr_2", ...}
var taskParent = taskObj.parent; //-> "pr_2"

Um alle Methoden im Zusammenhang mit der Baumeigenschaft des Gantt-Diagramms zu sehen, lesen Sie den Aufgaben-Elternteil/Kind Artikel.

Verknüpfungen zu einer Aufgabe

Für Details darüber, wie man alle Verknüpfungen erhält, die mit einer bestimmten Aufgabe verbunden sind, lesen Sie den Artikel Erhalten des Link-Objekts/der ID.

Dauer der Aufgabe

Um die Dauer einer Aufgabe zu erhalten, verwenden Sie die calculateDuration Methode:

gantt.calculateDuration(new Date(2020,03,30),new Date (2020,04,02)); // ->16

Die Methode funktioniert nicht, nachdem nur der duration-Parameter geändert und das Aufgabenobjekt aktualisiert wurde. Um sie verwenden zu können, müssen Sie auch den end_date-Parameter über die calculateEndDate Methode aktualisieren. Siehe das Beispiel.

Hinweis: Wenn die work_time Option aktiviert ist, berechnet die calculateDuration Methode die Dauer der Aufgabe in der Arbeitszeit.

Aufgabenhöhe

Um die Höhe des DOM-Elements der Aufgabe zu erhalten, verwenden Sie die getTaskBarHeight Methode:

gantt.config.bar_height = 45;
gantt.render();

gantt.getTaskBarHeight(1); // -> 45

Der Rückgabewert kann auch dem im Task-Objekt angegebenen bar_height-Wert entsprechen:

var tasks = {
data:[
{ id: 1, text: "Project #2", start_date: "01-04-2018", duration: 18,
progress: 0.4, open: true, bar_height: "full", row:height: 50 },
{ id: 2, text: "Task #1", start_date: "02-04-2018", duration: 8,
progress: 0.6, parent: 1, bar_height: 25, row:height: 50 },
]
};
gantt.init("gantt_here");
gantt.parse(tasks);

gantt.getTaskBarHeight(1); // -> 45
gantt.getTaskBarHeight(2); // -> 25

Hinweis: Wenn die Eigenschaft bar_height auf "full" gesetzt ist, berechnet die Methode die Höhe der Aufgabenleiste in Pixeln.

Enddatum der Aufgabe

Um das Enddatum einer Aufgabe zu erhalten, verwenden Sie die calculateEndDate Methode:

gantt.calculateEndDate(new Date(2020,03,30),48,"hour"); //-> Thu May 07 2020 17:00:00

Hinweis: Wenn die work_time Option aktiviert ist, berücksichtigt die Methode die Dauer als Arbeitszeit.

Ausgewählte Aufgabe

Um die aktuell ausgewählte Aufgabe zu erhalten, verwenden Sie die getSelectedId Methode:

gantt.selectTask("t_1"); 
gantt.getSelectedId(); //-> "t_1" - die ID der ausgewählten Aufgabe

Aufgaben aus einem bestimmten Zeitraum

Um eine Sammlung von Aufgaben zu erhalten, die im angegebenen Zeitraum auftreten, verwenden Sie die getTaskByTime Methode:

var tasks = gantt.getTaskByTime(new Date(2020,03,05),new Date(2020,03,15)); 
// where tasks is an array of tasks' objects

Alle Aufgaben des Gantt

Um alle im Gantt-Diagramm dargestellten Aufgaben zu erhalten, verwenden Sie die getTaskByTime Methode wie folgt:

var tasks = gantt.getTaskByTime();  //erfolgt alle Aufgaben als Array von Objekten

Sie können auch die serialize Methode aufrufen.

Verknüpfungen einer bestimmten Aufgabe

Um Verknüpfungen zu einer Aufgabe zu erhalten, verwenden Sie die $source, $target Eigenschaften des Aufgabenobjekts. Die Eigenschaften werden automatisch generiert und speichern die IDs der zugehörigen Verknüpfungen:

  • $source - Verknüpfungen, die von der Aufgabe ausgehen.
  • $target - Verknüpfungen, die zur Aufgabe hineinführen.
var taskObj = gantt.getTask("t1");

var sourceLinks = taskObj.$source; //-> ["l1","l4"] - IDs der ausgehenden Verknüpfungen /*!*/
var targetLinks = taskObj.$target; //-> ["l5","l8"] - IDs der eingehenden Verknüpfungen /*!*/

Nächste aufkommende Aufgabe

Um die nächste aufkommende Aufgabe zu erhalten, verwenden Sie die getTaskByTime Methode wie folgt:

var tasks = gantt.getTaskByTime(new Date(), new Date(9999,1,1);    
// tasks - die Liste aller aufkommenden Aufgaben
tasks.sort(function(a,b){ return (a.start_date > b.start_date ? 1 : -1); });
// tasks[0] - die nächste aufkommende Aufgabe

Task-ID

Allgemein können Sie die ID einer Aufgabe aus dem "data"-Objekt des Datensatzes abrufen.

{
tasks:[
{id:1, text:"Task #1", start_date:"01-04-2020", duration:18, progress:0.4}, /*!*/
{id:2, text:"Task #2", start_date:"02-04-2020", duration:8, progress:0.6} /*!*/
],
links:[...]
}

Wenn Sie die ID der Aufgabe nicht aus dem Datensatz erhalten können, verwenden Sie die getTaskByTime Methode wie folgt:

var tasks = gantt.getTaskByTime();   //liefert alle Aufgaben
for(var i="0;i" < tasks.length; i++){ //geht über alle Aufgaben, um die benötigte zu finden
if (tasks[i].text == "Task #3")
var taskId = tasks[i].id;
};

Wenn Sie eine ungefähre Zeit kennen, zu der die benötigte Aufgabe auftritt, sollten Sie die zurückgegebene Sammlung von Aufgaben einschränken, um die App-Geschwindigkeit zu erhöhen:\

var tasks = gantt.getTaskByTime(new Date(2020,05,01),new Date(2020,05,10)); 
for(var i="0;i" < tasks.length; i++){
if (tasks[i].text == "Task #3")
var taskId = tasks[i].id;
};

Ändern der ID einer Aufgabe

Um die aktuelle ID einer Aufgabe zu ändern, verwenden Sie die changeTaskId Methode:

gantt.changeTaskId("t1", "t11");  //ändert die Aufgaben-ID von "t1" zu "t11" 

Öffnen/Schließen von Aufgabenästen

Der offene Zustand eines Aufgabenastes wird durch die task.$open-Eigenschaft definiert, die nach dem Laden der Aufgaben in Gantt verfügbar ist. Sobald der Wert geändert wird, werden die Änderungen nach der nächsten Neuzeichnung des Gantt angezeigt:

// alle Äste erweitern
gantt.eachTask(function(task){
task.$open = true;
});
gantt.render();

// alle Äste zusammenklappen
gantt.eachTask(function(task){
task.$open = false;
});
gantt.render();

Um eine einzelne Aufgabe zu öffnen/zu schließen, können Sie die open und close Methoden verwenden. Sie ändern den internen Zustand der Aufgabe und lösen Neuzeichnungen aus. Wenn Sie jedoch viele Aufgaben ändern müssen, ist es besser, direkt mit task.$open zu arbeiten, um unnötige Neuzeichnungen zu vermeiden.

Kopieren/Einfügen von Aufgaben

Folgen Sie den Beispielen im Abschnitt Wie man Aufgaben kopiert und einfügt.

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.