Skip to main content
Skip table of contents

Liste des Items groupés

Ce rapport montre comment imprimer l'arborescence hiérarchique du catalogue Items contenant des items. Le rapport traverse la structure de <niveau> qui représente la structure du catalogue d'items. Pour ce faire, nous avons un paragraphe répétitif sur les nœuds de <niveau>. Il est important de noter que les nœuds de <niveau> sont imbriqués entre eux pour représenter la structure hiérarchique. Pour cette raison, il suffit de glisser-déposer le premier niveau sur le document et de créer un paragraphe répétitif sur l'expression qui est créée (/drofus-xml/level). L'expression ne fonctionnera pas parce qu'elle ne fera que se répéter sur les nœuds de <niveau> au niveau supérieur, pas aux niveaux intermédiaires. Pour obtenir ce résultat, nous utilisons une expression qui sélectionnera tous les nœuds de <niveau> <level> dans le document quel que soit son emplacement dans la structure XML. Cette expression peut être :

//niveau

Pour obtenir un retrait pour les sous-groupes, nous utilisons une valeur dynamique pour l'attribut 'Alignement & Retrait -> Démarrer le retrait' réglé sur : concat(@depth*5,'mm'). Ce dernier utilise l'attribut de profondeur pour le niveau qui est de 0 pour le groupe (niveau supérieur), 1 pour les sous-groupes, etc., celui-ci est multiplié par 5 et le résultat est concaténé avec mm, ce qui donne une unité de longueur en millimètres. Vous pouvez utiliser inc pour obtenir des inches (pouces). Ceci donne un retrait de 0 pour les groupes, de 5 pour les sous-groupes, de 10 pour le sous-sous-groupe, etc.
Sous chaque groupe, il y a un tableau comportant des items. Le tableau est à l'intérieur d'un paragraphe conditionnel où la condition est nombre(article) > 0 qui renverra la réponse "faux" s'il n'y a pas d'items dans le groupe. Ceci empêchera l'en-tête du tableau d'apparaître lorsque c'est inutile. Vous pouvez insérer un paragraphe conditionnel en faisant Insérer->Paragraphe Conditionnel.
Le tableau a un en-tête de tableau et une ligne répétable, comme expliqué au paragraphe 3.6. Utilisez l'expression XPATH article.
Dans la source xml, le nœud de niveau a des nœuds inférieurs appelés <article> qui représentent un item. Ce nœud n'a qu'un attribut, @ref, qui contient un identifiant vers un item d'article situé sous le nœud /drofus-xml/article-container. Pour obtenir les données d'item, nous devons faire une recherche dans le bon nœud <article> qui présente ce même identifiant. Pour le faire efficacement, nous créons un index que nous pouvons utiliser. Voir 5.3 pour en savoir plus sur les index. Pour ce faire, collez le code suivant dans la fenêtre Review->Global XSLT (Revue->XSLT Global).

<xsl:key match="article" name="article-index" use="@id"/>

Ceci indexera tous les nœuds <article> à partir de l'attribut d'identifiant.
Pour créer une colonne de tableau, par ex. la colonne n° de FF&E, choisissez Insérer->Zone et tapez l'expression XPATH suivante

key('article-index', @ref)/core/@article_func_no

Ensuite, vous pourrez, bien sûr, copier-coller cette zone dans l'autre colonne. Recherchez les zones disponibles dans article-container/article.
La somme de chaque groupe est imprimée après chaque liste d'items et la somme des groupes et des sous-groupes est également énoncée après chacun des sous-groupes. Pour y parvenir, nous avons deux sections conditionnelles. La première imprimera la somme après chaque liste et ne devra être effectuée que s'il n'y a pas de sous-groupes, ce qui fait que la condition à cela est :

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="8857b095-6d34-46a5-bbca-42a5328e0e10"><ac:plain-text-body><![CDATA[

not(level) [non(niveau)]

]]></ac:plain-text-body></ac:structured-macro>

Pour obtenir le total de tous les groupes ayant des sous-groupes, il faut faire ceci à la fin du dernier sous-groupe. Pour ce faire, nous utilisons la condition suivante :

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="23d646ca-73c1-4f2f-9460-720c17cf8b21"><ac:plain-text-body><![CDATA[

not(following-sibling::level) and parent::level [non(suivant-frère::niveau) et intermédiaire::niveau]

]]></ac:plain-text-body></ac:structured-macro>

Celui-ci s'assure que c'est le dernier niveau et qu'il a un niveau intermédiaire.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.