Chapter 9 Guide de référence de la génération (GTL)
La macro .foreach_part procède à l'itération sur la partie du template en entrée spécifiée comme premier argument de la macro. Le template spécifié dans le bloc est converti pour chaque partie de l'entrée.
Une partie est délimitée avec un motif de séparation. Il existe deux types de séparateurs :
.foreach_part '(' <entrée> [',' <séparateur-motif> [',' <en-tête> [, <fin>]]] ')' <template-simple> .next['(' <séparateur> ')']
Cette macro crée une nouvelle portée dans laquelle la variable locale CurrentPart est définie comme la i-ème partie du template en entrée à l'itération i. La variable locale Separator contient le séparateur suivant.
Cette macro est particulièrement utile lorsque vous travaillez sur les conventions de dénomination.
Pour plus d'informations les conventions de dénomination, reportez-vous à la section "Définition des conventions de dénomination", dans le chapitre "Gestion des modèles" du manuel Guide des fonctionnalités générales.
Le <séparateur-motif> est défini dans une chaîne entre guillemets et se comporte comme suit :
Par exemple, le motif suivant " -_,[A-Z]" spécifie que chaque partie peut être séparée par un espace, un tiret, un trait de soulignement, une virgule ou un caractère compris entre A et Z (majuscule).
Par défaut, le <séparateur-motif> est initialisé avec le motif (" -_,\t"). Si le motif spécifié est vide, le motif est initialisé à l'aide de la valeur par défaut.
Un séparateur <séparateur> peut être concaténé entre chaque partie. Les expressions <en-tête> et <fin> peuvent être ajoutées respectivement au début ou à la fin de l'expression générée.
Paramètre | Type | Description |
---|---|---|
<entrée> | Template simple | Texte en entrée sur lequel l'itération est effectuée |
<séparateur-motif> | Texte | Liste de séparateurs |
<en-tête> (facultatif) | Texte | Généré avant le résultat, s'il y en a un |
<fin> (facultatif) | Texte | Ajouté au résultat, s'il y en a un |
<séparateur> (facultatif) | Texte | Généré entre évaluations non vides de <template-complexe> |
Le résultat est composé des évaluations concaténées de <template-complexe> pour chaque partie du template <entrée> converti.
Exemples :
Convertit un nom en code de classe (conventions de dénomination Java). Dans l'exemple suivant, la variable %Name% équivaut à 'Employee shareholder', et est convertie en 'EmployeeShareholder' :
.foreach_part (%Name%, " _-'") %.FU:CurrentPart% .next
Convertit un nom en code d'attribut de classe (conventions de dénomination Java). Dans l'exemple suivant, la variable %Name% équivaut à 'Employee shareholder', et est convertie en 'employeeShareholder':
.set_value(_First, true, new) .foreach_part(%Name%,"' _-'") .if (%_First%) %.L:CurrentPart% .set_value(_First, false, update) .else %.FU:CurrentPart% .endif .next
Copyright (C) 2005. Sybase Inc. All rights reserved. |
![]() |