XdevGanttTemplate

Anfang  Zurück  Vor

Letzte Änderung 18.02.2014

 

Die Komponente XdevGanttTemplate ist ein vollständiges Gantt-Chart, das sich aus einer Aufgabentabelle und der eigentlichen Chart-Komponente zusammensetzt. Alle Aufgaben werden mit einem waagerechten Balken visualisiert, die sich direkt im Chart mit der Maus interaktiv vergrößern und verkleinern lassen. Dazu kann in jedem Balken ein Fortschrittsbalken angezeigt werden, mit dem sich der aktuelle Stand der Aufgabe ablesen lässt. Um Abhängigkeiten umzusetzen, lassen sich Aufgaben miteinander verknüpfen, wodurch standardisierte Bedingungen definiert werden. Auch eine automatisierte Prüfung dieser Bedingungen ist möglich.

 

Für die Abbildung der Zeitachse lassen sich auch mehrere Zeitstrahlen mit unterschiedlichen Zeiteinheiten übereinander legen. Dabei werden alle denkbaren Einheiten unterstützt, u.a. Jahre, Monate, Wochen, Tage, Stunden, etc. Zur Laufzeit lassen sich die Zeitachsen mit Strg + Mausrad je nach erforderlicher Genauigkeit flexibel zoomen.

 

Das Anlegen und Editieren von Aufgaben ist sowohl in der Aufgabentabelle, als auch direkt im Gantt-Chart mit Hilfe eines Standard-Formulars möglich, das via Kontextmenü aufgerufen wird. Das Verlängern, Verkürzen und Verschieben von Aufgaben ist ebenfalls direkt im Gantt-Chart per drag&drop möglich.

 

Hinweis: Das XdevGanttTemplate ist noch keine vollständige Projektplansoftware, sondern vielmehr die universell einsetzbare Basis-Komponente dafür. Das XdevGanttTemplate stellt den zentralen Teil der grafischen Oberfläche einer Projektplansoftware inklusive der wichtigsten Grundfunktionen zur Verfügung. Dazu stellt die Komponente ein einfaches und schlankes Datenmodell, bestehend aus nur 2 Tabellen zur Verfügung, das sich bei Bedarf flexibel erweitern und vor allem sehr leicht in ein bereits bestehendes relationales Datenmodell einbinden lässt. Mit Hilfe von Virtuellen Tabellen als Verbindungsstück zwischen dem XdevGanttTemplate und Ihrer Datenbank erhalten Sie auch die wichtigsten Datenbankfunktionen mit dazu, u.a. automatisiertes Laden und transaktionssicheres Speichern sämtlicher Daten sowie datenbankunabhängigkeit. Der fachliche Teil einer Projektplansoftware, u.a. spezielle Funktionen, Regeln, Berechnungen etc., der sich bei einer Individuallösung ohnehin vom Standard abheben muss, muss individuell implementiert werden. Mit der Möglichkeit Aufgaben miteinander zu verknüpfen inklusive Validierung, stellt das XdevGanttTemplate nur einen kleinen Teil an Businesslogik zur Verfügung.

 

 

 

Aufgabentabelle anzeigen

 

In der Aufgabentabelle, die durch das Anwählen der  Eigenschaft Vorgangsübersicht anzeigen aktiviert wird, werden alle Aufgaben tabellarisch aufgelistet. Um Daten editieren zu können, müssen Sie die Eigenschaft Vorgänge in Übersicht editierbar anwählen.

 

clip0585

 

Auch eine Gruppierung der Aufgaben ist möglich. Die gruppierten Aufgaben werden dann automatisch als Tree abgebildet, sodass sich die Unterkategorien je nach Bedarf ein- und ausklappen lassen. Auch die dazugehörigen Balken im Gantt-Chart werden dabei mit ein- und ausgeklappt.

 

 

 

Aufgaben verknüpfen

 

Aufgaben lassen sich auf 4 verschiedene Arten miteinander verknüpfen. Durch den verwendeten Relations-Typen wird gleichzeitig eine von insgesamt vier standardisierten Bedingung festgelegt, die jeweils eine bestimmte zeitliche Reihenfolge ausschließt. Die natürlichste Bedingung ist Finish to start, die voraussetzt, dass ein Arbeitsabschnitt erst dann beginnen kann, wenn der Arbeitsabschnitt davor beendet ist. Die Bedingung Start to finish wird dagegen in der Praxis kaum benötigt.

 

1.Finish to start - Aktivität 2 kann nicht starten, bevor der Aktivität 1 beendet ist.

