4D v15

Balises de transformation 4D

Accueil

 
4D v15
Balises de transformation 4D

Balises de transformation 4D  


 

 

Introduit dans 4D v14 R4

Les balises de transformation 4D (précédemment appelées Balises HTML 4D) ont été étendues :

  • la nouvelle balise 4DEVAL est disponible,
  • la balise 4DLOOP prend désormais en charge toute expression 4D ou un pointeur de tableau en tant que paramètre.

Note : La commande PROCESS 4D TAGS a également été étendue. Pour plus d'informations, veuillez vous reporter à la section PROCESS 4D TAGS.

Syntaxe : <!--#4DEVAL NomVar--> ou <!--#4DEVAL Expression4D-->

La nouvelle balise 4DEVAL vous permet d'évaluer une variable ou une expression 4D.

Tout comme la balise existante 4DHTML, 4DEVAL n'échappe pas les caractères HTML lorsqu'elle retourne du texte. Cependant, à la différence de 4DHTML ou 4DTEXT, 4DEVAL vous permet d'exécuter toute instruction 4D valide, y compris des affectations ou des expressions qui ne retournent pas de valeur.

Par exemple, vous pouvez exécuter :

 $input:="<!--#4DEVAL a:=42-->" //affectation
 $input:=$input+"<!--#4DEVAL a+1-->" //calcul
 PROCESS 4D TAGS($input;$output)
  //$output = "43"

Vous pouvez utiliser une commande 4D ou une fonction 4D directement en tant qu'expression. Dans ce cas, il est conseillé d'insérer le code d'échappement du numéro de commande dans le paramètre Expression4D. De cette manière, l'expression sera correctement évaluée quelle que soit la langue de 4D ou en cas de renommage ultérieur de la commande. La syntaxe à utiliser est "<nom_commande>:C<numéro_commande>". Par exemple, pour appeler Current time, écrivez "Heure courante:C178".

Note : Les numéros des commandes sont indiqués dans la page Commandes de l'Explorateur:

En cas d’erreur d’évaluation, le texte inséré sera de la forme “<!--#4DEVAL expression--> : ## erreur # code d’erreur”.

Note : Exécuter une méthode 4D via un 4DEVAL depuis une requête Web requiert que l'option "Disponible via les balises et les URLs 4D (4DACTION...)" soit cochée dans les propriétés de la méthode. Pour plus d'informations sur ce point, reportez-vous à la section Sécurité des connexions.

4DLOOP  

La balise 4DLOOP accepte désormais deux nouveaux types de conditions (en plus de table, tableau et méthode) : une expression 4D et un  pointeur de tableau

  • <!--#4DLOOP expression4D-->
    Avec cette syntaxe, la balise 4DLOOP effectue une boucle tant que l'expression 4D retourne Vrai. L'expression peut être toute expression booléenne valide et doit contenir une partie variable évaluée à chaque boucle afin d'éviter les boucles infinies.

Par exemple, le code suivant :

<!--#4DEVAL $i:=0-->
<!--#4DLOOP ($i<4)-->
<!--#4DEVAL $i-->
<!--#4DEVAL $i:=$i+1-->
<!--#4DENDLOOP-->

génère le résultat suivant :

0
1
2
3

  • <!--#4DLOOP pointeurTab-->
    Dans ce cas, la balise 4DLOOP se comporte exactement comme avec un tableau : elle effectue une boucle pour chaque élément du tableau pointé. L'élément courant du tableau est incrémenté chaque fois que le morceau de code est répété.

Cette syntaxe est principalement utile lorsque vous passez un pointeur de tableau en paramètre à la commande TRAITER BALISES 4D.

Exemple :

 ARRAY TEXT($array;2)
 $array{1}:="hello"
 $array{2}:="world"
 $input:="<!--#4DEVAL $1-->"
 $input:=$input+"<!--#4DLOOP $2-->"
 $input:=$input+"<!--#4DEVAL $2->{$2->}--> "
 $input:=$input+"<!--#4DENDLOOP-->"
 PROCESS 4D TAGS($input;$output;"éléments = ";->$array)
  // $output = "éléments = hello world "

 
PROPRIÉTÉS 

Produit : 4D
Thème : Langage

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D v15 - Mise à jour (édition standard) ( 4D v15)