Google Chercher dans diml.org
[ english ]

Table des matières
Scénario
Les données
Le motif de remplissage
Le dimensionnement du motif
La réalisation du motif  Dernières infos
 Une application du composant  WCT_NEWS  
>> Haut de la page

Le DIML Vectoriel : Exemple 2. Remplissage autodimensionnable.

Scénario

Le remplissage autodimensionnable permet au designer de ne pas avoir à prévoir le nomre d'itérations d'un motif. Il ressemble au cas précédent en ce sens que les données sont sensées avoir été fournies sous forme d'un vecteur DIML, issus vraisemblablement d'une extraction de base de donnée mais dont la taille peut être inconnue ou variable.

Le problème est que l'on ne peut se contenter de produire plus de motifs que de données disponibles. En effet, les dernières ligne, nous l'avons vu, produiraient la "glue" du template, vide de variables, mais qui constituent un code erroné.

Le motif de remplissage ne change pas, et les donénes sot toujours fournies de la même façon. Cependant, c'est la forme de réalisation qui va changer, en exploitant la syntaxe spéciale "tant qu'y en a" du DIML. Cette itération particulière doit néanmoins recevoir une variable de dimensionnement, donnée par les "fournisseurs de données", qui par convention est un dimensionnement du template reproduit.

Les données

<%%LISTE_COULEUR§0%%>   rouge
<%%LISTE_COULEUR§1%%>   vert
<%%LISTE_COULEUR§2%%>   bleu
<%%LISTE_COULEUR§3%%>   jaune
<%%LISTE_COULEUR§4%%>   violet
<%%LISTE_COULEUR§5%%>   brun
<%%LISTE_COULEUR§6%%>   blanc
<%%LISTE_COULEUR§7%%>   turquoise

<%%CODE_COULEUR§0%%>   0
<%%CODE_COULEUR§1%%>   1
<%%CODE_COULEUR§2%%>   2
<%%CODE_COULEUR§3%%>   3
<%%CODE_COULEUR§4%%>   4
<%%CODE_COULEUR§5%%>   5
<%%CODE_COULEUR§6%%>   6
<%%CODE_COULEUR§7%%>   7

Le motif de remplissage

<TEMPLATE ID="OPTION">
   <OPTION VALUE="<%%CODE_COULEUR[]%%>"><%%LISTE_COULEUR[]%%></OPTION>
</TEMPLATE>

Le motif appelle les matrices CODE_COULEUR et LISTE_COULEUR pour réaliser les "n" options nécessaires.

Le dimensionnement du motif

Pour que l'itération s'arrête, il faut qu'il n'y ait plus de données à produire. Cependant, le motif OPTION ne peut déterminer les tableaux qu'il utilise (ceux-ci peuvent être "cachés" sous de multiples niveaux d'imbrication DIML). C'est par conséquent au niveau du template même que le dimensionnement s'effectue, en fixant un indice de dimensionnement standard :

<%%OPTION§C%%>   8

La réalisation du motif

Le motif se réalise par appel d'une syntaxe itérative indéfinie :

<%%OPTION[*]%%>

qui appelle toutes les itérations souhaitées du motif OPTION:

<OPTION VALUE="0">rouge</OPTION>
<OPTION VALUE="1">vert</OPTION>
<OPTION VALUE="2">bleu</OPTION>
<OPTION VALUE="3">jaune</OPTION>
<OPTION VALUE="4">violet</OPTION>
<OPTION VALUE="5">brun</OPTION>
<OPTION VALUE="6">blanc</OPTION>
<OPTION VALUE="7">turquoise</OPTION>

Notez que, par la réalisation de ce motif :

  • L'indice automatique du template OPTION (<%%OPTION§I%%>)a tourné et vaut 8.
  • Les indices automatiques des tableaux <%%LISTE_COULEUR§I%%> et <%%CODE_COULEUR§I%%> ont tourné et valent 8.
  • Continuer à réaliser des motifs OPTION conduirait à l'écriture de lignes fausses:

<OPTION VALUE=""></OPTION>
<OPTION VALUE=""></OPTION>
<OPTION VALUE=""></OPTION>
<OPTION VALUE=""></OPTION>
<OPTION VALUE=""></OPTION>
<OPTION VALUE=""></OPTION>
précédent sommaire suivant


All material is copyleft V.G. FREMAUX (EISTI France) 1999 to 2003 except explicitly mentioned