2.Start to start - Aktivität 2 kann nicht starten, bevor Aktivität 1 startet.

3.Finish to finish -  Aktivität 2 kann nicht enden, bevor Aktivität 1 beendet ist.

4.Start to finish - Aktivität 2 kann nicht enden, bevor Aktivität 1 startet.

 

clip0581

 

 

 

Benötigte Tabellen

 

Alle Einträge im GanttChart werden in der Tabelle GANTTDATE gespeichert, während alle Verknüpfungen zwischen einzelnen Einträgen in der Tabelle GANTRELATIONDATA abgespeichert werden. Beide Tabellen müssen Sie in Ihrer Datenbank anlagen. Damit können Aufgaben nicht nur direkt im XdevGanttTemplate angelegt und editiert werden, sondern auch völlig autark davon, z.B. in einem anderen Programmfenster oder sogar in oder von einer externen Applikation, die auf die Datenbanktabellen des XdevGanttTemplates Zugriff hat. Die Virtuellen Tabellen dazu können Sie sich sogar generieren lassen, wodurch diese auch gleich mit dem XdevGanttTemplate verknüpft werden. Falls Sie neben den generierten Standardspalten weitere Datenfelder benötigen, müssen Sie nur die Virtuelle Tabelle sowie die Datenbanktabelle mit den entsprechenden Spalten erweitern.

 

1.Fügen Sie ein XdevGanttTemplate in die Arbeitsfläche ein.

2.Klicken Sie mit Rechtsklick in das XdevGanttTemplate und wählen Sie im Kontextmenü GanttChart > Standard Virtuelle Tabellen anlegen.

 

Virtuelle Tabelle GANTTDATE:

clip0583

 

Datenfelder:

ID - ID des Datensatzes. Die ID muss ein Autowert sein, der von der Datenbank erzeugt wird. Datentyp ist INTEGER.

DESCRIPTION - Bezeichnung der Aktivität. Datentyp ist VARCHAR.

START - Gibt an, wann die Aktivität startet. Datentyp ist TIMESTAMP.

END - Gibt an, wann die Aktivität endet. Datentyp ist TIMESTAMP.

PARENT_ID - ID einer anderen Aktivität, z.B. 1 für Karosseriebau. Durch die Angabe einer Parent-ID entsteht eine Hierarchie. Der Eintrag mit der Parent-ID wird zur übergeordneten Kategorie. Der Eintrag selbst wird zur Unterkategorie. Von der Aufgabentabelle wird diese Hierarchie automatisch als Tree abgebildet, wodurch sich Unterkategorien je nach Bedarf ein- und ausklappen lassen. Datentyp ist INTEGER.

COMPLETION - Aktueller Fortschritt des Tasks in Prozent. Der Wertebereich reicht von 0,00 = 0% bis 1,00 = 100%. Datentyp ist DOUBLE.

 

 

Virtuelle Tabelle GANTTRELATIONDATA:

clip0584

 

Datenfelder:

ID - ID des Datensatzes. Die ID muss ein Autowert sein, der von der Datenbank erzeugt wird. Datentyp ist INTEGER.

RELATION_ID - ID des Relations-Typs, der eine Bedingung für die zeitliche Reihenfolge der Tasks darstellt. Bei der Verknüpfung zweier Einträge im GanttChart wird die RELATION_ID automatisch gespeichert. 1 = Finish to start, 2 = Start to start, 3 = Finish to finish, 4 = Start to finish. Datentyp ist INTEGER.

ENTRY_ID - ID des nachfolgenden Tasks in der Tabelle GanttDate. Bei der Verknüpfung zweier Einträge im GanttChart wird die ENTRY_ID automatisch gespeichert.

RELATION_PARENT_ID - ID des vorausgehenden Tasks in der Tabelle GanttDate. Bei der Verknüpfung zweier Einträge im GanttChart wird die RELATION_PARENT_ID automatisch gespeichert.

 

 

 

Änderungen automatisch abspeichern

 

Durch Anwählen der XdevGanttTemplate-Eigenschaft Daten bei Start laden bei VT für Daten und VT für Relationen werden sämtliche Änderungen im Gantt-Chart automatisch in der Datenbank abgespeichert, sodass Sie sich darum nicht kümmern müssen.

 

clip0582

 

 

 

Änderungen selber abspeichern

 

