+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

LL18 Gantt: In welcher Form müssen die Beziehungen definiert werden?


(Guest) #1

Hallo,

nachdem ich die erste Hürde - das Übergeben von mehreren Tabellen an einen Report - bewältigt habe, gibt es eine weitere Frage.

Ein Gantt-Diagramm soll erstellt werden.

    1. Ebene = Organisationseinheit
      ++ 2. Ebene = Produkt
      +++ 3. Ebene = Baustelle

Der Code sieht (gekürzt) so aus:
LOCAL iDF := CHR(34) + “{0}” + CHR(34) AS STRING
LOCAL pMF := “@{0}” AS STRING

LOCAL llProv AS combit.ListLabel18.DataProviders.DbCommandSetDataProvider
llProv := combit.ListLabel18.DataProviders.DbCommandSetDataProvider{}
LOCAL cmdText AS STRING
cmdText := "SELECT * FROM vLPP_PRODUKTION where PRODUKTIONSSTATUS = ‘Neu’ OR PRODUKTIONSSTATUS = ‘In Planung’ OR PRODUKTIONSSTATUS = ‘In Produktion’ "
cmd1 := SELF:_fbConnection:CreateCommand()
cmd1:CommandText := cmdText
cmd2 := SELF:_fbConnection:CreateCommand()
cmd2:CommandText := cmdText

llProv:AddCommand(cmd1, “org”, iDF, pMF)
llProv:AddCommand(cmd2, “prod”, iDF, pMF)
llProv:AddRelation(“ord2prod”, “org”, “prod”, “PRODUKTIONSAUFTRAG_ID” ,“PRODUKTIONSAUFTRAG_ID” )

LOCAL report AS combit.ListLabel18.ListLabel
report := combit.ListLabel18.ListLabel{}
report:DataSource := llProv
report:Design()

Über zwei Ebene funktioniert das, aber wie kann ich eine dritte Ebene einziehen? Wenn ich drei Tabellen verknüpfe, wird zwar eine dritte Ebene angezeigt, aber ich kann nicht einstellen, welches Feld hier reingeschrieben werden soll.

Danke

Niko


(Guest) #2

Sehr geehrter Herr Kern,

vielen Dank für Ihren Beitrag.

Eine dritte Ebene einzubeziehen ist ausschließlich bei der Verwendung selbstrelationaler Tabellen möglich. Zwei Ebenen können auch über zwei miteinander verknüpfte Tabellen dargestellt werden.

In Ihrem Fall würde dies bedeuten entweder zwei der drei Ebenen zusammenzufassen oder mit einer selbstrelationalen Ebene zu arbeiten.

Mit freundlichen Grüßen

Patrick Preuschoff
Technischer Support
combit GmbH


(Guest) #3

Sehr geehrter Herr Preuschoff,

mir sagt der Begriff “selbstrelationale Tabellen” nichts. Ich nehme an, dass damit 1 Tabelle gemeint ist, die in einer Parent-Child Relation zusammengehängt wird.

In der List&Label Beispiel-Anwendung ist unter den erweiterten Beispielen ein Gantt-Diagramm mit drei Ebenen.

Können Sie dazu den Code zeigen, mit dem die Datenquelle zusammengestellt wird?

Besten Dank im Voraus.

Nikolaus Kern


(Guest) #4

Sehr geehrter Herr Kern,

vielen Dank für Ihren Beitrag.

Sie finden die Datenstruktur in einer Access-Datenbank ("…\combit\LL18\Programmierbare Beispiele und Deklarationen\gantt.mdb" -> bspw. Tabelle ‘Project’). Hierbei besteht eine 1:n-Relation zwischen den Feldern ‘ID’ und ‘ParentID’ innerhalb einer Tabelle als ‘direkte Beziehung’.

Wenn Sie sich die Eigenschaft ‘Datenquelle’ des Gantt-Diagramms ‘Projekt’ aus der Beispielanwendung ansehen, werden Sie bemerken, dass es hierbei möglich ist die Verschachtelung unendlich fortzuführen - dies ist hierbei nicht auf eine bestimmte Anzahl von Ebenen begrenzt, insofern eine zu sich selber in Beziehung stehende Tabelle verwendet wird.

Mit freundlichen Grüßen

Patrick Preuschoff
Technischer Support
combit GmbH