Chapter 9 Guide de référence de la génération (GTL)


Utilisation de macros

Les macros peuvent être utilisées pour exprimer la logique, et pour boucler sur des collections d'objets. Chaque mot clé de macro doit être précédé d'un caractère "." (point) et doit être le premier caractère, autre qu'un espace, sur une ligne. Prenez soin de respecter la syntaxe des macros en termes de passage à la ligne.

Vous pouvez définir une macro dans un template, ou dans une commande.

Il existe trois types de macros :

'.'<nom-macro> ['(' <paramètres> ')' ]
<bloc-entrée-macro>
'.'end<nom-macro> [ '(' <tail> ')' ]

<fin> est une constante de type chaîne facultative et qui est ajoutée au texte généré, s'il existe.

'.'foreach_<nom-macro> ['(' <paramètres> [',' <head> [',' <fin>]] ')' ]
<template-complexe>
'.'next [ '(' <séparateur> ')' ]

<head> et <fin> sont des constantes de type chaîne facultatives. <head> est générée avant, et <fin> est ajoutée après le texte généré, s'il existe.

Un <séparateur> peut également être spécifié comme argument pour le mot clé .next, il est placé entre des évaluations non vide de <template-complexe>.

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 \" .

Pour pouvez utiliser les macros suivantes :

Macros conditionnelles

Ces macros sont utilisées pour la génération conditionnelle. Reportez-vous à la section Macro if.

Macro de boucle/itératives

Ces macros sont des macros pour l'itération des collections (voir Macro foreach_item), des lignes (voir Macro foreach_line) ou des parties (voir Macro foreach_part) du résultat de l'évaluation du template d'entrée spécifié comme premier argument de la macro. La macro break est utilisée pour rompre les boucles (voir Macro break).

Macros d'affectation

Ces macros sont utilisées pour définir une variable locale ou un type de valeur ainsi que des attributs volatiles. Voir Macro set_object, Macro set_value et Macro unset.

Macros de résultats et de signalisation d'erreurs

Ces macros sont utilisées pour communiquer des messages ou des avertissements lors des conversions. Voir les sections Macro log, Macro warning et Macro error.

Macros de commandes

Ces commandes sont utilisées pour incorporer du code de script VB dans un template (voir Macro vbscript), pour lancer des exécutables (voir Macro execute_vbscript et Macro execute_command), et pour interrompre l'exécution des commandes (voir Macro abort_command). Vous pouvez également les utiliser pour changer de répertoire (voir Macro change_dir) et créer un chemin spécifié (voir Macro create_path). Ces macros sont uniquement disponibles dans le contexte de l'exécution d'une commande générique.

Macros de commentaire

Ces macros permettent d'insérer un commentaire dans un template. Voir Commentaire et macro //.

Macros de mise en forme

Ces macros sont utilisées pour transformer un bloc de texte en minuscules (voir Macro lowercase) ou en majuscules (voir Macro uppercase). Elles peuvent également être utilisées pour convertir des noms en code ou des codes en noms au moyen d'une table de conversion (voir Macro convert_name et Macro convert_code).

Macros de manipulation de chaînes

Ces macros sont utilisées pour manipuler des chaînes (remplacer, supprimer, définir comme unique) et ajouter un en-tête et une fin pour un bloc de texte.

Voir Macro replace, Macro delete, Macro unique et Macro block.

Macros diverses

Ces macros collection et object renvoient une collection d'objets en fonction de la portée et de la condition spécifiées, voir Macro collection et Macro object.

La macro bool est utilisée pour évaluer une condition, voir Macro bool.

La macro set_interactive_mode est utilisée pour spécifier si l'exécution du langage de génération par templates doit ou non interagir avec l'utilisateur, voir Macro set_interactive_mode.

Les sections suivantes fournissent une description plus détaillée de chaque macro.

 


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