Avant de créer votre site , il préférable de lire la documentation :Avant de commencer.
Cette fonction permet de gérer une ensemble de listes de valeurs, dédiées à une application XTEND, en complément des menus locaux.
Une liste de valeurs XTEND est associée à Token champ et fonctionne comme un menu local.
Chaque élément de la liste contient :
Comme pour les menus locaux, la valeur est accessible via le nom du Token champ et le libellé en ajoutant le suffixe _DESCR au nom du champ.
Contrairement aux menus locaux une liste de valeur sait gérer des données hiérarchiques (arborescence de catégories).
Le séparateur des catégories est le caractère /.
Les listes de valeurs peuvent être créées :
Les listes de valeurs sont sauvegardées dans le fichier MEN.xml du répertoire qui contient le dictionnaire du site XTEND (X_TEND/X_GEN/SITE/MEN.xml) sauf les listes créées par traitement batch qui sont stockées dans des répertoires bien identifiés.
Le paramétrage dépend du mode de gestion de la liste.
Validez la fiche après l'avoir enregistrée pour qu'elle puisse être prise en compte par le serveur XTEND.
Forcez le rechargement du dictionnaire si les paramètres 'Vérification des mises à jour' du site ne sont pas actifs.
Voir la fiche Site web.
La liste est créée/modifiée dans le bloc graphique (DHTML) en bas de l'écran.
On créez la première valeur :
La suppression et modification se fait par clic droit sur la valeur.
Vous pouvez aussi construire une liste de valeurs à partir d'une liste existante créée à partir d'un mesSage X3, d'une table diverse ou d'une liste batch dont vous souhaitez modifier le contenu.
Dans ce cas :
Vous pouvez ensuite modifier le contenu comme indiqué ci-dessus.
La liste manuelle n'est pas synchronisée avec la liste d'origine.
La référence à la liste origine (menu, table divers...) est perdue après avoir passé le paramètre gestion à Manuel.
Lorsqu'on ajoute une valeur la fenêtre suivante est affichée.
Le but de cette fenêtre est de saisir la valeur et le libellé de l'entrée.
Sélection du libellé
Le traitement de génération du fichier MEN.xml génère autant de libellés que de langues qui ont été définies pour le site.
Saisie de la valeur
Valeur : par défaut ce champ contient l'index du menu local ou le code de l'entrée de la table diverse utilisé pour le libellé. Il est généralement modifié pour associer des codes spécifiques lorsqu'on on crée un nouvelle liste de valeurs.
Cas des catégories hiérarchiques
Le 'champ lié' est vide par défaut. Il contient le champ de l'entité qui correspond au niveau de catégorie auquel est rattachée la valeur seulement si il est différent de celui défini par défaut dans le tableau 'Champ par défaut (entité)'.
Voir le paragraphe sur les catégories hiérarchiques.
Type
Origine de la liste Message ou Table diverse
Chapitre
N° du chapitre
Table diverse
Code de la table diverse
Libellé court
Oui/Non
Dépendance
Non pour générer un liste simple.
Oui pour générer un liste hiérarchique à partir des dépendances entre tables diverses.
Le chainage des dépendances entre tables diverses est de type 'fils vers le parent' c'est à dire que le paramètre 'Table dépendance' de la fiche 'tables diverse' contient le code de la table parent.
Pour générer une liste valeur hiérarchique à partir d'une table diverse il faut partir de la table parent.
Niveau
Définit la profondeur de l'arborescence c'est à dire le nombre de niveaux de catégories autorisés pour la liste de valeurs.
La liste est créée à partir d'un traitement batch.
Le format du fichier créé par batch doit être identique au format du fichier dictionnaire MEN.xml.
Répertoire racine
Répertoire racine XTEND qui contient les fichier batch
Nous avons défini quatre répertoires racine pour stocker des fichiers XTEND.
Les ressources (fichiers, images...) de ces répertoires sont accessibles par le navigateur via des tokens 'image' ou 'pièces jointes'.
Design HTML et X_FILES peuvent être localisés sur le serveur X3 (défaut) ou sur le serveur de web services.
X_FILEAPP et X_TEND sont toujours localisés sur le serveur X3.
Fichier
Chemin d'accès du fichier batch par rapport au répertoire racine.
Vérifier mise à jour
'Oui' pour activer la vérification périodique (toutes les minutes) de la date de dernière modification du fichier batch.
Les fichiers batch sont rechargés lorsqu'on recharge le dictionnaire XTEND.
Comme nous l'avons vu précédemment on sait créer des listes de valeurs hiérarchiques qui sont représentées sous la forme d'une structure arborescente.
Nous allons voir maintenant comment exploiter cette structure de données sous la forme de tokens dans les pages HTML pour gérer les menus de catégories hiérarchiques.
Un menu de catégories hiérarchiques est constitué de plusieurs ListBoxes affichées via un tag <select> dont les contenus sont inter-dépendants.
Nous prendrons comme exemple les catégories suivantes utilisées pour effectuer des sélections dans un catalogue de voitures :
Niveau 1 : Constructeur
Niveau 2 : Modèle
Niveau 3 : Type Break ou Berline
Niveau 4 : Energie Diesel ou Essence
Les champs de l'entité voiture qui contiennent les code des catégories des niveaux 1,2,3,4 sont respectivement CAT1,CAT2,CAT3 et CAT4.
La première étape consiste à créer la liste de valeurs qui contient l'arborescence des catégories :
Champ par défaut (Entité) : liste des 'tokens champs' qui contiennent les informations sur la catégorie.
Les entités XTEND qui supporteront ce système de catégorie devront obligatoirement comporter les champs définis dans le tableau 'Champ par défaut'.
Dans notre exemple nous saisisons dans l'ordre CAT1,CAT2,CAT3,CAT4 (Voir paragraphe suivant).
Saisie des catégories : à chaque catégorie on associe un libellé et un code catégorie.
N1 - Valeur=REU - Libellé=Renault
N2 - Valeur=CLI - Libellé=Clio
N3 - Valeur=BRK - Libellé=Break
N4 - Valeur=DI - Libellé=Diesel
N4 - Valeur=ES - Libellé=Essence
N2 - Valeur=MEG - Libellé=Megane
...
Le niveau (1, 2, 3,4) de la catégorie correspond au rang (1-N) dans le tableau 'Champ par défaut' et permet d'accéder au nom du champ qui porte la valeur.
Les entités XTEND (issues de données X3) qui supportent les catégories hiérarchique doivent comporter des champs qui contiennent les informations sur la catégorie.
L'entité doit comporter autant de champs catégorie que de niveaux de catégories (un champ par niveau de catégorie).
Dans notre exemple l'entité AUTO doit comporter quatre champs CAT1, CAT2, CAT3, CAT4 pour stocker les catégories.
Les champs catégorie sont associés à la liste de valeurs AUTOS qui contient l'arborescence des catégories.
Ces champs doivent être définis dans le paramètre tableau 'Champ par défaut (Entité)' de la liste de valeurs.
Dans notre exemple le tableau contient CAT1, CAT2, CAT3, CAT4.
Nous avons défini ainsi un lien entre la structure arborescente et l'entité XTEND via les champs catégorie.
Pour exprimer une catégorie hiérarchique nous utilisons une syntaxe de type path avec le caractère / comme séparateur.
Par exemple /REU/CLI/BER, /PEU, /PEU/107.
Pour stocker la catégorie hiérarchique au format path nous utilisons un champ (de travail).
Ce champ de type texte est défini dans le dictionnaire et on lui associe la liste de valeur.
La valeur de ce champ est construite par une fonction JavaScript en fonction des critères sélectionnés par l'utilisateur puis envoyée au serveur XTEND via un champ du formulaire HTML.
Dans notre exemple ce champ a pour nom CATPATH.
Pour effectuer la sélection sur l'entité il faut créer un token lien dynamique et ajouter les critères de sélection.
On crée un critère par champ catégorie et on compare la valeur avec celle du champ qui contient le 'path' de la catégorie.
Formule du token lien dynamique :
CAT1 =web:CATPATH Et CAT2 =web:CATPATH Et CAT3 =web:CATPATH Et CAT4 =web:CATPATH
Pour calculer la valeur du critère le moteur XTEND fait le lien entre le niveau du champ catégorie (CAT1,CAT2...) et la position de la valeur dans le 'path' de la catégorie.
Exemple pour la catégorie /REU/CLI/BER :
Lors de la valorisation des critères de sélection le moteur XTEND effectue le traitement suivant :
1. Lecture de la valeur du champ web CATPATH,
Ce champ contient le path /REU/CLI/BER
2. Pour chaque critère :
Tout se passe comme si le champ CATPATH contenait un tableau ordonné de catégories.
Ce paragraphe décrit comment mettre en oeuvre dans la page HTML :
Les tokens XTEND permettent de traiter ces deux opérations avec un minimum de code JavaScript à développer.
Ci-dessous nous avons créé quatre boites de sélection correspondant aux quatre catégories utilisées pour sélectionner les voitures.
HTML
<table>
<tr>
<td>
<select name="CATPATH1" adx="CATPATH:xlevel=1&xonchange=DLKSELECTAUTOS">
<option value="">Indifférent</option>
</select>
</td>
<td>
<select name="CATPATH2" adx="CATPATH:xlevel=2&xonchange=DLKSELECTAUTOS">
<option value="">Indifférent</option>
</select>
</td>
<td>
<select name="CATPATH3" adx="CATPATH:xlevel=3&xonchange=DLKSELECTAUTOS">
<option value="">Indifférent</option>
</select>
</td>
<td>
<select name="CATPATH4" adx="CATPATH:xlevel=4&xonchange=DLKSELECTAUTOS">
<option value="">Indifférent</option>
</select>
</td>
</table>
Champ CATPATH : contient le 'path' de la catégorie courante (Ex: REU/CLI pour Renault/Clio)
'adx="CATPATH:xlevel=N' : cette syntaxe indique au moteur XTEND qu'il faut remplir la liste des options avec les valeurs de la catégorie correspondant au niveau N de CATPATH :
Au premier affichage de la page CATPATH est vide et c'est l'option 'Indifférent' qui est affichée (value="").
'xonchange=DLKSELECTAUTOS' : exécute le lien dynamique DLKSELECTAUTOS dès que la valeur du champ est modifiée.
Ce paramètre évite d'ajouter un bouton <input type='button' adx="DLKSELECTAUTOS" value="Sélectionner"> sur lequel l'utilisateur doit cliquer après avoir modifié le critère.
Les fonctions JavaScript ci-dessous permettent de calculer le 'path' de la catégorie sélectionnée :
//-------------------------------------
//aObj est l'objet DOM (select) qui a été modifié
//--> nouvelle sélection
//Calcule le niveau (wMaxLevel) de la catégorie en fonction du nom de aObj
//--> CATPATH1 donne niveau 1 - CATPATH2 donne niveau 2 ...
//Calcule le path de la catégorie du niveau 1 à wMaxLevel
//Reset des champs de niveau supérieur à wMaxLevel
//Renvoie le path
function getCatCar(aObj)
{
var wCatPrefix="CATPATH";
var wCat="";
if (!aObj || !aObj.name) return wCat;
var wMaxLevel=parseInt(aObj.name.slice(wCatPrefix.length),10);
for( var i=0;i<wMaxLevel;i++)
{
var wVal=xtdGetFieldVal(wCatPrefix+(i+1));
if (wVal!="")
{
if (i>0) wCat+='/';
wCat+=wVal;
}
}
// Reset des champs
for( var i=wMaxLevel;i<4;i++)
xtdSetField (wCatPrefix+(i+1),"");
return wCat;
}
//-------------------------------------
//xtdDoMyDlk est appelé lorsque l'utilisateur clique sur un lien dynamique
function xtdDoMyDlk(aDomOut)
{
var wContinue=true;
//DLKSELECTAUTOS --> Modification d'un critère de sélection
if (aDomOut.isClickedDynLink("DLKSELECTAUTOS"))
{
//Calcul du path de la catégorie
var wCat=getCatCar(aDomOut.getDynLinkCtx().getHtmlElement());
//Mise à jour du champ CATPATH qui est transmis au moteur XTEND
//--> Voir les critères de sélection du lien DLKSELECTAUTOS
xtdSetField("CATPATH",wCat);
}
return wContinue;
}
Dès que l'utilisateur modifie une catégorie le lien DLKSELECTAUTOS est exécuté.
La fonction 'xtdDoMyDlk' permet d'effectuer des traitement spécifiques avant de soumettre le formulaire au serveur XTEND.
Cette fonction :
En retour, le serveur aura effectué la nouvelle sélection et calculé les nouvelles valeurs des critères de sélection.
La fonction ci-dessous ré-initialise les critères de sélection est recalcule la page.
<script>
function selAllCars(aObj)
{
xtdSelectSetVal("CATPATH1","");
xtdSelectSetVal("CATPATH2","");
xtdSelectSetVal("CATPATH3","");
xtdSelectSetVal("CATPATH4","");
xtdDoDlk(aObj,"DLKSELECTAUTOS");
}
</script>
<input type="button" value="Reset" onClick='javascript:selAllCars(this);'>
Présentation
Champs
Les champs suivants sont présents dans cet onglet :
Bloc numéro 5
Bloc numéro 1
| Code de la liste de valeurs |
| Site Web courant. |
| Permet de définir un intitulé associé à chaque fiche. |
| Les listes de valeurs peuvent être créées :
|
Gestion automatique
| Méthode de lecture du libellé : Message : on doit renseigner le chapitre et le numéro Table diverse : on doit renseigner le code de la table diverse plus des champs supplémentaires. |
| N° du chapitre |
|   |
| Code de la table diverse |
| Cochez pour afficher le libellé court. |
| Non pour générer un liste simple Le chainage des dépendances entre tables diverses est de type 'fils vers le parent' c'est à dire que le paramètre 'Table dépendance' de la fiche 'tables diverse' contient le code de la table parent. Pour générer une liste valeur hiérarchique à partir d'une table diverse il faut partir de la table parent. |
| Définit la profondeur de l'arborescence c'est à dire le nombre de niveaux de catégories autorisés pour la liste de valeurs. |
Gestion batch
| Répertoire racine qui contient les fichiers batch à choisir parmi les répertoires standards de XTEND (Voir documentation de la fonction). |
| Chemin d'accès du fichier batch par rapport au répertoire racine |
| Oui pour activer la vérification périodique (toutes les minutes) de la date de dernière modification du fichier batch. Les fichiers batch sont rechargés lorsqu'on recharge le dictionnaire XTEND |
Tableau Champs par défaut (entité)
| Liste des 'tokens champs' qui contiennent les informations sur la catégorie. L'ordre de saisie correspond au niveau de catégorie. Par exemple pour les catégories de voitures avec les niveaux de catégories suivants : N1 - Constructeur (Champ CAT1) On saisit les champs suivants dans le tableau: CAT1 |
Tableau Graphique tableau
|   |
|   |
| Méthode de lecture du libellé |
| Coordonnées du libellé (Code chapitre) |
| Coordonnées du libellé (N°) |
| Coordonnées du libellé. Code de la table diverse. |
| Coordonnées du libellé |
| Cochez pour afficher le libellé court. |
|   |
| Par défaut ce champ contient l'index du menu local ou le code de l'entrée de la table diverse utilisé pour le libellé. Il est généralement modifié pour associer des codes spécifiques lorsqu'on on crée un nouvelle liste de valeurs. |
| Vide par défaut Contient le champ de l'entité qui correspond au niveau de catégorie auquel est rattachée la valeur seulement si il est différent de celui défini par défaut dans le tableau 'Champ par défaut (entité)'. Voir § catégories hiérarchiques Par exemple pour les catégories de voitures avec les niveaux de catégories suivants : N1 - Constructeur (Champ CAT1) Pour un modèle de voiture qui n'a qu'un seul type (comme une twingo de Renault) le niveau 3 correspond en fait à la catégorie 'Energie' (niveau 4 pour les véhicules standards). Dans ce cas on saisit CAT4 dans le champ 'Champ lié' et 'ES' (essence) dans la valeur. |
|   |
|   |
|   |
|   |
|   |
|   |
Icône Actions
Ce bouton permet de copier une liste de valeurs |