Mit Hilfe der VT-Methode synchronizeChangedRows( ) lassen sich sämtliche Änderungen jedoch auch später, zu einem beliebigen Zeitpunkt in der Datenbank abspeichern, z.B. durch Klicken eines Speichern-Buttons. Falls sich neben Aufgaben auch Relationen geändert haben, müssen Sie sowohl die Virtuelle Tabelle GANTTDATA, als auch die Virtuelle Tabelle GANTTRELATIONDATA persistieren. Die Speicherung muss dabei als Transaktion erfolgen.

 

@EventHandlerDelegate void button_actionPerformed(ActionEvent event) 
{
   try
   {
      new Transaction()
      {
         @Override
         protected void write(DBConnection<?> connection) throws DBException
         {
            GanttData.VT.synchronizeChangedRows(connection);
            GanttRelationData.VT.synchronizeChangedRows(connection);         
         }
      }.execute();
   }
   catch(DBException e)
   {
      Application.getLogger().error(e);
   }
}

 

 

 

Wichtige Eigenschaften

 

Relationen validieren - Prüft bei der Verknüpfung von Einträgen automatisch, ob die anhand des gewählten Relations-Typs definierte Bedingung erfüllt ist. Falls nicht, wird eine Standard-Fehlermeldung ausgegeben

Vorgangsübersicht anzeigen - Zeigt links neben dem GanttChart die Aufgabentabelle an.

Vorgänge in Übersicht editierbar - Ermöglicht das Editieren von Aufgaben in der Aufgabentabelle.

Perioden-Modell festlegen - Ermöglicht das Anlegen beliebig vieler Zeitstrahlen.

Parent Bezeichner - Öffnet einen Assistenten, in dem man per Code einen Parent Bezeichner angeben kann.

VT für Daten - Virtuelle Quell-Tabelle für die Aufgaben, standardmäßig GanttData.

Daten-Mapping - Aufruf eines Assistenten mit dem Sie festlegen, aus welchen Spalten der Virtuellen Quell-Tabelle die Informationen zu einer Aufgbabe ausgelesen werden. Insgesamt lassen sich zu einer Aufgabe 6 Informationen abspeichern, u.a. Start, Ende, DISCRIPTION und COMPLETION. Die Mit * gekennzeichneten Datenfelder ID, START, END und PARENT_ID sind Pflichtfelder, die mit einer VT-Spalte verknüpft werden müssen. Die übrigen Informationen müssen nicht zwingend übergeben werden. Wenn Sie sich die Virtuelle Termin-Tabelle GanttData generieren lassen, wird dieses Mapping automatisch durchgeführt.

clip0590

Daten beim Start laden - Über die verknüpfte Virtuelle Tabelle wird beim Zeichnen des Kalenders automatisch eine Datenbankabfrage durchgeführt, das Abfrageergebnis wird in die Virtuellen Tabelle geschrieben und die Termine werden im Kalender dargestellt.

Daten automatisch speichern - Neu angelegte sowie editierte Aufgaben werden mit dieser Option automatisch in der Datenbank gespeichert. Ansonsten werden die Änderungen nur in der Virtuellen Tabelle durchgeführt. Um die Änderungen später zu speichern, muss die Virtuelle Tabelle mit Hilfe der Methode synchronizeChangedRows( ) synchronisiert werden.

VT für Relationen - Virtuelle Quell-Tabelle für die Aufgaben, standardmäßig GantRelationData.

Relation-Mapping -  Aufruf eines Assistenten mit dem Sie festlegen, aus welchen Spalten der Virtuellen Quell-Tabelle die Informationen zu einer Relation ausgelesen werden. Insgesamt lassen sich zu einer Relation 4 Informationen abspeichern: ID, RELATION_ID, ENTRY_ID und RELATION_PARENT_ID. Alle Standardfelder sind Pflichtfelder, die mit einer VT-Spalte verknüpft werden müssen.  Wenn Sie sich die Virtuelle Kategorie-Tabelle GantRelationData generieren lassen, wird dieses Mapping automatisch durchgeführt.

clip0591

Relationen beim Start laden - Über die verknüpfte Virtuelle Tabelle wird beim Zeichnen des Gantt-Charts automatisch eine Datenbankabfrage durchgeführt, das Abfrageergebnis wird in die Virtuellen Tabelle geschrieben und die Aufgaben werden im Gantt-Chart miteinander verknüpft dargestellt.

Relationen automatisch speichern - Neu angelegte sowie geänderte Verknüpfungen werden mit dieser Option automatisch in der Datenbank gespeichert. Ansonsten werden die Änderungen nur in der Virtuellen Tabelle durchgeführt. Um die Änderungen später zu speichern, muss die Virtuelle Tabelle mit Hilfe der Methode synchronizeChangedRows( ) synchronisiert werden.