Es empfiehlt sich, vor der Anlage einer Webseite folgende Dokumentation zu konsultieren:Was vor Ausführung der Funktion zu beachten ist.
Bei dynamischen Links handelt es sich um Tokens zur Verarbeitung von Mausklicks, die vom Benutzer in sensitiven Bereichen der HTML-Seite wie zwischen den Tags <a>, </a> und <input type='button'>, </input type='button'> vorgenommen werden können.
<input type='button' adx="MyDynamicLink" value="Hier klicken">
<a adx="MeinDynamischerLink">Hier klicken</a>
Die drei wichtigsten Parameter eines dynamischen Links sind:
1. Webaktion
2. Zielwebseite
3. Auswahl
In der Liste sind diese Parameter in der Reihenfolge ihrer Verarbeitung durch den XTEND-Server aufgeführt.
Es gibt zwei Arten von Aktionen:
Alle Aktionen sind im Dictionary in den Parameterdaten deklariert.
Hierbei handelt es sich um die als Rückgabe der auf dem Server abgesetzten Abfrage angezeigte Seite.
Alle Seiten sind im Dictionary in den Parameterdaten deklariert.
Die Zielwebseite kann von der Aktion geändert werden.
Zur Änderung der Zielwebseite durch ein Programm (4GL) wird eine (programmierte) Verkettung von dynamischen Links verwendet:
Zuweisung des auf die Zielwebseite zeigenden Codes des dynamischen Links (mit oder ohne Aktion / Auswahl) an einen Parameter des Unterprogramms.
Um die Auswahlkriterien des Hauptblocks der Zielwebseite zu ändern, kann der dynamische Link eine Auswahlabfrage auf diese absetzen.
Mit der Auswahl können der Link zur Auskunftsliste, die Tabellensortierung und die Abfrageverfeinerung verwaltet werden.
Weitere Informationen finden Sie in der Dokumentation über Block-Tokens.
Folgende Parameter werden von den dynamischen Links verwaltet:
Code | Parameter | Beschreibung |
xacceptreload | Keine | Die Aktion des dynamischen Links wird bei der Aktualisierung der HTML-Seite (F5) auch dann ausgeführt, wenn die Aktualisierung per Aktionsparametrierung gesperrt ist ('Aktiv nach Reload'). |
xparams | QueryString | Fügt der URL des dynamischen Links Parameter hinzu. |
<a adx="MyDynLink:xacceptreload&xparams=?PARCOD1=VAL1~PARCOD2=VAL2#xtdbottom">
In diesem Beispiel:
In diesem Beispiel wird der Fokus in eine Zielwebseite gesetzt (über den HTML-Parameter xparams), wenn der Benutzer auf einen dynamischen Link klickt:
<!--dynamischer Link auf der Ursprungsseite-->
<input type="button" value="Hier klicken" adx="MYDYNLINK:xparams=#signet">
<a adx="MYDYNLINK:xparams=#signet">Hier klicken</a>
<!--Zielseite-->
<body>
<!--HTML-Code -->
<a name="Textmarke">
<!--Fokussierung der Seite, wenn der Benutzer auf nachstehenden Button klickt-->
<!--HTML-Code -->
</body>
Im Beispiel werden die Benutzervariablen PARCOD1 und PARCODE (über den HTML-Parameter xparams) mit VAL1 und VAL2 belegt, wenn der Benutzer auf einen dynamischen Link klickt:
<!--dynamischer Link auf der Ursprungsseite-->
<input type="button" value="Hier klicken" adx="MYDYNLINK:xparams=#Textmarke">
<a adx="MYDYNLINK:xparams=?PARCOD1=VAL1~PARCOD2=VAL2">Hier klicken</a>
Ein Link zu einer Auskunftsliste besteht in der Definition eines Links, über den auf die in einer Liste angezeigte Auskunft einer Entität zugegriffen werden kann.
Beispiel: Zugriff auf die Artikelauskunft vom Katalog aus.
Die Auskunftsseite umfasst in der Regel Zusatzdaten aus anderen Tabellen, also nicht nur aus der zur Listenanzeige verwendeten Tabelle.
Beispiel: Die ausführliche Beschreibung eines Produktes oder der zugeordneten Produkte (Cross-Selling).
Umgekehrt muss der Benutzer aus der Auskunftsseite zur Liste zurückkehren können, ohne den Listenkontext (Auswahlkriterien, Seitennummerierung) verloren zu haben.
Über den dynamischen Link wird die Entität so ausgewählt, dass der Code dem Code der aktuellen Zeile entspricht.
Die aktuelle Zeile ist durch den Block ACURRENT (oberstes Element des Datenkontextstapels) definiert
Der Link 'ersetzt die Auswahl des Hauptblocks'
<table>
<tr>
<th><b>Code</b></th>
<th><b>Bezeichnung</b></th>
</tr>
<!--Listenblock-->
<!adx="BLKITMLST">
<tr>
<!--Link zur Auskunft-->
<td><a adx="DLKDETAIL"><span adx="CODE"></span></td>
<td adx="DESCR"></td>
</tr>
<!adx="BLKITMLST">
</table>
Der Block 'Einzelner Datensatz' umfasst eine Auswahl vom Typ 'Letzter aktivierter Link'. Für diese werden die Auswahlkriterien des vom Benutzer angeklickten dynamischen Links verwendet (der zuvor mit der Auswahl aus ACURRENT.CODE angelegt wurde)
<!--Auskunftsblock-->
<!adx="BLKDETAIL">
<b>Code </b><span adx="CODE"></span><br>
<b>Libellé </b><span adx="DESCR"></span><br>
<b>Prix </b><span adx="PRIX"></span><br>
<b>Stock </b><span adx="STOCK"></span><br>
<!adx="BLKDETAIL">
<!--Zurück zur Liste-->
<a adx="DLKRETOURLISTE">Zurück zur Liste</a>
Zur Anzeige von zusätzlichen Daten aus einer anderen Tabelle oder aus einem anderen View (z. B. Anzeige der ausführlichen Beschreibung eines Artikels oder der zugehörigen Produkte):
Mit dem dynamischen Link ADLKRETURN kann zu den zuvor konsultierten XTEND-Seiten zurückgekehrt werden
Beispiel:
Bei der Nummerierung eines Artikelkatalogs zeigt der Link ADLKRETURN die vor der Anzeigeseite des Katalogs liegende Seite an und berücksichtigt dabei im Gegensatz zur Browsertaste 'Zurück' nicht die Nummerierungsaktionen.
Die XTEND-Engine verwaltet einen Stapel von während der Benutzersitzung konsultierten Seiten, deren Größe mithilfe des Parameters Konfiguration parametriert werden kann.
xtend.server.gensetup.misc.rtnstacksize (standardmäßig 20).
Code | Parameter | Aktion | Beschreibung |
ADLKFIRSTPAGE | Nein | ABLKFIRSTPAGE | Zeigt die letzte Seite eines Blocks an |
ADLKNEXTPAGE | Nein | ABLKNEXTPAGE | Zeigt die nächste Seite eines Blocks an |
ADLKLASTPAGE | Nein | ABLKLASTPAGE | Zeigt die letzte Seite eines Blocks an |
ADLKSELECT | Nein | ABLKSELECT | Auswahl Blockposition |
ADLKUNSELECT | Nein | ABLKUNSELECT | Hebt die Auswahl der Zeile eines Blocks auf |
ADLKRESTOREFORM | Nein | ARESTOREFORM | Stellt die Ausgangswerte eines HTML-Formulars her |
ADLKRESTORESESSION | Nein | ARESTORESESSION | Zeigt die letzte Seite an, die vor dem Schließen des Browsers geöffnet war |
ADLKLOGIN | Ja | ASESSLOGIN | Benutzerlogin |
ADLKLOGOUT | Nein | ASESSLOGOUT | Trennt die Verbindung des Benutzers |
ADLKSWITCHCOOKIES | Nein | ASESSSWITCHCOOKIES | Überträgt den Modus "ohne Cookies" und den Modus "mit Cookies" |
ADLKTRACESET | Nein | ATRACESET | Aktualisierung des XTEND-Protokolls |
ADLKRETURN | Nein | Nein | Rückkehr zur vorherigen Seite |
ADLKPOSTPAGE | Nein | Nein | Sendet das Formular der aktuellen Seiten und kehr zu derselben Seite zurück |
ADLKSWITCHSITE | Ja | Nein | Öffnet eine andere XTEND-Site |
ADLKSWITCHLANG | Ja | Nein | NeinWechsel der Benutzersprache |
Felder
In diesem Register befinden sich die folgenden Felder :
| Code der dynamischen Verknüpfung. |
| Aktuelle Website. |
| Ermöglicht die Definition einer Bezeichnung für jeden Datensatz. |
Schließen
Übersicht
Allgemeine Parameter des dynamischen Links
Die Tabelle "Parameter Zugriff Unterprogramm" wird gefüllt, wenn folgende Bedingungen erfüllt sind:
Ist die Tabelle nicht leer, kann eine Auswahl aus diesen Parametern definiert werden
Schließen
Felder
In diesem Register befinden sich die folgenden Felder :
Rückmeldung
| 'Ja' auswählen, um die Aufrufe der dynamischen Verknüpfung im Log des Servers XTEND rückzumelden. |
| 'Ja' auswählen, um die Methode HTTP GET zu verwenden; die Verknüpfung muss von den Suchmaschinen (Webcrawler) berücksichtigt werden.
|
Ziel
| Auswahl:
|
| Zielseite. |
Dynamik
| Code der ausgewählten Entität, wenn die dynamische Verknüpfung eine Auswahl für den Hauptblock der Zielseite schickt.
|
| Es gibt drei Typen für die Änderung der Blockkriterien über eine dynamische Verknüpfung. 1. Die Kriterien der dynamischen Verknüpfung 'Ersetzt die Auswahl des Hauptblocks'AUSWAHL DES BLOCKS = AUSWAHLKRITERIEN DER VERKNÜPFUNG 2. Die Kriterien des dynamischen Links "Ergänzt die Auswahl des Hauptblocks"Führt eine Verfeinerung der Blockabfrage mit den Verknüpfungskriterien durch. 3. Die Kriterien der dynamischen Verknüpfung 'Wird zur Auswahl des Hauptblocks hinzugefügt'Führt eine Verfeinerung der Blockabfrage durch, indem der aktuellen Abfrage des Blocks die Auswahl der dynamischen Verknüpfung hinzugefügt wird (logisches UND).
|
| Code der Webaktion, wenn die dynamische Verknüpfung eine Aktion hat.
|
| Diese Option auswählen, damit die Parameter der als 'erforderliche Webfelder' erklärten Aktion automatisch über XTEND geprüft werden. |
Tabelle Param. Zugriff Unterprogramm
| Code des Unterprogrammparameters. |
|
|
|
|
| Blockname für den Ursprung 'Feld Token'. |
|   |
| Feldcode für den Ursprung 'Feld Token'. |
Schließen
Felder
In diesem Register befinden sich die folgenden Felder :
Tabelle Einstellungen
| Code des Aktionsparameters. |
|
|
|
|
| Blockname für den Ursprung 'Feld Token'. |
|   |
| Feldcode für den Ursprung 'Feld Token'. |
Verkettung
| Die Seite, die angezeigt wird, wenn die Aktion fehlerhaft endet.
|
| 'Ja', um anzugeben, dass die Verarbeitung L4G den Code der dynamischen Verknüpfung in einem Parameter des Unterprogramms zurücksendet. Von der Verarbeitung L4G definierte dynamische VerkettungDie Verarbeitung L4G kann entscheiden, die dynamische Verknüpfung zu verketten, indem sie einen Verknüpfungscode im Parameter des Unterprogramms zurücksendet.
Der Code der dynamischen Verknüpfung kann auch in einer Sitzungsvariablen (Benutzervariable) gespeichert sein.
Die nach der Verkettung mehrerer dynamischer Verknüpfungen angezeigte Seite ist die Webseite, die der zuletzt bearbeiteten dynamischen Verknüpfung zugeordnet ist. |
|   |
|   |
Tabelle Links
| Code der auszuführenden dynamischen Verknüpfung. Liste der dynamischen Verknüpfungen: die in der Liste erfassten dynamischen Verknüpfungen werden sequenziell ausgeführt, wenn vom Webservice kein Fehler zurückgesendet wurde. |
Schließen
Übersicht
Mit dem dynamischen Link kann eine Auswahl an den Hauptblock (AMAIN) der Zielseite gesendet werden. Ist die Blockauswahl 'veränderbar' und sind die ausgewählten Entitäten identisch, führt der Block die vom dynamischen Link gesendete Auswahl durch (gemäß dem Parameter 'Anwendung Auswahl').
Die Felder in diesem Register sind nur aktiv, wenn im Feld 'Auswahl aus der Entität der Maske 'Allgemeines' ein Entitätscode ausgewählt wurde.
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
Standardmäßig sind der Funktion folgende Reports zugeordnet :
PRTSCR : Druck Maske
Dies kann durch geeignete Parameter geändert werden.
Mit diesem Button kann ein dynamischer Link kopiert werden. |
Als Attribut der HTML-Tags <a> und <input type='button'> wird stets ein Token vom Typ dynamischer Link eingefügt.
Beim dynamischen Aufbau der HTML-Seite durch den XTEND-Server wird von diesem an der Stelle der Tokens vom Typ dynamischer Link als onClick-Ereignis der Aufruf einer JavaScript-Funktion aus der XTEND-Bibliothek (xtdDoDlk) generiert.
Die Parameter der Funktion xtdDoDlk sind Kontextparameter; mit ihnen können in der XTEND-Bibliothek die (xml)-Daten zusammengestellt werden, die zur Verarbeitung der Aktion und zur Auswahl an den XTEND-Server gesendet werden sollen.
<a href="javascript:xtdDoSubmit('MYDLK',null);"
onclick="xtdDoDlk(this,'MYDLK',null,null,'XAA',0,null,event,false,'_1',false,null,false);">
<input type="button"
onclick="xtdDoDlk(this,'MYDLK',null,'MYBLOCK','XA',0,null,event,true,'',false,null,true);"
value="Add to cart"/>
Wenn der Benutzer auf einen dynamischen Link klickt, ist der Datenkontext der Seite nicht mehr auf dem Server vorhanden.
Dieser Datenkontext existierte während des Seitenaufbaus und wurde danach gelöscht.
Der XTEND-Server speichert auf der HTML-Seite (tag <span id="xtdctx">) nach den Selektionen und Aktionen der dynamischen Links notwendigen Datenkontext.
Das Wiederfinden des zum dynamischen Link gehörenden Datenkontextes, um diesen an den Server zu senden, gehört zu den Rollen der JavaScript-Funktion xtdDoDlk.
Beispiel:
Auf der 'Auskunftsseite' soll für einen Link des Typs Liste / Auskunft (Katalog) das Objekt (der Artikel) angezeigt werden, auf das (den) geklickt wurde. Dieser Vorgang teils sich für den XTEND-Server folgendermaßen auf:
Durch das Speichern des Kontextes in der HTML-Seite wird gewährleistet, dass die Browsertaste 'Zurück' in XTEND reibungslos funktioniert.
Um in JavaScript aus dem Programm heraus (nicht per Generierung durch XTEND) einen Link aufzurufen, kann folgende Funktion verwendet werden:
//aElmt = DOM-Objekt, auf das geklickt wurde
//aDlk = Code des aufzurufenden dynamischen Links
//aParams = optional, enthält die URL-Parameter (Query String)
function xtdCallDlk(aElmt,aDlk,aParams){}
Diese Funktion kann nur verwendet werden, wenn der dynamische Link in den Auswahlkriterien und Aktionsparametern keine Referenzen auf XTEND-Felder enthält.
Lediglich Kriterien und Parameter vom Typ 'Web-Feld' werden berücksichtigt.
In bestimmten Fällen kann der Entwickler einen Klick abfangen, beispielsweise um Plausibilitätsprüfungen durchzuführen.
Deklarieren Sie eine JavaScript-Funktion namens xtdDoMyDlk, die von der Bibliothek (XtendLib.js) aufgerufen wird. Bei diesem Aufruf wird als Parameter das Kontextobjekt aDomOut (Klasse CXtdDomOut) übergeben, mit dem auf sämtlich Daten des dynamischen Links zugegriffen werden kann.
Diese Funktion gibt 'false' zurück, wenn die Verarbeitung abgebrochen werden soll.
function xtdDoMyDlk(aDomOut)
{
if (aDomOut.isDlk("MyDynLink"))
{
// Der Benutzer hat auf den Link MyDynLink geklickt
return confirm("Aktion bestätigen");
}
return true;
}
Der Prozess kann auch kurz vor dem Versenden des Formulars an den Server (submit) unterbrochen werden. Erstellen Sie hierfür die JavaScript-Funktion XDoMySubmit auf der Seite:
function xDoMySubmit(aDlk,aDomOut){
// Gibt 'false' zurück, um den Prozess zu unterbrechen
return true;
}
Klasse des Parameters aDomOut, die Zugriff auf den Kontext des dynamischen Links bietet.
// Gib den Wert der Benutzervariable aKey zurück
aDomOut.getUserVar(aKey);
// Gibt den Code des dynamischen Links zurück, auf den der Benutzer geklickt hat.
aDomOut.getDynLinkId();
// Gibt den Index der Zeile (0 bis N) zurück, wenn der Benutzer
// auf einen Link in einem Tabellenblock geklickt hat
aDomOut.getCurLineIdx();
// Gibt 'true' zurück, wenn der Benutzer auf den Link aArg geklickt hat.
// Bei aArg handelt es sich entweder um eine Linktabelle oder um einen String.
aDomOut.isDlk(aArg);
if (aDomOut.isDlk("DLK1","DLK2")){
// Code, wenn der Benutzer auf "DLK1" oder "DLK2" geklickt hat.
}
// Gibt die Liste der Web-Parameter zurück (Klasse CXtdDlkWebParamsOut).
aDomOut.getWebParameters();
// Zur Ermittlung des Wertes des Webparameters aName.
// Bei aldx handelt es sich um den Index des Wertes, wenn mehrere Werte vorhanden sind.
aDomOut.getWebParameters().getParamValue(aName,aIdx)
// Gibt einen Array mit den Werten des Webparameters aName zurück.
aDomOut.getWebParameters().getParamValues(aName)
// Gibt den Wert eines Auswahlkriteriums oder Aktionsparameters zurück.
// Bei aFieldName handelt es sich um den Namen des XTEND-Feldes, welches für das Mapping verwendet wird.
aDomOut.getDlkParamValues(aFieldName);
// Analog: getDlkParamValues - aParamId ist die Parameter-Id im Mapping.
// - Bei Auswahlkriterien ist Id = SEL + Kriterienrang (1-N).
// - Genauer als getDlkParamValues, da Id im Gegensatz zu XTEND-Feldname
aDomOut.getDlkParamValuesById(aParamId);
Wird ein Aktionsparameter als 'obligatorisches Webfeld' deklariert, prüft die Bibliothek automatisch:
Um Webparametern zusätzliche Prüfungen hinzuzufügen, fügen Sie der HTML-Seite nachstehende Funktion xtdWebParamCheckValue hinzu.
Diese Funktion für jeden Webparameter der Aktion aufgerufen, die dem dynamischen Link zugeordnet ist. Zur Freigabe der Erfassung gibt die Funktion 'true' zurück.
Siehe Beispiel bei der Formularerfassung der Webseite ASAMPLE.
Parameter:
function xtdWebParamCheckValue(aWebParamOut,aInputFieldName,
aInputFieldIndex,aInputFieldValue){
// Beispiel: Prüfung des E-Mail-Formats im Feld MAICOD
if (aInputFieldName=="MAICOD"){
var wEmail=xtdCheckEmail(aInputFieldValue);
if (wEmail && wEmail!=aInputFieldValue){
// Format O. K.
// Der Wert mit dem von xtdCheckEmail berechneten Format aktualisiert.
aWebParamOut.setValue(aInputFieldIndex,wEmail);
}
// 'true' zur Freigabe der Erfassung – 'false', wenn keine Freigabe erfolgen soll
return wEmail!=null;
}
}
// Gibt bei obligatorischen Parametern 'true' zurück.
aWebParamOut.isMandatory();
// Gibt den Indes des Feldes im HTML-Formular zurück.
// -> Es kann in einem Formular (in einer Tabelle) mehrere Felder mit demselben Namen geben.
aWebParamOut.getIndex();
// Gibt das DOM-Element zurück.
aWebParamOut.getElement(aIdx)
//aValue ist ein Array.
aWebParamOut.setValues(aValue);
// aIdx = Index (0 - N) des Wertes
aWebParamOut.setValue(aIdx,aValue);
// Gibt den Wert eines anderen Webparameters zurück.
// -> Nützlich, wenn die Prüfung eines Parameterwertes von anderen Parametern abhängt.
aWebParamOut.getParamValue(aName,aIdx);
// Gibt den Wert in einem Array zurück.
aWebParamOut.getValues();
// Gibt den Indexwert aldx zurück.
aWebParamOut.getValue(aIdx);
// Gibt den Indexwert 0 zurück.
aWebParamOut.getFirstValue();
// Gibt das Attribut name zurück.
aWebParamOut.getName();
// Gibt den im XTEND-Dictionary definierten Parametertyp zurück.
aWebParamOut.isInteger();
aWebParamOut.isX3Menu();
aWebParamOut.isDecimal();
aWebParamOut.isCurrency();
aWebParamOut.isDate();
aWebParamOut.isString();
aWebParamOut.isNumeric();
// Gib den Elementtyp des DOM des Parameters zurück.
aWebParamOut.isHidden(aIdx);
aWebParamOut.isInputText(aIdx);
aWebParamOut.isCheckBox(aIdx);
aWebParamOut.isRadio(aIdx);
aWebParamOut.isTextArea(aIdx);
aWebParamOut.isSelect(aIdx);
Ist die Funktion xtdWebParamCheck auf der Seite vorhanden, wird sie vor Durchführung der Parameterprüfung von der XTEND-Bibliothek aufgerufen.
Die Funktion xtdWebParamCheck gibt 'true' zurück, wenn der Wert geprüft werden soll; soll die Prüfung verhindert werden, gibt sie 'false' zurück.
Besonders nützlich ist diese Funktion bei Kommissionierlisten mit Auswahl der Positionen per Kontrollkästchen. In diesem Zusammenhang können mit dieser Funktion die Positionen gefiltert werden, für die die Prüfung vorgenommen werden sollen.
Siehe Beispiel bei der Formularerfassung der Webseite ASAMPLE.
Parameter:
var gNbChecked=0;
// Gibt 'true' zurück, wenn der Webparameter aInputFieldName/aInputFieldIndex geprüft werden soll.
function xtdWebParamCheck(aWebParamsOut,aInputFieldName,aInputFieldIndex){
/*
Beispiel für eine Kommissionierliste mit Kontrollkästchen (ASELECTED) zur Positionsauswahl.
Für nicht ausgewählte Positionen wird das Feld AQUANTITY nicht geprüft.
*/
if (aInputFieldName=="AQUANTITY"){
// gNbChecked ist ein Zähler für die ausgewählten Positionen,
// mit dem die Aktion unterbunden werden kann, wenn keine Position ausgewählt wurde.
if (aInputFieldIndex==0) gNbChecked=0;
// Die Position ist ausgewählt, wenn der Wert von ASELECTED 1 beträgt.
if (aWebParamsOut.getParamValue("ASELECTED",aInputFieldIndex)=="1"){
gNbChecked++;
return true;
}
return false;
}
return true;
}
Die Kontrollkästchen weisen die Besonderheit auf, nur an das HTML-Formular gesendet zu werden, wenn sie aktiviert sind.
Dieses Verhalten ist nicht mit der XTEND-Engine kompatibel. Diese stützt sich bei der Zuordnung der in derselben Tabellenzeile erfassten Daten auf den Index des Feldes im HTML-Formular.
Soll ein nicht aktiviertes Kontrollkästchen gesendet werden, ersetzt die XTEND-Bibliothek direkt vor dem Versand des Formulars an den Server (xtdProcessCheckBoxes) die entsprechenden nicht aktivierten Kontrollkästchen durch ein gleichnamiges 'Input-hidden-Feld'.
Der zur Belegung der nicht aktivierten Kontrollkästchen verwendete Wert ist durch die globale Variable gXtdCBUnSelectedValue gegeben. Diese ist standardmäßig leer (var gXtdCBUnSelelectedValue = "").
Wertänderung:
<script>
// Seite onLoad-Ereignis
function xBodyOnLoad()
{
// Für nicht aktivierte Kontrollkästchen den Wert '0' setzen
xtdSetUnSelelectedValue('0');
// Seiteninitialisierung
}
</script>
<body onLoad="xBodyOnLoad();">
<form>
// Html-Code
<form>
</body>
Beim Parsen der Seite ermittelt XTEND sämtliche Kontrollkästchen mit adx-Token und stellt eine Liste zusammen. Diese wird im Datenkontext der Seite an den Client gesendet. Die Funktion xtdProcessCheckBoxes berücksichtigt dann die Kontrollkästchen dieser Liste.
Der XTEND-Server sendet im Datenkontext der Seite die Daten über die 'Regionalen Einstellungen' gemäß der aktuellen Sprache an den Browser.
Datenzugriff:
var wRegSettings=gXtdDOMFactory.getXtdDomIn().getRegionalSettings();
// Dezimaltrennzeichen
wRegSettings.getDecimalSep();
// Tausendertrennzeichen
wRegSettings.getThousandSep();
// Datumsreihenfolge - MDY=0 - DMY=1 - YMD=2
wRegSettings.getDateOrder();
// Berechnungsdatum für die X3-Daten
wRegSettings.getDatePivot();
Mit nachstehender Funktion können Variablen und Benutzerkriterien hinzugefügt / gelöscht werden.
Die Funktionen xtdAjax* aktualisieren mit einer Ajax-Abfrage die Variablen auf dem Server, ohne das HTML-Formular zu posten.
Die anderen Funktionen (außer xtdGetUserVar) posten das HTML-Formular.
// ---------------------------------------------------------------
function xtdRemoveUserVar(aId);
function xtdSetUserVar(aId,aValue);
function xtdGetUserVar(aId);
function xtdRemoveUserCrit(aId);
// ---------------------------------------------------------------
function xtdAjaxRemoveUserVar(aId);
function xtdAjaxRemoveAllUserVar();
function xtdAjaxSetUserVar(aId,aValue);
function xtdAjaxRemoveUserCrit(aId);
function xtdAjaxRemoveAllUserCrit();
function xtdAjaxSetUserCrit(aId,aValue);
function xtdRemoveAllUserCrit();
Nachstehende Funktion zeigt eine vom XTEND-Server berechnete Meldung an.
Die Meldung wird in der aktuellen Webseitensprache zurückgegeben.
Parameter:
function xtdAlert(aId,aP1,aP2,aP3,aP4);
// Nachstehendes Beispiel zeigt folgende Meldung an:
// 'Sie sind mit der Anwendung bereits mit Benutzercode DIS001 verbunden'
xtdAlert("ASESSLOGIN2","DIS001");
Die folgende Klasse bietet Zugriff auf den Aufrufkontext der Seite. Dies dient der Ergebnisermittlung nach einer Aktion:
var wCallCtx==gXtdDOMFactory.getXtdDomIn().getCallingCtx();
// ---------------------------------------------------------------
// CLASS CXtdCallingCtx
// ---------------------------------------------------------------
// Zur Anzeige der aktuellen Seite wird der dynamische Link verwendet.
wCallCtx.getDynLink();
// 'True', wenn es sich bei der Seite um das Ergebnis einer Aktion handelt.
wCallCtx.hasAction();
// Code der Aktion
wCallCtx.getAction();
// 'True', wenn die Aktion korrekt abgelaufen ist – sonst 'false'.
wCallCtx.getActionResult();