Libellés HTML
Introduction
Le moteur de configuration commerciale comprend un outil de génération des libellés.
A la sortie de chaque contexte, un libellé propre peut être créé par la concaténation de chaînes de caractères.
Chaque chaine comprend un préfixe, le contenu d’une variable (c'est-à-dire la réponse à une question du contexte sous forme de valeur brute ou de désignation) et un suffixe.
Tous ces libellés peuvent ensuite alimenter les variables de la ligne de commande commerciale pour être exploitées dans les écrans utilisateur et les éditions.
Pour les documents édités via Crystal Reports, il est possible de définir dans le libellé des codes de mise en forme qui seront traduits dans le document Crystal sous forme de sauts de ligne, tabulations, attributs de caractères (couleur, gras, italique et taille de police).
Une prévisualisation de cette mise en forme est également disponible dans Diapason dans l’assistant du configurateur notamment.
Construction des libellés
Pour des informations complètes, se référer à la documentation du moteur de configuration commerciale.
Accès STANDARD à la Gestion des Libellés
Maintenance Configuration Commerciale -> Maintenance du détail du scénario -> Choix du scénario -> Actions -> Gestion des Contextes -> Choix du contexte -> Gestion des libellés
Les libellés étant générés à la sortie de chaque contexte, leur conception se fait contexte par contexte.
N.B. : les variables alimentées dans des contextes père peuvent être disponibles pour les libellés des contextes fils (par exemple le type de fermeture est disponible dans le contexte Châssis mais aussi dans les contextes Fermeture et Manœuvre) toutefois, leur désignation (DES) n’est plus disponible.
Accès direct à la Gestion des Libellés
Règles Données Commerciales -> Maintenance des Libellés
Choisir le scénario à paramétrer et laisser le champ contexte vide.
Sélectionner éventuellement un type de désignation à gérer.
Ainsi, le tableur présente directement l’ensemble des composantes de libellés pour tout le scénario.
Types de désignations
On peut générer plusieurs types de désignations (par exemple à usage interne et à usage externe) qui vont chacun pouvoir alimenter une variable différente afin d’être exploités à convenance.
A partir de la gestion des libellés -> Actions -> Gestion des types de désignation
Dans cet exemple, il est prévu d’alimenter deux variables ‘standard’ du moteur de configuration (VBA.IScDesCtxLong & VBA.IScDesCtxCourt) pour une désignation Chantier et une désignation Diffus.
Le moteur génère également automatiquement les IT correspondantes de type IScLib_TypeDeDésignation
Conception d’un libellé
Il faut insérer ligne après ligne les composantes du libellé à générer pour le contexte :
Sélectionner un type de désignation
Saisir un numéro d’ordre qui, à défaut, pilotera l’ordre de concaténation des composantes et l’affichage dans le tableur
Saisir les trois niveaux de tri avancé (voir plus loin)
Sélectionner la variable à présenter (une par composante)
Saisir un préfixe (chaîne de caractère précédent la variable)
Sélectionner si on doit afficher la valeur (référence) contenue dans la variable ou la désignation associée (par exemple VAL : GTI ou DES : Gauche tirant vue ferrage)
Saisir un suffixe.
Saisir un commentaire (facultatif)
L’exemple précédent génèrera deux composantes qui donneraient pour résultat (avec VBA.s_gammecom = ClaraTrans et VBA.s_couleur = blanc) :
Châssis ClaraTrans blanc
Classement des composantes de libellés
Afin de désigner correctement un article il convient de classer les composantes de libellés générées pour les présenter dans un ordre logique.
Colonne N° d’ordre originale Ordre de Priorité
Initialement un champ numérique simple permet de classer les composantes de libellés sur une dimension.
Colonnes de classement avancé Ordre de tri Sup 1 à 3
Afin de donner plus de souplesse à la construction de la désignation et de s’affranchir de l’arborescence des contextes du scénario commercial, 3 colonnes ont été ajoutées.
Ces colonnes de type caractère permettent de saisir des formules ou une valeur fixe.
N.B. : Dans tous les cas, le résultat doit être de type numérique.
Ces informations sont ensuite stockées dans les 3 valeurs numériques des IT (Infos Techniques) libellés générés.
Ces valeurs peuvent ensuite être utilisées dans diverses requêtes pour classer les libellés ou composantes de libellés générés.
Voir chapitre suivant.
Utilisation des colonnes de classement avancé (nécessite les requêtes appropriées GCA.CdeLibIT et la GCQ.CdeLibIT pour affichage dans l’assistant).
L’utilisation proposée est la suivante :
Première colonne : niveau pris en compte dans la branche des contextes générés
Deuxième colonne : ordre sur le niveau
Troisième colonne : ordre pour le contexte
Pour bien expliquer le fonctionnement de ce triplet, prenons l’exemple de l’arborescence de modèles de contextes suivante :
0 Ensemble
1 Châssis
2 Vantail
3 Vitrage
2 Fermeture
La configuration pourrait donner l’arborescence suivante
A Ensemble
AA Châssis 1
AAA Vantail 1
AAAA Vitrage 1
AAAB Vitrage 2
AAAC Vitrage 3
AAB Vantail 2
AABA Vitrage 1
AABB Vitrage 2
AAC Fermeture
AB Châssis 2
ABA Vantail 1
ABAA Vitrage 1
ABAB Vitrage 2
ABB Vantail 2
ABBA Vitrage 1
ABC Fermeture
Si on souhaite générer un libellé du type suivant :
Ensemble avec fermetures AAC et ABC
Châssis 1 avec vitrages 1,2,3
Vantail 1
Vantail 2
Châssis 2 avec vitrages 1, 2
Vantail 1
Vantail 2
On peut paramétrer les composantes suivantes :
Contexte | Condition | Libellé | Ordre Tri 1 | Ordre Tri 2 | Ordre Tri 3 |
Ensemble | Ensemble | 0 | 10 | 10 | |
Châssis | Châssis | 1 | 10 | 10 | |
Vantail | 3 | 10 | 10 | ||
Vitrage | Si premier vitrage | avec vitrage | 1 | 20 | 10 |
Vitrage | Si nb vitrages > 1 | s | 1 | 20 | 20 |
Vitrage | N° de vitrage | 1 | 20 | 30 | |
Vitrage | Si pas dernier vitrage | , | 1 | 20 | 40 |
Fermeture | Si première fermeture | avec fermeture | 0 | 20 | 10 |
Fermeture | Si nb fermetures > 1 | s | 0 | 20 | 20 |
Fermeture | N° fermeture | 0 | 20 | 30 | |
Fermeture | Si pas dernière fermeture | et | 0 | 20 | 40 |
Fermeture | Si dernière fermeture | Retour chariot | 0 | 20 | 50 |
NB : la colonne n°1 permet de remonter une composante de libellé par rapport à la branche du contexte où il est généré. On ne peut pas descendre un libellé au niveau d’un contexte inférieur par ce biais. Par contre, on peut générer la composante sur un contexte inférieur puisque toutes les VBA des contextes supérieurs sont visibles sur un contexte.
Codification HTML des attributs
Afin de pouvoir structurer et mettre en valeur les désignations, il est proposé de codifier directement dans la désignation les attributs et comportement grâce aux balises HTML.
Les balises sont délimitées par les caractères <Code>.
La chaîne de caractère à formater doit être délimitée par une balise ouvrante (par exemple <b> pour gras (bold)) et d’une balise de fin </Code> comme par exemple </b>
Les balises HTML suivantes sont prises en charge :
html
body
div (applique un saut de paragraphe)
tr (applique uniquement un saut de paragraphe, ne conserve pas la structure de colonnes d'une table)
span
font
p (applique un saut de paragraphe)
br (applique un saut de paragraphe)
h1 (applique un saut de paragraphe, met la police en gras et double la taille par défaut)
h2 (applique un saut de paragraphe, met la police en gras et multiplie la taille par défaut par 1,5)
h3 (applique un saut de paragraphe, met la police en gras et multiplie la taille par défaut par 9/8)
h4 (applique un saut de paragraphe, met la police en gras)
h5 (applique un saut de paragraphe, met la police en gras et multiplie la taille par défaut par 5/6)
h6 (applique un saut de paragraphe, met la police en gras et multiplie la taille par défaut par 5/8)
center
big (augmente la taille de la police de 2 points)
small (réduit la taille de la police de 2 si elle est au moins égale à 8)
b
i
s
strike
u
Les attributs suivants sont pris en charge :
align
face
size
color
style
font-family
font-size
font-style
font-weight
Cas particulier sur la Structure
Tabulation code = <dd> ou @
Retour chariot code = <br> ou |
Attention : Les attributs de mise en forme des caractères sont valables pour toute la chaîne de caractères située après la balise ouvrante et tant que la balise fermante correspondante n’est pas trouvée même pour des composantes de libellés construites éventuellement
Exemple de formatage de libellé :
Libellé avant :
Châssis de <b><i><font size = 5 color = ‘blue’ face = ‘Freestyle script’> type
Variable :
VBA.s_gammecom
Valeur ou désignation :
DES
Libellé après :
</font></i><b>avec<br><dd><font color = ‘red’>par exemple.</font>
Donnera :
Châssis de type SYM avec
par exemple.
Paramétrage de l’alimentation des variables de la ligne de commande commerciale
La requête GCA.CdeLibIT traite les IT de composantes de libellés en fonction des clés de tri et génère deux formats de libellés par type de désignation (par exemple Libellé long et libellé court).
Le format ‘clean’ est structuré (retour chariot et tabulations) et débarrassé de ses attributs HTML (pour affichage dans Diapason).
Le format ‘brut’ est utilisable dans Crystal avec interprétation des codes HTML.
Les désignations sont aussi coupées, si nécessaire, en 3 chaînes de 1022 caractères au maximum.
Dans l’état actuel de la requête,
VDL.DesComGen, VDL.DesComGen2 et VDL.DesComGen3 contiennent la désignation longue brute.
VDL.DesComGenCrt contient la désignation courte.
SDL.CdeLigDesArt, VDL.CdeLigDesArt2 et VDL.CdeLigDesArt3 contiennent la désignation longue sans attributs.
VDL.CdeLigDesArtCrt contient la désignation courte sans attributs.
N.B. : la GCA doit être branchée sur les clients.
Affichage du libellé mis en forme dans l’assistant du configurateur
La requête GCQ.CdeLibIT génère la désignation à partir des IT de composantes de libellés.
Celle-ci doit être branchée sur l’onglet Zone d’assistance du scénario en règle d’affichage.
Cocher le Format HTML pour interpréter les attributs s’il y en a.
Programmation Crystal
Mise en forme du champ
Chaque champ de désignation est paramétré comme suit :
Format par défaut souhaité (si absence de balises html)
Le paragraphe doit utiliser l’interprétation HTML
N.B. : avec l’interprétation HTML, les codes Chr() ne sont pas interprétés mais sont remplacés par un espace.
Structuration du champ
Retour à la ligne
Le retour à la ligne est interprété automatiquement par la balise <br> : pas de paramétrage particulier.
Tabulation
La notion de tabulation en tant que telle n’existe pas dans la codification HTML. Les tabulations sont en général pilotées par des instructions CSS non disponibles pour Crystal.
Dans le cas du paramétrage en exemple, les tabulations codifiées <dd> ou @ sont simplement remplacées par un espacement fixe indépendant de la police ou de la taille des caractères grâce à la formule suivante :
Replace(Replace(TrimLeft ({@DesComGen}),'@','<font face = "arial" size = 1 color = white>'& ReplicateString ('-', 10) & '</font>'),'|','<br>')
Exemple de paramétrage
Tableur des libellés
Assistant du scénario
Résultat dans le scenario :