Téléchargement des produits


Version anglaise


 

Cette macro est le pendant de la macro groupHeader. En plaçant cette macro dans le contenu de la macro groupList, il est possible, lors du parcours de la séquence ordonnée, de détecter lorsque l'élément courant est le dernier élément d'un groupe afin d'exécuter le contenu imbriqué de cette macro.

 

Cette macro peut être utilisée pour afficher des informations sur le groupe courant (un sous-total par exemple) après avoir affiché le contenu de l'élément courant.

 

Lors du parcours de la séquence ordonnée, le contenu imbriqué de cette macro ne s'exécutera qu'une fois par groupe : lorsque l'élément courant est le dernier du groupe.

 

Par exemple

<#assign seqData = [{"name": "mary", "age": 18},
{"name": "Lucy", "age": 19},
{"name": "Mark", "age": 19},
{"name": "Charlie", "age": 17},
{"name": "Aaron", "age": 18},
{"name": "Tess", "age": 16},
{"name": "Isaac", "age": 16}
]/>
<#assign orderingCriteria = {"name": "original_order_by_age", "colName": "age", "order":"o"} />
<@hardisAdv.groupList .data_model.seqData orderingCriteria; aPerson>
${ aPerson.name} has ${ aPerson.age }
<@hardisAdv.groupFooter "original_order_by_age">
End of age group.
</@hardisAdv.groupFooter>
</@hardisAdv.groupList> 

 

a pour résultat :

Mary has 18

End of age group.

Lucy has 19

Mark has 19

End of age group.

Charlie has 17

End of age group.

Aaron has 18

End of age group.

Tess has 16

Isaac has 16

End of age group.


De plus, il est possible d'accéder aux informations du groupe de l'élément courant, en passant à la macro une variable de boucle qui sera alimentée par celle-ci et pourra être utilisée dans son contenu imbriqué. Cette variable est un objet Hash qui regroupe les informations sur le groupe via les attributs suivants :

  • label : titre du groupe,
  • startRow : numéro de ligne dans la séquence ordonnée du premier élément du groupe,
  • endRow : numéro de ligne dans la séquence ordonnée du dernier élément du groupe,
  • namedGroup : nom du groupe nommé si le groupe de l'élément courant est un groupe nommé.


Par exemple

<#assign seqData = [{"name": "mary", "age": 18},
{"name": "Lucy", "age": 19},
{"name": "Mark", "age": 19},
{"name": "Charlie", "age": 17},
{"name": "Aaron", "age": 18},
{"name": "Tess", "age": 16},
{"name": "Isaac", "age": 16}
]/>
<#assign orderingCriteria = {"name": "original_order_by_age", "colName": "age", "order":"o"} />
<@hardisAdv.groupList .data_model.seqData orderingCriteria; aPerson>
${ aPerson.name} has ${ aPerson.age }
<@hardisAdv.groupFooter "original_order_by_age"; infoGroupOriginalOrderByAge>
End of group of ${ infoGroupOriginalOrderByAge .label}: ${ infoGroupOriginalOrderByAge .endRow - infoGroupOriginalOrderByAge .startRow } people
</@hardisAdv.groupFooter>
</@hardisAdv.groupList>


 

a pour résultat :

Mary has 18

End of group of 18: 1 people

Lucy has 19

Mark has 19

End of group of 19: 2 people

Charlie has 17

End of group of 17: 1 people

Aaron has 18

End of group of 18: 1 people

Tess has 16

Isaac has 16

End of group of 16: 2 people
Directive vide : Non

 

Paramètres

String

groupName

Nom du groupe dont on veut détecter la sortie lors du parcours

Obligatoire

 

Par exemple

<@hardisAdv.groupList .data_model.seqItems orderingCriteria; aItem>
<@hardisAdv.groupHeader "orderGroup1"; infoGroup>
Beginning of group ${ infoGroup.label }
</@hardisAdv.groupHeader>
... ${ aItem.fooAttribute} ...
<@hardisAdv.groupFooter "orderGroup1"; infoGroup>
End of group ${ infoGroup.label }
</@hardisAdv.groupFooter>
</@hardisAdv.groupList> 


↑ Haut de page



 

 

  • Aucune étiquette