Chapter 5 Personnalisation de la génération à l'aide du langage de génération par template


Macro .foreach_item

Cette macro est utilisée pour l'itération dans les collections d'objet :

.foreach_item (collection [,en-tête [,fin [,condition [,comparaison]]]])
	template-complexe
.next [(séparateur)]

Le template spécifié au sein du bloc est converti sur tous les objets contenus dans la collection spécifiée.

Si une comparaison est spécifiée, les éléments de la collection sont pré-triés en fonction de la règle correspondante avant leur itération.

Les paramètres suivants sont disponibles :

Paramètre Description
collection Collection sur laquelle l'itération est effectuée

Type : Template simple
en-tête [facultatif] Généré avant le résultat, s'il y en a un

Type : Texte
fin [facultatif] Ajouté au résultat, s'il y en a un

Type : Texte
condition [facultatif] Si spécifié, seuls les objets qui satisfont la condition sont considérés lors de l'itération

Type : Condition simple
comparaison [facultatif] est évalué au sein d'une portée dans laquelle deux objets locaux respectivement nommés 'Item1' et 'Item2' sont définis. Ils correspondent aux éléments dans la collection. <comparaison> doit être évalué comme true si Item1 doit être placé après Item2 dans l'itération

Type : Condition simple
template-complexe Template à appliquer à chaque élément.

Type : Template complexe
séparateur [facultatif] Générer entre deux évaluations de template-complexe non vides

Type : Texte

Note   Délimiteurs de paramètres de macro
Les paramètres de macro peuvent être délimités par des guillemets. Les délimiteurs sont requis lorsque la valeur du paramètre inclut des virgules, des accolades et des espaces de début ou de fin. La séquence d'échappement pour les guillemets au sein d'un paramètre est \" .

Exemple :

Attribut Type de données Valeur initiale
cust_name String __
cust_foreign Boolean false

.foreach_item(Attributes,,,,%Item1.Code% >= %Item2.Code%))
	Attribute %Code%[ = %InitialValue%];
.next(\n)

Le résultat est le suivant :

Attribute cust_foreign = false

Attribute cust_name;

Remarque

Les quatre virgules après (Attributes,,,, signifient que tous les paramètres (en-tête, fin, condition et comparison) sont sautés.

 


Copyright (C) 2008. Sybase Inc. All rights reserved.