La forme matricielle générale du DIML est implicitement déterminée si les données qu'elle contient ont été stockées dans des variables DIML de forme :
variable-name '§' index(N) '§' index(N-1) ... '§' index(0)
pour une forme de dimension N.
Par exemple :
<%set %CA_MONTH§0§0%="January" %>
<%set %CA_MONTH§1§0%="502,000 $" %>
<%set %CA_MONTH§0§1%="February" %>
<%set %CA_MONTH§1§1%="120,000 $" %>
<%set %CA_MONTH§0§2%="March" %>
<%set %CA_MONTH§1§2%="340,000 $" %>
...
<%set %CA_MONTH§0§11%="December" %>
<%set %CA_MONTH§1§11%="1,200,000 $" %>
peut donner les chiffres d'affaires d'une start-up prospère (pas du labo !!), éventuellement dimensionnée par l'extension :
<%set %CA_MONTH§C§C%="11" %>
<%set %CA_MONTH§C%="2" %>
Les métavariables automatiques de la forme vectorielle sont étendues aux dimensions supplémentaires :
- Les variables indices automatiques associées : variable-name§I, variable-name§I§I... (autant que de dimensions).
- Les variables de dimensionnement (ou bornes supérieures des dimensions de la matrice), variable-name§C, variable-name§C§C ... optionnelle.
- Des éventuelles variables de comptage de la dimension la plus basse (ou borne supérieure des vecteurs de dernière dimension), comme une table de dimension N-1 dont les dont les clefs de variables seraient de la forme variable-name '§C§' index(N-1) '§' index(N-2) ... index(0).
L'ensemble de ces déclarations constituent une forme complètement définie.
La syntaxe d'appel matricielle ci-dessus appelle la valeur correspondant aux valeurs courantes des indices automatiques associés à cette matrice. La formule générale de cet appel est :
variable_name[ variable_name§I, variable_name§I§I, ... variable_name§I§I...§I ]
Bien qu'il fonctionne dans la séquence principale du document, on utilise ce type d'appel essentiellement dans des templates appelés par une instruction itérative. Pour bénéficier de toutes les dimensions de la matrice, on prévoiera une imbrication d'exploration pour chaque dimension de la table, comme dans l'exemple suivant :
<TEMPLATE ID="rows">
<TR><%%cells[*]%%></TR>
</TEMPLATE>
<TEMPLATE ID="cells">
<TD><%%CA_MONTH[][]%%></TD>
</TEMPLATE>
<%set %rows% = %CA_MONTH§C§C% %>
<%set %cells% = %CA_MONTH§C% %>
<TABLE CELLSPACING=2 CELLPADDING=2>
<%%rows[*]%%>
</TABLE>
scalar-formatters : Cette instruction fournissant un résultat scalaire, les attributs de formatage de l'appel scalaire sont applicables.
|