[infraTree]
Die Sektion ist nur für Container-Objekte zulässig (analog zu infraChart). Der Container wird dadurch komplett durch ein neues Baum-Objekt ersetzt. Das Objekt besteht aus zwei visuellen Teilen – einer Baumansicht, in der die (mehrstufige) Struktur von Datenobjekten angezeigt werden kann und einem optionalen Listbereich, der zusätzliche Detaildaten zum jeweils aktuell markierten Baumknoten anzeigen kann.
Die Auswahl der Baumdaten (erste Stufe und Folgestufen) und der angezeigten Detaildaten erfolgt über SQL-Kommandos, die in der INI-Datei bereitgestellt werden und über Makros mit infra Dialogdaten verknüpft werden können.
Beispiele, die im Standard aktivierbar sind:
Voraussetzung ist jeweils die SQL-Anbindung (Replikation) und die Aktivierung des infraTree-Plugins.
Die ebenfalls erforderlichen Angaben in der INI-Sektion [infraTree] der Datei TREES.INI sind im Standard enthalten, da TREES.INI in die Datei SIBPPS.INI inkludiert ist.
-
Ansicht der Strukturstückliste im Register Stückliste des TeilestammsDie Ansicht ist im Standard nicht enthalten und muss über die INI-Einstellung Frames in Sektion [PDV111] aktiviert werden (Dialog 13 einbinden).Siehe auch Einstellungskapitel zu "111 Teilestamm bearbeiten".
-
Aufträge, Angebote, Adressen, Ansprechpartner im Register Kundenakte des KundenstammsDie Ansicht im Register Kundenakte ist im Standard nicht enthalten und muss über die INI-Einstellung Frames in Sektion [AUF411] aktiviert werden (Dialog 11 einbinden).Siehe auch Einstellungskapitel zu "411 Kundenstamm bearbeiten".
Grundsätzlich kann die Baumansicht an jeder belieben Stelle in infra:NET eingebaut werden, auch in bereits vorhandene Dialoge.
Querverweise über Kontextmenü (IMA)
Über das Kontextmenü (rechte Maus) der Baum- und Listeneinträge besteht die Möglichkeit weitere Informationen zum jeweiligen Eintrag abzurufen – zum Beispiel durch den Start eines infra Programms oder einer Auswertung über eine IMA-Datei. Dazu steht (ähnlich wie bei Field- und ReportLinks) in der GlobalVariablen „GV0(GV_reportlinkobject)“ der Schlüsselwert des jeweiligen Eintrags („Value“-Spalte der zugrundeliegenden SQL-Abfrage) zur Verfügung.
Um einen entsprechenden Menüeintrag im Kontextmenü der Baum- und Listeneinträge (GridView) zu generieren, muss in der INI-Sektion [POPUP] ein Eintrag für die Grit-ID des infraTree-Containers definiert werden.
Beispiel:
[POPUP]
TREE_STUELI= "Tree Test","MsgBox(GV0(GV_reportlinkobject))",CBgDo
Besonderheit bei Kontextmenü auf Listeneinträge (GridView)
Um auch über die Listendarstellung verzweigen zu können, muss durch die dafür verwendete GridView-SQL-Abfrage eine Spalte mit dem Namen „Value“ geliefert werden, in der der jeweilige Schlüsseleintrag der angezeigten Zeilen mitgegeben wird. Die Spalte mit dem Namen „Value“ wird in der Listendarstellung ausgeblendet.
Beispiel:
SQL_GridBaukasten={
SELECT s.Pos,s.Upos,s.Member,t.Bez,s.Mng,s.MeLag,s.Member As Value FROM
STUELIS s
INNER JOIN
TEILE t ON (s.Member=t.Teil)
WHERE
s.Owner = @Value
ORDER By s.Pos, s.Upos
}
ConnectionString = Verbindungszeichenfolge
Hier kann die Verbindungszeichenfolge für den Aufbau der Datenverbindung zur SQL-Datenbank, die die zu visualisierenden Daten enthält, angegeben werden. Statt der Verbindungszeichenfolge kann auch ein infra-Makroausdruck z.B. zum Verweis auf einen INI-Eintrag angegeben werden. Dadurch kann die Verbindung flexibel angepasst werden, ohne CGW- oder SDF-Änderung.
Fehlt diese Angabe, wird in der INI-Sektion [infraTree] nach einem Eintrag „ConnectionString=…“ gesucht.
Ist auch der nicht vorhanden, wird die universelle Verbindungsangabe StdClientConnectionString des infra:NET Servers für die Verbindung zur SQL-Datenbank verwendet. Dies ist die empfohlene Vorgehensweise.
TreeView = INI-Sektion TreeView, INI-Schlüssel
Durch diese Angabe wird auf einen INI-Eintrag verwiesen, der die Beschreibungsdaten der Strukturdarstellung enthält.
[INI-Sektion TreeView]
INI-Schlüssel = TreeView-Beschreibung
GridView = INI-Sektion GridView, INI-Schlüssel
Durch diese Angabe wird auf einen INI-Eintrag verwiesen, der die Beschreibungsdaten der Listendarstellung (Detailbereich) enthält. Ohne diese Angabe oder wenn der angegeben INI-Eintrag fehlt, wird der Detailbereich ausgeblendet – es wird dann nur die Baumansicht dargestellt.
[INI-Sektion GridView]
INI-Schlüssel = GridView-Beschreibung
Prinzipieller Aufbau einer TreeView-Beschreibung
|
SQL-Query,Settings…
|
|
SQL-Query
|
Verweis auf die SQL-Abfrage(n), die die Daten für die anzuzeigende Baumstruktur (erste Stufe und Folgestufen) liefert.
Der Verweis besteht entweder nur aus einem Schlüsselwort – dann wird dieser Schlüssel in der Sektion [infraTree] vermutet – oder in runden
Klammern aus einem Sektionsnamen und einem oder zwei Schlüsselworten. Wird nur ein Schlüsselwort angegeben,
erfolgt die Anzeige des Baums einstufig. Ansonsten wird die beim ersten Schlüsselwort hinterlegte SQL-Abfrage für die erste Stufe
und die beim zweiten Schlüsselwort hinterlegte SQL-Abfrage für alle Folgestufen verwendet
(INI-Sektion der SQL-Abfragen, INI-Schlüssel für SQL-Abfrage 1.Stufe, INI-Schlüssel für SQL-Abfrage Folgestufen).
Die bei den angegebenen Schlüsselworten hinterlegten SQL-Abfragen müssen eine Sammlung von Label/Value-Paaren liefern.
„Label“-Werte werden als Texte der jeweiligen Knoten angezeigt – der zugehörige „Value“-Wert ist ein Schlüsselbegriff,
der für die weitere Auflösung des Knotens gespeichert wird.
Innerhalb der SQL-Abfragen kann mit $Macros[…] auf infra-Makros und somit auf Puffer und Globalvariablen zugegriffen werden.
|
|
Settings
|
Hier können weitere Einstellungen für die Baumdarstellung folgen.
Jede Einstellung muss durch Kommata von der nächsten Einstellung getrennt werden.
Die derzeit unterstützten Einstellungsmöglichkeiten werden im Folgenden beschrieben.
|
Einstellungsmöglichkeiten (Settings)
Für die Darstellung eines Datenbaums können weitere Einstellungen vorgenommen werden.
|
RootValue=“Wert“
|
Legt den Knotenwert („Value“) des ersten Knotens fest. Der Wert wird verwendet, um in der Detailanzeige Daten zu diesem Knoten anzeigen zu können. Bei einer Stückliste ist dies zum Beispiel die Teilenummer des obersten aufzulösenden Teils.
Mit Makros (z.B. LBUF2) kann auf infra Daten zugegriffen werden.
|
|
RootLabel=“Text“
|
Dieser Text wird als oberster Knoten angezeigt. Bei einer Stückliste ist das zum Beispiel die Teilebezeichnung des aufzulösenden Teils. Mit Makros kann auf infra Daten zugegriffen werden.
|
Aufbau einer GridView-Beschreibung
|
SQL-Query,Settings…
|
|
SQL-Query
|
Verweis auf die SQL-Abfrage, die die Daten für den derzeit markierten Baumknoten liefert. Der Verweis besteht entweder nur aus einem Schlüsselwort – dann wird dieser Schlüssel in der Sektion [infraTree] vermutet – oder in runden Klammern aus einem Sektionsnamen und einem Schlüsselwort (INI-Sektion der SQL-Abfragen, INI-Schlüssel für SQL-Abfrage).
Die bei dem angegebenen Schlüsselwort hinterlegte SQL-Abfrage kann beliebige Spalten zur Anzeige liefern. Über den Parameter „@Value“ steht der Wert des aktuell selektieren Knotens der Baumansicht in der SQL-Abfrage zur Verfügung, so dass hierüber z.B. in der Where-Klausel selektiert werden kann.
Innerhalb der SQL-Abfragen kann mit $Macros[…] auf infra-Makros und somit auf Puffer und Globalvariablen zugegriffen werden.
|
|
Settinga
|
Hier können weitere Einstellungen für die Listendarstellung folgen. Jede Einstellung muss durch Kommata von der nächsten Einstellung getrennt werden. Derzeit werden noch keine Einstellungsmöglichkeiten für die Listendarstellung angeboten.
|
Beispiel:
Das folgende einfache Beispiel zeigt die Strukturstückliste eines Teils als Baum und bei Selektion eines Knotens den zugehörigen Baukasten als Liste an. Teilenummer und Bezeichnung des aufzulösenden Teils werden im infra Datenpuffer 6 erwartet (siehe LBUF2…).
SibDef-Angabe im CGW beim zu verwendenden Container:
[infraTree]
TreeView=infraTree,Stueli
GridView=infraTree,Baukasten
Angaben in der INI-Datei:
[infraTree]
Stueli=(infraTree,SQL_Stueli,SQL_StueliSub),RootValue="LBUF2(6,3)",RootLabel="LBUF2(6,3) LBUF2(6,4)"
Baukasten=(infraTree,SQL_Baukasten)
SQL_Stueli={
SELECT RTRIM(s.Member) + ' ' + RTRIM(t.Bez) + ' (' + RTRIM(CAST((s.Mng) as char)) + ' ' + RTRIM(s.MeLag) + ')' As Label,s.Member As Value FROM
STUELIS s
INNER JOIN
TEILE t ON (s.Member=t.Teil)
WHERE
s.Owner = '$Macros[LBUF2(6,3)]'
ORDER By s.Pos, s.Upos
}
SQL_StueliSub={
SELECT RTRIM(s.Member) + ' ' + RTRIM(t.Bez) + ' (' + RTRIM(CAST((s.Mng) as char)) + ' ' + RTRIM(s.MeLag) + ')' As Label,s.Member As Value FROM
STUELIS s
INNER JOIN
TEILE t ON (s.Member=t.Teil)
WHERE
s.Owner = @Value
ORDER By s.Pos, s.Upos
}
SQL_Baukasten={
SELECT s.Pos,s.Upos,s.Member,t.Bez,s.Mng,s.MeLag FROM
STUELIS s
INNER JOIN
TEILE t ON (s.Member=t.Teil)
WHERE
s.Owner = @Value
ORDER By s.Pos, s.Upos
}