Allgemeines
Bei der Datenrückgabe der Backend-Programme an den oxaion JET Server gibt es verschiedene XML-Strukturen:
XML Struktur | Beschreibung |
---|---|
DTA | Einfache Felddaten |
TABLE | Daten einer Liste oder Tabelle |
TREE | Daten eines Baumes |
CHART | Daten eines Charts |
GANTT | Daten eines Ganttdiagramms |
FIELDS | Daten für dynamische Bildschirmkomponenten |
STREAM | Daten für beliebige Streams |
UI | Daten für dynamische XML-Dateien |
Außerdem können auf oberster Ebene unabhängig von der gewählten Struktur Fehler- bzw. Hinweismeldungen, Transaktion-Codes (<TCODE>), Bildschirmattribute usw. übertragen werden.
Strukturunabhängige Daten
Alle strukturunabhängigen Daten müssen vor der eigentlichen Datenstruktur übergeben werden. Eine Ausnahme stellen die Bildschirmattribute dar, die immer nach der Datenstruktur übergeben werden müssen.
Fehler
Ein evtl. aufgetretener Fehler ist über das <FCOD>-Tag zurückzugeben. Anhand des Fehlercodes in Verbindung mit den variablen Nachrichtendaten (<MDTA>) wird die Fehlermeldung ermittelt und dem Benutzer angezeigt. Wurde zusätzlich der Feldname (im Tag <FLDN>) mitgegeben, wird der Cursor in diesem Feld positioniert und die Lasche, auf der sich die Komponente befindet, in den Vordergrund geholt. Wird neben einem Fehler das <DTA>-Tag zurückgegeben, werden diese Daten auf das Panel eingestellt Natürlich nur dann, wenn die Ausgabedaten des Calls auch tatsächlich auf dem Panel abgestellt werden sollen.. Das <FCOD>-Tag muss immer vor dem <DTA>-Tag stehen.
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
<FCOD> | 1 | P | Fehlercode | ||||
<FLDN> | 1 | Feldname | |||||
<MDTA> | 1 | Fehlerdaten | |||||
<XSPR> | 1 | Fehlersprache |
Beispiel:
<PARM> <FCOD>U00001</FCOD> <FLDN></FLDN> <MDTA></MDTA> <DTA> <FELD1>Beispieldaten</FELD1> <FELD2>Inhalt Feld 2</FELD2> </DTA> </PARM>
Hinweismeldungen
Es können beliebig viele Hinweismeldungen über das <MESSAGES>Tag ausgegeben werden. Die Hinweismeldungen werden vor den eigentlichen Daten übergeben, also z. B. vor dem <DTA> oder dem <TABLE>-Tag. Optional kann dem <MESSAGES>-Tag das Attribut TYPE mitgegeben werden. Über dieses Attribut wird gesteuert, was passieren soll, wenn der Benutzer den Hinweisdialog mit „OK" verlässt. Wird kein TYPE übergeben, wird bei „OK" die Verarbeitung fortgesetzt. Bei TYPE="AGAIN" wird der vorhergehende Call wiederholt, wenn der Hinweis-Dialog über „Abbrechen" verlassen wird, bricht die Verarbeitung sofort ab. Wird TYPE="INFO" übergeben, so erscheint ein Hinweisdialog, der ausschließlich eine Bestätigungstaste besitzt. Dieser Typ wird für Benachrichtigungen nach Abschluß einer Transaktion benutzt, bei denen ein Eingriff des Benutzers weder sinnvoll noch möglich ist.
Kurze Übersicht der 3 Messagetypen:
TYPE | OK | Abbrechen |
---|---|---|
default | Weiter mit der nächsten Aktion | Transaktionssequenz beenden |
AGAIN | Aktuelle Aktion erneut ausführen | Transaktionssequenz beenden |
INFO | Weiter mit der nächsten Aktion | – |
Beispiel:
<PARM> <MESSAGES TYPE="AGAIN"> <MSG MCOD="ADR1907" MDTA="" /> <MSG MCOD="ADR1907" MDTA="" /> <MSG MCOD="ADR1907" MDTA="" /> ... </MESSAGES> <DTA> <FELD1>Beispieldaten</FELD1> <FELD2>Inhalt Feld 2</FELD2> </DTA> </PARM>
Bildschirmattribute
Über Bildschirmattribute können Oberflächen-Komponenten zur Laufzeit verändert werden. Es ist möglich, Komponenten zu verstecken (H = hidden), zu sperren (P = protected) oder als Pflichfelder zur deklarieren (M = mandatory).
Innerhalb der Bildschirmattribut-Struktur wird der Feldname als Tag mit dem zugehörigen Bildschirmattribut übergeben.
Bildschirmattribute können entweder als einzelne Struktur oder nach der <DTA>-Struktur übergeben werden.
Ein Sonderfall der Bildschirmattribute ist das M-Attribut (=Pflichtfeld). Normalerweise werden Pflichtfelder über die UID-Verwaltung gepflegt. Nur in einigen Ausnahmefällen (z. B. Auskunftsprogramm-Treiber) steht das Pflichtfeld erst zur Laufzeit fest.
Beispiel:
<PARM> <DTA> <FELD1>Beispieldaten</FELD1> <FELD2>Inhalt Feld 2</FELD2> </DTA> <ATR> <KDNR ATR="P" /> <FINR ATR="P" /> <ADNR ATR="H" /> </ATR> </PARM>
Transaktions-Codes
Über Transaktions-Codes kann ein Backend-Programm den weiteren Verlauf einer Transaktion steuern. Z. B. könnte der vom Benutzer eingegebene Kunden-Alphamatchcode nicht eindeutig sein, worauf das Backend-Programm rückmelden muss, dass der Personenkonten-Matchcode aufgerufen werden soll. Oder das Erfassen einer Auftragsposition erfordert die zusätzliche Angabe von Sachmerkmalen. Für solche Transaktions-Steuerungen steht der Transaktions-Code (kurz T-Code) zur Verfügung. Jeder vom Backend-Programm verwendete Transaktions-Code muss in der entsprechenden XML-Datei via Transaction-Handler abgefragt werden, wenn individuell darauf reagiert werden soll. Ansonsten läuft der T-Code ins Leere. Z. B. muss in der XML-Datei definiert werden, dass bei dem Transaktions-Code „ERF-SACHMERKMAL" die Sachmerkmalsverwaltung als modaler Dialog geöffnet werden soll. Eine Ausnahme bildet der Transaktions-Code „*MC", der auch ohne explizite Angabe in der UID-XML gültig ist und einen Matchcode als modalen Dialog öffnet.
Wenn neben dem Transaktions-Code noch eine Daten-Struktur (also z. B. DTA, TABLE ...) übergeben wird, werden zuerst die dort enthaltenen Daten eingestellt bzw. allgemeiner formuliert: für die weitere Verarbeitung verwendet.
Beispiel:
<PARM> <TCODE>ERF_SACHMERKMAL</TCODE> <DTA> <FELD1>Beispieldaten</FELD1> <FELD2>Inhalt Feld 2</FELD2> </DTA> </PARM>
XML Struktur DTA
Über das <DTA>-Tag kann eine Schlüssel/Wert-Sturktur an den JET-Client übergeben werden. Das <DTA>-Tag eignet sich deshalb für das Einlesen eines Datensatzes.
Besonderer Bedeutung kommt dem Tag <TITLE> zu, dessen Inhalt im Programmreiter als Titel des Programmes eingestellt wird.
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
<.>...</.> | 1..n | Durch oxaion -Programm spezifizierte Tag/Value-Paare |
Beispiel:
<PARM> <DTA> <NAME>Beispieldaten</NAME> <TITLE>Beispiel für RumpfdatenXML</TITLE> <FLD1>Inhalt eins</FLD1> <FLD2>Inhalt zwei</FLD2> ... </DTA> </PARM>
XML Struktur TABLE
Über das <TABLE>-Tag können Tabellen (Daten für Auflistungen der Form Zeile/Spalte) zurückgegeben werden. Tabellen werden im Regelfall nicht komplett eingelesen, sondern bei Bedarf „nachgeladen". Der erste Lesevorgang der Tabelle muss das <HEADER>-Tag beinhalten, in dem jede Spalte definiert werden muss.
Soll die Tabelle variable Sichten enthalten, so muss für jede Zeile die Spalten aller Sichten zurückgeliefert werden.
Im <HEADER> werden die einzelnen Spalten so definiert, dass sie der XML-Notation der Komponenten aus den XML-Maskenbeschreibungen gleichen.
<TABLE>
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
<STOP> | 0..1 | keine | Nach dem letzten Satz, damit der Client nicht versucht, weitere Datensätze einzulesen. | ||||
<TOP> | 0..1 | keine | Wenn beim Rückwärtsblättern keine weiteren Sätze mehr vorhanden sind. | ||||
<HEADER> | 0..n | Kopf | |||||
<ROW> | 0..n |
<HEADER>
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
NbrSights | A | Integerwert | Anzahl vorhandener Sichten | ||||
Selected | A | Boolean | Zeigt an, ob eine Selektierung vorhanden ist | ||||
Positioned | A | Boolean | Zeigt an, ob in der Tabelle aufgesetzt wurde! | ||||
<SIGHT> | 0..n | Sicht; Anzahl der <SIGHT>-Tags entspricht dem NbrSights-Wert |
<SIGHT>
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägung | Beschreibung |
---|---|---|---|---|---|---|---|
<COLUMN> | 0..n |
<ROW>
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
FORMAT | A | Enthält die Farbformatierung der Zeile als String: „BG red FG blue". BG steht für Background, FG für Foreground. | |||||
SELECTED | A | 0..1 | Zeigt an, ob die Spalte selektiert ist | ||||
<VASI> | 0..1 | Die angezeigte „variable Sicht" | |||||
<KEY> | 0..1 | Spaltenschlüssel | |||||
<.>...</.> | 0..n | Programmspezifische Tags |
<KEY>
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
<.>...</.> | 0..n | Programmspezifische Tags | |||||
<REMOVE> | 0..1 | Zeile mit angegebenen Schlüssel wird entfernt | |||||
<.>...</.> | 0..n | Programmspezifische Tags |
<COLUMN>
Die Bedeutung und Verwendung der Angaben einer COLUMN entspricht denen des <component>-Elementes einer XML-Maskenbeschreibung und ist dort nachzuschlagen.
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung | |||
---|---|---|---|---|---|---|---|---|---|---|
<NAME> | 0..1 | |||||||||
<ALIGN> | 0..1 | *LEFT | Ausrichtung | |||||||
*RIGHT | ||||||||||
<LABEL> | 0..n | Überschrift der Spalte, | ||||||||
<TYPE> | 0..1 | CHECK | Typ der Spalte. CHECK für Checkboxen, IMAGE für Bilder, N(…,…) für numerische und A(…) für alphanumerische Felder. Wird von den Export- und Druckfunktionen zur Formatierung verwendet. | |||||||
IMAGE | ||||||||||
N(…,…) | ||||||||||
A(…) | ||||||||||
<WIDTH> | 0..1 | Die Gesamtbreite eine Spalte. (z. B. bei zusammengesetzten Spalten die Summe der Einzelspalten). Wird zur Berechnung der Spaltenbreite in der Tabelle verwendet. | ||||||||
<SELECTABLE> | 0..1 | FALSE | TRUE | Bei TRUE ist es möglich, nach der Spalte zu selektieren. | ||||||
FALSE | ||||||||||
<SELECTED> | 0..1 | FALSE | TRUE | Gibt an, ob nach dieser Spalte selektiert wurde. Anhand des Tags wird das Selektionsicon gesetzt: | ||||||
FALSE | ||||||||||
<DESCRIPTION> | 0..1 | Tooltiptext für die Spalten sowie Eingabefelder der Tabelle | ||||||||
<SORTABLE> | 0..1 | FALSE | TRUE | Gibt an, ob eine Spalte sortierbar ist. | ||||||
FALSE | ||||||||||
<SORTED> | 0..1 | ASC | Gibt die Spaltensortierung an: „ASC" für Aufsteigend; „DESC" für Absteigend. Möglich sind neben der Hauptsortierung auch beliebig viele Untersortierungen mit einer Nummer als Sortierreihenfolge. Beispiel: 1 Hauptsort: „ASC" und 2 Untersortierungen: „DESC 1", „ASC 2". | |||||||
DESC | ||||||||||
Untersortierungen: ASC n; DESC n; usw... | ||||||||||
<EDITABLE> | 0..1 | TRUE | Gibt an, ob Spalte editierbar ist. | |||||||
FALSE | ||||||||||
<LENGTH> | 0..1 | Integerwert | Die eingebbare Datenlänge der editierbaren Spalte. Greift nur, falls <EDITABLE>=TRUE | |||||||
<option> | 0..1 | Format der Eingabekomponente siehe Tabelle <option>. Greift nur, falls <EDITABLE>=TRUE | ||||||||
<CLS> | 0..1 | Die Feldklassen z.B. „AUNR" | ||||||||
<HELP> | 0..1 | Pfad und Name der HTML-datei bezüglich dieser Spalte | ||||||||
<SUM> | 0..1 | Enthält die Summe der Spalte. Wenn dieses Tag vorhanden ist, wird die Summe der Spalte angezeigt. | ||||||||
<MC> | 0..1 | TRUE | Gibt an, ob es sich um ein Matchcodefeld handelt | |||||||
FALSE |
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
Name | A | 0..1 | P | „format" | Über das name-Attribut können Formatangaben, Typus, etc über die editierbare Komponente angegeben werden. | ||
„decimal" | |||||||
„allow-sign" | |||||||
... alle bei Eingabekomponenten möglichen Ausprägungen |
Beispiel:
<TABLE> <HEADER NbrSights="1" Title="FRD110"> <SIGHT> <COLUMN> <NAME>KOBENR</NAME> <TYPE>A(11)</TYPE> </COLUMN> </SIGHT> </HEADER> <ROW> <KEY> <CRLS>2323</CRLS> <CRFM>EKOPFR</CRFM> </KEY> <KOBENR>Text Spalte eins</KOBENR> </ROW> <STOP /> </TABLE>
XML Struktur TREE
Über das Tree-Tag kann eine Baumstruktur an den JET-Client zurückgegeben werden. Jedes Element verfügt über eine variable Sicht, einen Schlüssel und unter Umständen über Child-Elemente.
Besondere Bedeutung kommt dem Tag <KEYTYPE> innerhalb des Schlüssels zu, da über dieses Tag der Typ des Baumelementes definiert wird. In der XML-Datei kann z. B. hinterlegt werden, dass alle Baumelemente mit dem KEYTYPE „M_POS" ein spezielles Icon erhalten, bzw. welche Popup-Menüs für dieses Element gültig sind.
Das Einlesen des Baumes erfolgt im Regelfall nicht komplett sondern bei Bedarf. Zu Beginn wird das oberste Vaterelement mit einer passenden Anzahl an Kindelementen auf erster Ebene eingelesen. Scrollt der Benutzer nach unten, erfolgt ein Weiterlesen auf erster Ebene. Beim Öffnen eines Kindelementes erfolgt das Einlesen der Elemente der zweiten Ebene, wobei auch dies nicht komplett, sondern Blockweise erfolgt. Um identifizieren zu können, ob ein Baumelement Kindelemente enthält, die nur noch nicht eingelesen wurden, wird dem Element das Attribut SUBTREES="TRUE" mitgegeben.
Um Baumelementen Kindelemente zuzuordnen, wird das <CHILDREN>-Tag verwendet. Wurden alle Kindelemente der Ebene eingelesen, muss das <STOP />-Tag übergeben werden.
Der im <VASI>-Tag übergebene String wird zur Darstellung des Tree-Knotens im Client verwendet. Der Text wird dabei vom Server aus den jeweiligen EXPLORER-Sichten zusammengebaut und dem Client übergeben. Sofern die Sicht mehrere Sichtnummern hat enthält der String |-Zeichen (Pipe-Zeichen). Diese werden vom Client in Zeilenumbrüche übersetzt, wodurch es möglich ist Tree-Knoten mehrzeilig anzuzeigen.
<TREE>
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
SUBTREES | A | P | FALSE | TRUE | |||
FALSE | |||||||
<VASI> | 0..1 | Die angezeigte „variable Sicht" | |||||
<KEY> | 1 | P | Der Schlüssel des Knotens | ||||
<RECORD> | 1 | P | Bei der Verarbeitung eines Elements zusätzlich zu den Werten des <KEY>-Tags zu beachtende Werte | ||||
<CHILDREN> | 0..1 | falls SUBTREES="TRUE" | |||||
EXPANDED | A | 0..1 | FALSE | TRUE | Tree aufgeklappt/ geschlossen | ||
FALSE | |||||||
FORMAT | A | Enthält die Farbformatierung der Zeile als String: „BG red FG blue". BG steht für Background, FG für Foreground. | |||||
Positioned | A | TRUE | Gibt an, ob im Tree aufgesetzt wurde. | ||||
FALSE | |||||||
CLS | 0..1 | Die Feldklassen z.B. „AUNR" |
<CHILDREN>
Bezeichnung | Attr. | # | Pflicht | Über-schreib-bar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
<TREE> | 0..n | ||||||
<STOP> | 1 | P | keine | eindeutige Kennzeichnung, dass keine Daten mehr vorhanden sind |
<KEY>
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
<.>...</.> | 1..n | p | Programmspezifisch | ||||
<REMOVE> | Teilbaum mit dem angegebenen Schlüssel wird komplett aus Baum entfernt. | ||||||
<REPLACE-ALL-CHILDREN> | Alle Kindelemente werden entfernt und durch die übermittelten ersetzt | ||||||
<KEYTYPE> | 1 | P |
Beispiel:
<TREE SUBTREES="TRUE"> <KEY> <KEYTYPE>A</KEYTYPE> <KE>001</KE> <KEY> <CHILDREN> <TREE> <KEY> <KEYTYPE>P</KEYTYPE> <FFMT>AK</FFMT> </KEY> <VASI>Informationen</VASI> </TREE> <TREE SUBTREES="TRUE"> <!—Element enthält Kindelemente,-> <KEY> <!—die bei Bedarf eingelesen werden-> <KEYTYPE>P</KEYTYPE> <FFMT>A2</FFMT> </KEY> <VASI>Informationen 2</VASI> </TREE> <TREE> <KEY> <KEYTYPE>P</KEYTYPE> <FFMT>A3</FFMT> </KEY> <!-- Element soll mehrzeilig angezeit werden --> <VASI>Information 3.1|Information 3.2</VASI> </TREE> <STOP /> </CHILDREN> </TREE>
XML Struktur CHART
Über das <CHART>-Tag werden Charts übergeben.
Die Struktur gliedert sich in den HEADER- und den VALUES-Bereich. Der HEADER-Bereich definiert die Punkte der Y-Achse (bzw. bei der Anzahl von Ausprägungen je X-Wert bei Multi-Charts) während im VALUES-Bereich die X-Achsen-Definition und die Ausprägungen übergeben werden. Die Position einer Merkmalsausprägung(VALUE) innerhalb eines VALUES-Abschnittes bestimmt die Zugehörigkeit. Im obigen Beispiel gilt jedes 1. VALUE für das Element Audi und jedes 2. VALUE für das Element BMW pro Gruppierung.
Das Einlesen erfolgt im Regelfall nicht komplett, sondern bei Bedarf, also z. B. wenn der Benutzer weiterscrollt. Beim ersten Lesevorgang muss das <HEADER>-Tag übergeben werden, damit die Y-Achse dargestellt werden kann.
<CHART >
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
<HEADER> | Nicht unbedingt notwendig | ||||||
<VALUES> | 1..n | P | Ausprägungsgruppierung |
<HEADER >
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
<DEC> | 0..1 | P | Anzahl der Nachkommastellen | ||||
<MIN> | 0..1 | P | minimaler Wert | ||||
<MAX> | 0..1 | P | maximaler Wert | ||||
<ELEMENT > | 1..n | P | Ein Merkmal eines Diagramms |
<VALUES >
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
<LABEL > | 0..1 | Bezeichnung einer Gruppierung von Merkmals-Ausprägungen. | |||||
<VALUE> | 1..n | P | Wert einer Merkmalsausprägung | ||||
<KEY> | 1..n | P | Schlüssel für eine Gruppe |
<ELEMENT >
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung | |
---|---|---|---|---|---|---|---|---|
<LABEL > | 0..1 | Bezeichnung eines Merkmals | ||||||
<KEY > | 1 | P | Schlüssel für dieses Merkmal |
Beispiel:
<CHART> <HEADER> <ELEMENT> <LABEL>Audi</LABEL> <KEY> <KFLD>S1</KFLD> </KEY> </ELEMENT> <ELEMENT> <LABEL>BMW</LABEL> <KEY> <KFLD>S1</KFLD> </KEY> </ELEMENT> </HEADER> <VALUES> <LABEL>1999</LABEL> <VALUE>150</VALUE> <VALUE>300</VALUE> <KEY></KEY> </VALUES> <VALUES> <LABEL>2000</LABEL> <VALUE>200</VALUE> <VALUE>350</VALUE> <KEY></KEY> </VALUES> </CHART>
XML Struktur GANTT
Über das <GANTT>-Tag werden Ganttdiagramme übergeben. Alle Daten des Diagramms werden von einem GANTT-Element umschlossen.
<GANTT >
Die Struktur enthält als erstes einen Header. Dieser ist bei der ersten Datenübertragung Pflicht und bei den folgenden optional. Im Header u.a. werden das Format der Daten, das Format der Skala, der Wertebereich und die Legendenelemente definiert.
Danach können beliebig viele Entity-Elemente folgen. Diese stellen eine Zeile des Diagramms dar. Innerhalb dieser Entities werden die eigentlichen Werte in den Value-Tags definiert.
Als letzte Elemente sind auf dieser Ebene <XSTOP/> und <YSTOP/>. Dieses geben jeweils an, ob in der jeweiligen Richtung noch Daten bei Bedarf nachgeladen werden müssen. Wenn die Tags nicht vorhanden sind, so wird davon ausgegangen, dass noch Daten nachzuladen sind.
Bezeichnung | Attr. | # | Pflicht | Über-schreib-bar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
<HEADER> | 0..1 | Bei der ersten Übertragung Pflicht | |||||
<ENTITY> | 0..n | Eine Zeile des Diagramms | |||||
<XSTOP/> | 0..1 | false | Wenn angegeben sind keine weiteren Daten in horizontaler Richtung nachzuladen. | ||||
<YSTOP/> | 0..1 | false | Wenn angegeben sind keine weiteren Daten in vertikaler Richtung nachzuladen. |
<HEADER >
Im HEADER-Element werden die Rahmenparameter (Datenformat, Skala, …) des Diagramms festgelegt. Als Datenformat sind die folgenden Ausprägungen möglich:
- DATE (YYYY-MM-DD)
- MONTH (CYYMM)
- WEEK (CYYWW)
- YEAR (CYY)
- TIMESTAMP (YYYY-MM-DD-HH.MM.SS.SSS)
- NUMBER (Z.Z)
In der XML müssen dann alle Wertangaben (min, max, from, to, …) in dem angegebenen Format erfolgen.
Im SCALE-Element kann der Skalentyp angegeben werden. Dieser muss kompatibel zum Datentyp sein. Bspw. kann nicht eine „FLOAT"-Skala für Daten des Typs „WEEK" verwendet werden. Im Folgenden sind die gültigen Kombinationen aufgelistet (die Art der Skalen sollte offensichtlich sein):
Datenformat | Gültige Skalen |
---|---|
DATE | YEAR |
NUMBER | FLOAT |
Zum Beispiel sind also alle Datumsformate mit allen Datumsskalen kompatibel.
Über STEPPING und ZOOM können optional die Darstellung beeinflusst werden. Im Standard wird für jede Einheit der Skala ein Vertikaler Strich gezeichnet und bei ausreichendem Platz auch beschriftet. Eine Einheit entspricht normalerweise 40 Pixeln. D.h. bei einer Wochenskala wird alle 40 Pixel eine Linie für die nächste Woche eingezeichnet. Wenn man nun eine 2-wöchige Skala möchte, so könnte man als STEPPING 2 angeben. Wenn die Daten nun zusätzlich noch zu gestaucht (gesteckt) erscheinen, so kann man über einen ZOOM-Wert >1 (<1) die Breite einer Einheit entsprechend anpassen.
Natürlich beeinflussen diese Einstellungen nicht nur die Skalen sondern auch die Darstellung der Daten. Ein Beispiel: Ein Eintrag mit einer Dauer von 3 Wochen wird normalerweise (bei einer Wochenskala) als Balken mit 120 (3 * 40) Pixel Länge angezeigt. Um den Balken auf 60 zu verkürzen konnte entweder das STEPPING auf 2 gesetzt werden, der ZOOM-Faktor auf 0.5 festgelegt werden oder eine Kombination aus beidem (STEPPING auf 2 und ZOOM-Faktor auf 0.25).
Über die ELEMENT-Tags werden die Einträge der Legende definiert (siehe weiter unten).
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
FORMAT | A | 1 | P | Das Format der gelieferten Daten. Mögliche Ausprägungen siehe oben. | |||
<MIN> | 1 | P | minimaler Wert | ||||
<MAX> | 1 | P | maximaler Wert | ||||
<SCALE> | 1 | P | Das Format der Skala. Dieses Format muss zum Datenformat kompatibel sein (s.o.). | ||||
<STEPPING> | 0..1 | 1 | 1..n | Schrittweite in Skalaeinheit. | |||
<ZOOM> | 0..1 | 1 | FLOAT | Faktor zur Beeinflussung der Einheitsgröße in horizontaler Richtung. | |||
<ELEMENT> | 1..n | P | Ein Legendenelement. |
<ELEMENT>
Die Element-Elemente definieren die Einträge in der Legende. Innerhalb des Elements wird die Beschriftung des Legendenelements angegeben. Das FORMAT-Attribut bestimmt die Farbe des Eintrags und sollte ein vom CmdColorPool verarbeitbarer Wert sein. Für Diagramme wurden dafür speziell die folgenden Farben definiert:
Hell | Normal | Dunkel |
---|---|---|
chartyellow0 | chartyellow1 | chartyellow2 |
chartgreen0 | chartgreen1 | chartgreen2 |
chartred0 | chartred1 | chartred2 |
chartblue0 | chartblue1 | chartblue2 |
Dabei sollten innerhalb eines Diagramm idealerweise entweder Helligkeitsvariationen der selben Farbe (z.B. chartyellow0, chartyellow1 und chartyellow2) ODER verschiedene Farben innerhalb einer Helligkeitsstufe (z.B. chartyellow0, chartgreen0 und chartred0) verwendet werden. Dies sind natürlich nur Empfehlungen und je nach Diagrammtyp kann es auch sinnvoll sein andere Kombinationen zu verwenden.
Es erfolgt zwar keine Überprüfung, aber dennoch sollten in Diagramm keine Formate (sprich Farben) vorkommen, die nicht hier im Header definiert wurden, d.h. die Formate der Legendenelemente und der Balken sollte konsistent sein.
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
FORMAT | A | 1 | P | Die Farbe des Legendeneintrags |
<ENTITY>
Das Entity stellt eine Zeile eines Ganttdiagramms dar. Es enthält über die VALUE-Tags die eigentlichen Werte dieser Zeile. Über das GROUP-Element können Gruppen von Balken definiert werden, die dann bei einem Verschiebevorgang auch gemeinsam verschoben werden. Das GROUP-Element selbst kann wiederum nur VALUE-Elemente enthalten.
Über LABEL kann eine Beschriftung angegeben werden und über KEY sollte ein möglichst eindeutiger Schlüssel angegeben werden. KEY selbst kann beliebige Elemente enthalten. Zwei Keys sind genau dann gleich, wenn beide genau die gleichen Elemente mit den gleichen Ausprägungen enthalten (d.h. die Schnittmenge ist gleich der Einzelmenge).
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
<LABEL> | 0..1 | Die Beschriftung der Zeile | |||||
<VALUE> | 0..n | Beliebig viele Werte | |||||
<KEY> | 0..1 | Der möglichst eindeutige Schlüssel für dieses Zeile | |||||
<GROUP> | 0..n | Eine Balkengruppe |
<VALUE>
Ein einzelner Wert des Diagramms. Dabei müssen in jedem Fall FROM (Startwert), TO (Endwert) und FORMAT (Farbe) angegeben werden. FROM und TO müssen in dem in HEADER spezifizierten Format sein. Das FORMAT sollte eines sein, welches im HEADER als Legendenelement spezifiziert wurde.
Eine Ausnahme bildet das Format „transparent" das verwendet werden kann um eine Beschriftung über eine Balkengruppe hinweg zu erstellen. Der Balken ist dann durchsichtig und es ist nur die Beschriftung zu sehen. Damit das funktioniert, sollte der Transparente Balken vor den Balken definiert werden die er überdecken soll.
Für den KEY gilt das gleiche wie beim ENTITIY (s.o.).
Bezeichnung | Attr. | # | Pflicht | Überschreibbar | Default | Ausprägungen | Beschreibung |
---|---|---|---|---|---|---|---|
FROM | A | 1 | P | Der Startwert | |||
TO | A | 1 | P | Der Endwert | |||
FORMAT | A | 1 | P | Das Format (die Farbe) des Balkens | |||
<LABEL> | 0..1 | Die Beschriftung des Balkens | |||||
<TOOLTIP> | 0..1 | Ein Tooltip für den Balken | |||||
<KEY> | 0..1 | Der möglichst eindeutige Schlüssel für diesen Wert |
Beispiel:
<GANTT> <HEADER FORMAT="TIMESTAMP"> <MIN>{*}2003-01-02-16.00.00.000000{*}</MIN> <MAX>{*}2003-01-05-00.00.00.000000{*}</MAX> <SCALE>{*}HOUR{*}</SCALE> <STEPPING>{*}2{*}</STEPPING> <ZOOM>{*}0.6{*}</ZOOM> <ELEMENT FORMAT="chartred1">{*}Bearbeitungszeit{*}</ELEMENT> <ELEMENT FORMAT="chartgreen1">{*}Transportzeit{*}</ELEMENT> [...] </HEADER> <ENTITY> <LABEL>{*}Arbeitsplatz 1{*}</LABEL> <KEY> <CRLS>{*}7501{*}</CRLS> <CRFM>{*}PZKPAR{*}</CRFM> <SSID>{*}KHCPGM3561310001{*}</SSID> </KEY> <GROUP> <VALUE FROM="2003-01-03-03.30.00.000000" TO="2003-01-03-06.00.00.000000" FORMAT="transparent"> <KEY> <CRLS>{*}2611{*}</CRLS> </KEY> LABEL>{*}Ein langer Testsatz{*}</LABEL> <TOOLTIP>{*}<HTML>Ein* *Test<BR >Ein* *TestSATZ{*}</TOOLTIP> </VALUE> <VALUE FROM="2003-01-03-03.30.00.000000" TO="2003-01-03-0<ac:structured-macro ac:name="anchor" ac:schema-version="1" ac:macro-id="da496250-0a68-4af0-b963-5ea810379f85"><ac:parameter ac:name="">_GoBack</ac:parameter></ac:structured-macro>5.00.00.000000" FORMAT="chartred1"> <KEY> <CRLS>{*}1511{*}</CRLS> </KEY> <TOOLTIP>{*}Ein Test 1{*}</TOOLTIP> </VALUE> [...] </GROUP> </ENTITY> <XSTOP /> <YSTOP /> </GANTT>