Es empfiehlt sich, vor der Anlage einer Webseite folgende Dokumentation zu konsultieren:Was vor Ausführung der Funktion zu beachten ist.
Das Blocktoken führt das Lesen und die Anzeige der Entität durch, die ihm in der Parametrierung zugewiesen wurde:
1. Es liest durch Anruf einer (Webservice) Schnittstelle vom Typ "Zugangsdaten" die Entität(en) in der X3-Datenbank.
2. Es führt die Übertragung auf die zurückgegebenen Entitäten durch, um die Zeilen einer Tabelle dynamisch aufzubauen.
Das Blocktoken wird durch Verwendung der folgenden Syntax in eine HTML-Seite eingefügt:
<table>
<!adx="MyBlock">
<tr>
<td adx="aBLKELMTRANK"></td>
<td adx="ITEMREF"></td>
</tr>
<!adx="MyBlock">
</table>
Die XTEND-Engine geht bei der Verarbeitung der Blöcke wie folgt vor:
Diese Etappe wird nur einmal beim Laden der HTML-Seite durchgeführt:
Diese Etappe wird bei jeder Anzeige der HTML-Seite durchgeführt:
1. 1. Initialisierung der Blöcke
2. 2. Iteration über alle zurückgegebenen Entitäten
Würde die Auswahl im vorhergehenden Beispiel 3 Artikel mit den Codes PUZ001, PUZ002 und PUZ003 zurückgeben, ergäbe sich daraus eine Tabelle mit drei Zeilen:
1 | PUZ001 | |
2 | PUZ002 | |
3 | PUZ003 |
Folgendes HTML wird in diesem Fall generiert:
Das HTML des Blocktokens wurde dreimal wiederholt und jedes Mal neu berechnet, wobei der neue Datenkontext (aktuelle Zeile) berücksichtigt wurde.
<table>
<tr>
<td>1</td>
<td>PUZ001</td>
</tr>
<tr>
<td>2</td>
<td>PUZ002</td>
</tr>
<tr>
<td>3</td>
<td>PUZ003</td>
</tr>
</table>
Über die Anzeige von Datentabellen hinausgehend, verwaltet das Blocktoken die dynamische Änderung von Änderungs- und Sortierkriterien.
Die Standardkriterien werden durch die Parametrierung des Blocks definiert, und es kann festgelegt werden, ob die Änderung dieser Kriterien durch einen dynamischen Link erlaubt ist.
Das Token dynamischer Link, für das auch Auswahl- und Sortierungsparameter gewählt werden können, kann die Kriterien des Blocks verändern.
Nur die Auswahl- und Sortierkriterien des Hauptblocks der Seite (alias AMAIN) können durch die Auswahl- und Sortierkriterien der dynamischen Links verändert werden.
Es ist möglich, mehrere Blöcke für eine Seite festzulegen, aber nur ein Block (der Hauptblock) kann Auswahl- und Sortierkriterien enthalten, die durch den Benutzer geändert werden können.
Es existieren drei Arten der Änderung der Kriterien eines Blocks durch einen dynamischen Link:
Mit diesen drei Optionen können die meisten Situationen verwaltet werden, die in den Webseiten auftreten.
Im Datenblatt des Blocktokens können die Auswahl- und Sortierkriterien des Blocks parametriert werden.
Bei der ersten Anzeige der den Block enthaltenden Seite werden die Standardkriterien angewendet.
Das Token Block enthält die beiden Parameter "Auswahl änderbar" und "Sortierung änderbar". Diese Parameter legen fest, ob die Auswahl- und/oder Sortierkriterien durch einen dynamischen Link geändert werden können.
Sie werden nur angewendet, wenn der Block im Datenblatt der Webseite, auf der er angezeigt wird, als Hauptblock definiert wurde.
Soll ein Block mit mehreren Zellen pro Zeile angezeigt werden, wird das Sondertoken ASTAMP verwendet, um die Zelle abzugrenzen.
Der HTML-Code zwischen den beiden ASTAMP-Tags wird vom XTEND-Server so oft dupliziert, wie es Zellen in der Zeile gibt.
<table>
<!-Iteration über Blockzeilen-->
<!adx="MYBLOCK">
<tr>
<!-Code so oft wiederholen, wie es Zellen pro Zeile gibt-->
<!adx="ASTAMP">
<!--Zur Veränderung der Zellenfarben-->
<td adx="ALINESTYLE:xattr=Class">
<!--HTML-Code einer Zelle-->
<b>Name</b><p adx="NAME"></p>
<b>Vorname</b><p adx="FIRSTNAME"></p>
</td>
<!adx="ASTAMP">
</tr>
<!adx="MYBLOCK">
</table>
Im nachfolgenden Beispiel wird dargestellt, wie leere Zellen ausgefüllt werden müssen, wenn die Anzahl der Datensätze nicht ein Vielfaches der Zellenanzahl pro Zeile ist.
Zur Abgrenzung des HTML für die leeren Zellen wird der bedingte BlockADISPSTAMPEMPTY verwendet.
<table>
<!-Iteration über Blockzeilen-->
<!adx="MYBLOCK">
<tr>
<!adx="ASTAMP">
<td adx="ALINESTYLE:xattr=Class">
<!adx="ADISPSTAMPEMPTY">
<!--Leere Zellen werden mit einem Leerzeichen gefüllt-->
<!adx="ADISPSTAMPEMPTY">
<!adx="ADISPSTAMPEMPTY:xnot">
<!--HTML-Code einer nichtleeren Zelle-->
<b>Name</b><p adx="NAME"></p>
<b>Vorname</b><p adx="FIRSTNAME"></p>
<!adx="ADISPSTAMPEMPTY">
</td>
<!adx="ASTAMP">
</tr>
<!adx="MYBLOCK">
</table>
Mithilfe der Aktionen ABLKFIRSTPAGE, ABLKNEXTPAGE, ABLKPREVPAGE, ABLKLASTPAGE kann die Seitennummerierung in den Blöcken verwaltet werden.
Die Tokens ADLKFIRSTPAGE, ADLKNEXTPAGE, ADLKPREVPAGE, ADLKLASTPAGE können für den Hauptblock der Seite verwendet werden.
Die Felder aBLKNBELMTS und APAGEPOS zeigen die Gesamtanzahl der Datensätze sowie die Position der Seite im Verhältnis zur Gesamtanzahl der Seiten an.
Die bedingten Blöcke AHIDEMAINFIRSTPAGE und AHIDEMAINLASTPAGE steuern das Einblenden / Ausblenden der Buttons für die Seitennummerierung auf der ersten und der letzten Seite.
Syntax
MonBloc.ADLK*
Beispiel:
Seitennummerierung mit Verwaltung der Anzeige der ersten und letzten Seitennummern
<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">Première</a>
<a href="" adx="AMAIN.aDlkPrevPage">Précedente</a>
<!adx="aHideMainFirstPage">
</td>
<!--Displays page information-->
<td align="center" width="60%">
Seite: <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">Suivante</a>
<a href="" adx="AMAIN.aDlkLastPage">Dernière</a>
<!adx="aHideMainLastPage">
</td>
</tr>
</table>
Mithilfe der dynamischen Links ADLKSELECT und ADLKUNSELECT (Aktion ABLKSELECT und ABLKUNSELECT) kann eine Blockzeile ausgewählt bzw. die Auswahl dieser Zeile aufgehoben werden.
Verwendung
Die Tokens ADLKSELECT und ADLKUNSELECT werden in eine Zelle der Zeile eingefügt, entweder in ein Tag <a> oder in ein Tag <input type='button'>.
Das Feld ABLKSELECTEDLINE enthält den Rang (1 bis N) der ausgewählten Zeile.
Beispiel:
Der Block ABLKCOUNTRIES zeigt die Länder des Standorts ASAMPLE an. Es besteht die Möglichkeit zur Auswahl der Zeile, um die Auskunft Währung / Sprache des Landes anzuzeigen.
Durch Klick auf die erste Zelle (CRY) wird die Zeile ausgewählt.
<!adx="ABLKCOUNTRIES:xselect=false">
<tr>
<td><a adx="ADLKSELECT"><span adx="CRY"></span></a></td>
<td adx="CRYDES"></td>
<td adx="CUR"></td>
<td adx="LAN"></td>
</tr>
<!adx="ABLKCOUNTRIES">
<!--Anzeige der gewählten Zeilennummer-->
<span adx='ABLKCOUNTRIES.ABLKSELECTEDLINE'></span>
Der HTML-Parameter 'xSelect=true' ermöglicht die standardmäßige Auswahl der ersten Zeile.
Existiert dieser Parameter nicht oder steht sein Wert auf "false", enthält der Block keine standardmäßig ausgewählte Zeile.
Enthält ein Block eine ausgewählte Zeile, können die Felder dieser Zeile durch die Syntax MonBloc.MonChamp aufgerufen werden.
Die Feldwerte der ausgewählten Zeile können angezeigt oder als Kriterien in einem Block, einem dynamischen Link oder einem bedingten Block verwendet werden.
Der bedingte Block AHIDEMAINSELECT verwaltet das Einblenden / Ausblenden einer HTML-Zone in Abhängigkeit davon, ob der Hauptblock eine ausgewählte Zeile besitzt (siehe auch die Seite der Länder des Standorts ASAMPLE).
Mithilfe der Aktion ABLKRESTOREMAINCTX kann von einer Seite Auskunft zu einer Seite Liste zurückgekehrt werden, ohne dass die Seitennummerierung und die ausgewählte Zeile des Hauptblocks verloren gehen.
Über den folgenden dynamischen Link kann zur Seite FORMQUERYRES zurückgekehrt werden, wobei der Kontext des Hauptblocks wiederhergestellt wird.
<input type="button" value="Retour liste" adx="DlkFrmQueryBack" class="xtendButton" >
Mithilfe der folgenden Syntax können die Zeilendaten eines Blocks direkt aufgerufen werden:
<!--Erste Zeile-->
<span adx="MYBLOCK(first).MYFIELD"></span>]<br>
<!--Letzte Zeile-->
<span adx="MYBLOCK(last).MYFIELD"></span>]<br>
<!-N. Zeile-->
<span adx="MYBLOCK(N).MYFIELD"></span>]<br>
Mithilfe der folgenden Syntax kann eine JavaScript-Variable mit JSON-Darstellung aus einem Block oder der Zeile eines Blocks bewertet werden:
<script>
//JSON-Daten eines Blocks
var wMyBlock_JSON=<!adx="MYBLOCK(*)"><!adx="MYBLOCK(*)">;
var wMyBlock_JSON=<!adx="MYBLOCK(*)"><!adx="MYBLOCK(*):xinclude=FIELD1,FIELD2">;
var wMyBlock_JSON=<!adx="MYBLOCK(*)"><!adx="MYBLOCK(*):xexclude=FIELD1,FIELD2">;
//JSON-Daten einer Zeile
var wMyLine_JSON=<!adx="MYBLOCK(2)"><!adx="MYBLOCK(2)">;
var wMyLine_JSON=<!adx="MYBLOCK(2):xinclude=FIELD1,FIELD2"><!adx="MYBLOCK(2)">;
var wMyLine_JSON=<!adx="MYBLOCK(2):xexclude=FIELD1,FIELD2"><!adx="MYBLOCK(2)">;
</script>
Die JSON-Variable eines Blocks ist eine Zeilentabelle (Array):
<script>
var wMyBlock = [{ligne 1},{ligne 2},...];
var wMyBlock = [{"STATUT":1,"STATUT_DESCR":"A traiter","PRIX":81.35,"COD2":"30-112"},
{"STATUT":2,"STATUT_DESCR":"Traité","PRIX":117.9,"COD2":"31-02"},
{"STATUT":1,"STATUT_DESCR":"A traiter","PRIX":606.15,"COD2":"32-034"}];
</script>
Die JSON-Variable einer Zeile ist ein Objekt mit Feldern:
<script>
var wMyLine ={"CHAMP1":"Valeur1","CHAMP2":"Valeur2"...};
var wMyLine = {"STATUT":1,"STATUT_DESCR":"A traiter","PRIX":606.15,"COD2":"32-034"}
</script>
Der Parameter xjson erzeugt für ein Feld ein JSON-Objekt {"NomChamp:"Valeur"}. Ohne den Parameter xjson, wird die JavaScript-Variable mit dem Feldwert bewertet.
<script>
//JSON-Daten eines Feldes
var wMyField_JSON=<!adx="MYFIELD:xjson"><!adx="MYFIELD">;
//XTEND generiert
var wMyField_JSON={"MYFIELD":"Valeur"};
//Wert eines Feldes
var wMyField_JSON=<!adx="MYFIELD"><!adx="MYFIELD">;
//XTEND generiert
var wMyField_JSON="Valeur";
</script>
Code | Parameter | Auswirkung |
xselect | True / False | Wählt standardmäßig die erste Zeile aus |
Code | Typ | Beschreibung |
ABLKELMTIDX | Integer | Index eines Elements in einem Block (O->ABLKNBELMTS-1) |
ABLKELMTRANK | Integer | Rang eines Elements in einem Block (1->ABLKNBELMTS) |
ABLKLINEIDX | Integer | Index einer Zeile in einem Block (O->ABLKNBLINES-1) |
ABLKLINERANK | Integer | Rang einer Zeile in einem Block (O->ABLKNBLINES) |
ABLKNBELMTS | Integer | Anzahl aller Elemente (Datensätze) der Abfrage eines Blocks |
ABLKNBLINES | Integer | Rang der ausgewählten Zeile eines Blocks über die Aktion ABLKSELECT |
ABLKSELECTEDLINE | Integer | Anzahl der Zeilen eines Blocks |
APAGENB | Integer | Anzahl der Seiten eines Blocks |
APAGENUM | Integer | Rang der aktuellen Seite eines Blocks |
APAGEPOS | Integer | APAGEPOS/APAGENUM |
Code | Beschreibung |
ACONST | Enthält alle Felder vom Typ Konstante |
ACURRENT | Aktueller Datenkontext (top) in den XTEND-Daten |
AHTMLFORM | HTML-Formular |
AHTTPCOOKIE | HTTP-Cookies |
AMAIN | In den Seitenparametern definierter Hauptblock einer Seite |
APBG | In den Seitenparametern definierter Hintergrundblock einer Seite |
AMESS | Benutzernachrichten |
AREFERENCE | Durch den Ausdruck MeinReferenzblock.MeinTokenLink erhält der Block MonBlocReference den Namen "Referenzblock". |
ASESSION | Enthält die Daten der Benutzersession |
AUSERCRIT | Enthält die Benutzerkriterien (HTML-Parameter xcrit) |
AUSERINF | Enthält die Benutzerdaten, die vom Login zurückgegeben werden |
AUSERVAR | Enthält die Benutzervariablen, die durch die Funktionen JavaSCript xtdSetUserVar/xtdRemoveUserVar erzeugt werden |
Felder
In diesem Register befinden sich die folgenden Felder :
| Code des Block-Tokens. |
| Aktuelle Website. |
|   |
Schließen
Übersicht
Allgemeine Parameter des Blocks.
Schließen
Felder
In diesem Register befinden sich die folgenden Felder :
Eigenschaften
|
|
| Anzahl der in der Tabelle anzuzeigenden Zeilen |
| Anzahl in der Tabelle anzuzeigender Zellen pro Zeile. In diesem Fall muss der Token ASTAMP verwendet werden, um die Zellen zu definieren. |
| Gibt die Entitäten an, die aus dem Abfrageergebnis erstellt werden. |
| Schnittstelle vom Typ 'Datenzugriff' der aufgerufen wird. |
| Schnittstelle vom Typ 'Datenzugriff' der aufgerufen wird. |
Schließen
Übersicht
Parametrierung der mit dem Block verknüpften Auswahl.
Schließen
Felder
In diesem Register befinden sich die folgenden Felder :
Eigenschaften
| Keine: Auswahl aller Datensätze. Abfrage: Anwendung der Auswahlkriterien des Blocks. Letzter aktivierter Link: Anwendung der Auswahlkriterien der dynamischen Verknüpfung, die aktiviert wurde, um auf die Seite zuzugreifen, die den Block enthält. |
| Nein: die dem Block zugeordnete SQL-Abfrage kann nicht über eine Abfrage einer dynamischen Verknüpfung geändert werden. Ja: die Abfrage kann über die einer dynamischen Verknüpfung zugeordneten Abfrage geändert werden.
|
| Optimierungsauswahl, von der Schnittstelle vorgeschlagen. Keine: Keine Optimierung Kein blob: die Schnittstelle gibt die blob-Felder nicht zurück Kein clob: die Schnittstelle gibt die clob-Felder nicht zurück Weder blob, noch clob: die Schnittstelle gibt die blob- und clob-Felder nicht zurück |
Auswahlsynthese
| Blockabfrage im Textformat |
Tabelle Auswahlkriterien
| Logische Verkettung der Arbeitsgänge. |
| Öffnende Klammern. |
| Feld der Entität, deren Wert der erste Operand des Arbeitsgangs ist. |
| Vergleichsoperator. |
|
|
| Hier wird der Wert des Parameters erfasst. Dieser wird entweder als Zahl, Datum oder alphanumerischer Code erfasst. Bei Parametern vom Typ lokales Menü können entweder die ersten Zeichen das Titels oder die Zeilennummer des Titels in der Liste erfasst werden. Wird der Code von einer anderen Tabelle geprüft, kann eine Auswahltaste verwendet werden. |
| Blockname für den Ursprung 'Feld Token'. |
|   |
| Feldcode für den Ursprung 'Feld Token'. |
| Schließende Klammern. |
|
|
|   |
Organisationseinheit
| Gibt die Entitäten an, die aus dem Abfrageergebnis erstellt werden. |
| Schnittstelle vom Typ 'Datenzugriff' der aufgerufen wird. |
| Schnittstelle vom Typ 'Datenzugriff' der aufgerufen wird. |
Schließen
Felder
In diesem Register befinden sich die folgenden Felder :
Eigenschaften
| Auswahl Sortiertyp:
|
|
|
Tabelle Sortierung
| Feldname für den Ursprung 'Feld Token'. |
| Sortierreihenfolge Aufsteigend/Absteigend. |
Schließen
Felder
In diesem Register befinden sich die folgenden Felder :
Daten vom Block zurückgegeben
| Gibt an, was beim Lagerplatz des Blocks in der HTML-Seite angezeigt werden muss, wenn die Auswahl leer ist:
|
Tabelle Style pro Zeile
| CSS-Klassen der geraden und ungeraden Zeilen, um den Zeilenstil (Hintergrundfarbe...) zu ändern. Die CSS-Klasse muss auf der HTML-Seite definiert werden. Sondertoken ALINESTYLE im HTML-Tag (<tr>) verwenden, der die Zeile enthält. <table> |
Tabelle Param. Zugriff Unterprogramm
| Code des Unterprogrammparameters. |
|
|
|
|
| Blockname für den Ursprung 'Feld Token'. |
|   |
| Feldcode für den Ursprung 'Feld Token'. |
Schließen
Standardmäßig sind der Funktion folgende Reports zugeordnet :
PRTSCR : Druck Maske
Dies kann durch geeignete Parameter geändert werden.
Mit diesem Button kann ein Blocktoken kopiert werden. |