Die drei Schnittstellen ACOUNTRY, ALANGUAGES, ACURRENCIES für den Zugriff auf die Tabellen TABCOUNTRY, TABLAN, TABCUR sind vom Typ 'Datenzugriff'.
Die Anlageprozesse sind identisch.
Es unterscheiden sich lediglich der Tabellenname und die Liste der selektierten Felder.
1. Anlage der Schnittstellendaten
2. Tabellenauswahl
3. Speichern
4. Generierung des Zugriffs nach der Erfassung der verwendeten Felder
5. Speichern und Freigabe
6. Generierung der Felder mithilfe des Menüs Tools\<field>-Token anlegen
Typ
Tabellenzugriff
Tabellencode
TABCOUNTRY, TABLAN, TABCUR
Veröffentlichungsname
Per Default TABCOUNTRY, TABLAN, TABCURRENCY , aber änderbar
Meldungsanzeige
Alle
Zugriff geschützt
Nein
Zugriff generieren
Auswahl der Felder und Generierung des Webservice per Klick auf OK
Der Button 'Zugriff generieren' führt folgende Bearbeitungsschritte durch:
Die Entitäten ACOUNTRY, ALANG, ACURRENCY werden analog zu den Schnittstellen angelegt.
Es unterscheiden sich lediglich der Schnittstellenname und die Liste der selektierten Felder.
1. Anlage der Entität vom Typ 'Datenzugriff' auf Basis der Schnittstelle.
Die Entität wird zum Speichern der Abfragedaten in der Tabelle verwendet.
2. Feldzuordnung
Hilfe: Menü Tools\Eingabehilfe
3. Erfassung des Schlüsselfeldes der Entität in der Tabelle 'Felder (Auswahl)'.
4. Speichern und Freigabe
Für die Anzeige der Flagge muss ein <field>-Token COUNTRYFLAG vom Typ 'Bildzugriff' angelegt werden. Weiterhin ist ein Paramter für die Generierung einer URL für den Zugriff auf die entsprechende Bilddatei (.gif) notwendig.
Das Feld COUNTRYFLAG wird in ein <img>-Tag eingefügt.
Parametrierung des Tokens:
in unserem Fall werden die Flaggendateien im FLAGS-Ordner des HTML-Verzeichnisses gespeichert und sind mit CODEPAYS.gif benannt
Freigabe des Feldes nach der Anlage
Das Feld COUNTRYFLAG gehört nicht zur Schnittstelle und muss bei Anlage der Entität berechnet werden.
Es reicht aus, das Feld COUNTRYFLAG zu Entität ACOUNTRY hinzuzufügen und mit dem Ländercodefeld CRY zu 'mappen'.
Beim Mapping fügt der XTEND-Server der Entität das Feld COUNTRYFLAG hinzu und belegt dieses mit dem Ländercode.
Bei der Anzeige wird das Feld im Attribut src des <img>-Tags in eine URL umgewandelt, die auf die Datei CODEPAY.gif zeigt.
<img height="25" width="40"
src="/xtend/data/remote/SOLSUPV6/SUPERV/X_TEND/X_HTML/ASAMPLE/FRA/FLAGS/ATF.gif"/>
In diesem Beispiel zeigt die URL direkt auf die Datei des X3-Servers.
Die <block>-Token werden in die HTML-Seite eingefügt. Die <block>-Token stoßen die Abfrage an X3, das Datenlesen und die Datenanzeige an.
1. Block anlegen
2. Auswahl- und Sortierkriterien hinzufügen
3. Speichern und Freigabe
In unserem Beispiel haben wir den Block ABLKCOUNTRIES mit mehreren Datensätzen angelegt, der auf die Entität ACOUNTRY zeigt und die Datenblätter auswählt, die mindestens einen CRY-Code aufweisen (CRY >= AA).
In unserer Testdatenbank gibt es mehrere Codes mit weniger als zwei Zeichen.
Um die Sortierung nach Ländercodes zu ermöglichen, haben wir eine aufsteigende Sortierung nach dem Standardländercode CRY parametriert und die Änderung der Sortierung durch einen dynamischen Link zugelassen.
Die Tabellensortierung ist mit den Token für dynamische Links ADLKCOUNTRYSORTDW und ADLKCOUNTRYSORTUP möglich.
Sortierungstyp
Feld
Sortierung änderbar
Ja
Sortierungsfeld
CRY
Der Block ABLKCOUNTRIES ist als Hauptblock der Website ACOUNTRIES definiert. Daher kann für die Adressierung dieses Blocks der Alias AMAIN anstatt des Blocknamens verwendet werden:
Die Blöcke ABLKLANG und ABLKCURRENCY umfassen jeweils einen Datensatz. Abhängig vom Sprachcode (LAN) und vom Währungscode (CUR) der im Hauptblock AMAIN_ (Block ABLKCOUNTRIES) selektierten Zeile wählen ABLKLANG und ABLKCURRENCY die Entitäten ALANG und ACURRENCY aus.
Der Link wird mit dem <dynamic link>-Token ADLKSELECT realisiert (Auswahl einer Blockzeile, Webaktion ABLKSELECT und erneute Anzeige der Seite).
Diese Aktion weist den XTEND-Server daraufhin, dass diejenige Zeile ausgewählt wurde, die den Link enthält und auf die der Benutzer geklickt hat.
Wenn in einem Block eine Zeile selektiert wurde, nehmen sämtliche <field>-Token, die den Block MYBLOCK.MYFIELD referenzieren, den Feldwert der selektierten Zeile als Wert an.
Da in unserem Fall im Sprachblock (ABLKLANG) und im Währungsblock (ABLHCURRENCY) AMAIN.LAN und AMAIN.CUR ausgewählt sind (AMAIN ist der Alias des Blocks ABLKCOUNTRIES), werden in diesen Blöcken automatisch die Sprach- und Währungsdaten des selektierten Landes angezeigt.
Im Beispiel haben wir uns dafür entschieden, das Ergebnis auf derselben Seite anzuzeigen und diese Anzeige mit einem ADISPMAINSELECT-Token für bedingte Blöcke zu verwalten, welches einen HTML-Bereich entweder anzeigt oder verbirgt, je nachdem, ob im Hauptblock MAIN eine Zeile selektiert ist oder nicht.
Mit den Token ADLKCOUNTRYSORTUP und ADLKCOUNTRYSORTDW kann die Länderliste auf- oder absteigend nach Ländercodes sortiert werden.
Aktuelle Seite
Ja
Rückmeldung Aktivität
Nein, denn diese Art von Aktion muss nicht protokolliert werden
Auswahl aus der Entität
ACOUNTRY: zu selektierende Entität (= Entität des Länderblocks)
Anwendung Selektion
'Ersetzt die Selektion des Hauptblocks': Die vom dynamischen Link an die Seite (in unserem Fall: dieselbe Seite) gesendete Sortierung / Auswahl ersetzt die Sortierung / Auswahl des Hauptblocks AMAIN (in unserem Fall ABLKCOUNTRIES-Blöcke)
Art der Auswahl
Keine: Die Sortierkriterien des Blocks sollen nicht geändert werden
Sortierungstyp
Feld: Feld CRY, in unserem Fall aufsteigende Sortierung (ADLKCOUNTRYSORTUP) und absteigende Sortierung (ADLKCOUNTRYSORTDW)
Anlage der Seite ACOUNTRIES (ungesichert) mit HauptblockABLKCOUNTRIES.
Einfügen des Webseitentokens ACOUNTRIES in die Auswahlliste links zur Seitenanzeige.
<TD class="button"><A adx="ACOUNTRIES">Länder</A></TD>
Zur Realisierung eines einfachen Links (ohne Aktion und ohne Auswahl) zu einer Website mit einem Anker-Tag muss lediglich ein Token vom Typ 'Website' in das Tag (<a adx="PageWeb"></a>) eingefügt werden, um die Anzahl von <dynamic link>-Token zu begrenzen.
Die Länderanzeige besteht darin, den Block ABLKCOUNTRIES zu positionieren. Dieser iteriert über die Länderliste und ermöglicht es, dieselbe Anzahl von Zeilen in der Tabelle anzulegen wie Länder in der Liste vorhanden sind.
<table width="100%" border="1">
<tr class="tabTitle">
<th width="15%">
<a adx="ADLKCOUNTRYSORTUP">+</a>
<b>Code</b>
<a adx="ADLKCOUNTRYSORTDW">-</a>
</th>
<th width="20%"><b>Land</b></th>
<th width="15%"><b>Kontinent</b></th>
<th width="15%"><b>Währung</b></th>
<th width="15%"><b>Sprache</b></th>
<th width="20%"><b>Flagge</b></th>
</tr>
<!adx="ABLKCOUNTRIES:xselect=false">
<tr adx="aLineStyle:xattr=Class">
<td><a adx="ADLKSELECT"><span adx="CRY"></span></a></td>
<td adx="CRYDES"></td>
<td adx="CONTINENT"></td>
<td adx="CUR"></td>
<td adx="LAN"></td>
<td><img adx="COUNTRYFLAG" height="25" width="40"></td>
</tr>
<!adx="ABLKCOUNTRIES">
</table>
Der Parameter xselect=false im Block ABLKCOUNTRIES gibt an, dass nicht die erste Standardzeile ausgewählt werden soll. Dies dient dazu, die Auskunft zu verbergen, so lange der Benutzer noch keine Zeile ausgewählt hat.
<td>
<a adx="ADLKCOUNTRYSORTUP">+</a>
<b>Code</b>
<a adx="ADLKCOUNTRYSORTDW">-</a>
</td>
<img adx="COUNTRYFLAG" height="25" width="40">
<td><a adx="ADLKSELECT"><span adx="CRY"></span></a></td>
<tr adx="aLineStyle:xattr=Class">
Zur Anzeige der Zeilen einer Tabelle in verschiedenen Farben wird ein <adx>-Token in ein <tr>-Tag eingefügt.
<tr adx="aLineStyle:xattr=Class">
aLineStyle enthält den Klassennamen, und xAttr = Class gibt an, dass das Klassenattribut mit dem Feldwert von aLineStyle zu belegen ist.
Die auf die Tabellenzeilen angewendeten CSS-Klassen (aLineStyle) sind in den Parameterdaten des Blocks definiert.
Die Auskunft wird angezeigt, sobald eine Zeile per Klick auf den Ländercode ausgewählt wird.
Die Anzeige wird mit dem <dynamic link>-Token ADISPMAINSELECT gesteuert.
Mit den Blöcken ABLKCURRENCY und ABLKLANG werden die Währungs- und Sprachentitäten des gewählten Landes gelesen. Damit kann die Auskunft angezeigt werden.
<!adx="ADISPMAINSELECT">
<table>
<!adx="ABLKCURRENCY">
<tr>
<td><b>Währung</b></td>
<td adx="CUR" width="50"></td>
<td><b>Bezeichnung</b></td>
<td adx="INTDES" width="150"></td>
<td><b>Symbol</b></td>
<td adx="CURSYM" width="50"></td>
</td>
</tr>
<!adx="ABLKCURRENCY">
<!adx="ABLKLANG">
<tr>
<td><b>Sprache</b></td>
<td adx="LAN"></td>
<td><b>Bezeichnung</b></td>
<td adx="INTDES"></td>
<td></td>
</tr>
<!adx="ABLKLANG">
</table>
<!adx="ADISPMAINSELECT">
<!adx="ABLKDOCHTML">
<div adx="TEXTE">
</div>
<!adx="ABLKDOCHTML">
Für die Verwaltung des Seitenumbruchs wird die Bibliothek pagination.lbi verwendet. Diese enthält einen generischen HTML-Code, der im Hauptblock (AMAIN) sämtlicher HTML-Seiten verwendet werden kann.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!--This library is used to perform pagination on AMAIN bloc-->
<table width="100%">
<tr>
<td align="left" width="20%">
<!--Hide FirstPage and Previous actions if current page is the first page-->
<!adx="aHideMainFirstPage">
<!---->
<a href="" adx="AMAIN.aDlkFirstPage">Erste</a>
<a href="" adx="AMAIN.aDlkPrevPage">Zurück</a>
<!adx="aHideMainFirstPage">
</td>
<!--Displays page information-->
<td align="center" width="60%">
Page : <span adx="AMAIN.aPagePos"></span> -
Anzahl Elemente: <span adx="AMAIN.aBlkNbElmts"></span>
</td>
<td align="right" width="20%">
<!--Hide LastPage and Next actions if current page is the last page-->
<!adx="aHideMainLastPage">
<a href="" adx="AMAIN.aDlkNextPage">Weiter</a>
<a href="" adx="AMAIN.aDlkLastPage">Ende</a>
<!adx="aHideMainLastPage">
</td>
</tr>
</table>
Um eine Methode (oder ein Feld) in einem XTEND-Block aufzurufen, wird folgende Syntax verwendet: MeinBlock.MeineMethode bzw. MeinBlock.MeinFeld.
<a href="" adx="AMAIN.aDlkFirstPage">Anfang</a>
<a href="" adx="AMAIN.aDlkPrevPage">Zurück</a>