4D v15

Etiquetas de transformación 4D

Inicio

 
4D v15
Etiquetas de transformación 4D

Etiquetas de transformación 4D  


 

 

Introducido originalmente en 4D v14 R4

Las etiquetas de transformación 4D (anteriormente llamadas Etiquetas HTML 4D) se han extendido:

  • una nueva etiqueta 4DEVAL se ha añadido,
  • la etiqueta 4DLOOP ahora es compatible con cualquier expresión 4D o con un puntero a un array como parámetro.

Nota: el comando PROCESS 4D TAGS se ha extendido también en 4D v14 R4. Para obtener más información, consulte la sección PROCESS 4D TAGS.

Sintaxis: <!--#4DEVAL VarName--> o <!--#4DEVAL 4DExpression-->

La nueva etiqueta 4DEVAL le permite evaluar una variable o una expresión 4D.

Al igual que la etiqueta 4DHTML existente, 4DEVAL no escapa los caracteres HTML al devolver texto. Sin embargo, a diferencia de 4DHTML o 4DTEXT, 4DEVAL le permite ejecutar toda instrucción 4D válida,  incluyendo asignaciones y expresiones que no devuelven ningún valor.

Por ejemplo, puede ejecutar:

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

Puede utilizar los comandos o funciones 4D directamente como expresiones. En este caso, es una buena idea insertar el código de escape del número de comando en el parámetro Expresion4D. De esta manera la expresión se evaluará correctamente sin importar la versión del lenguaje 4D utilizada, o si el nombre del comando cambia en un lanzamiento 4D futuro. La sintaxis a utilizar es "<nombre_comando>:C<número_comando>. Por ejemplo, para llamar Current time Current time, escriba "Current time:C178".

Nota: los números de los comandos se pueden encontrar en la página Comandos del Explorador:



En caso de error de evaluación, el texto insertado será de la forma: “<!--#4DEVAL expression--> : ## error # error code”.

Nota: la ejecución de un método 4D vía un 4DEVAL desde una petición Web requiere que la opción "Disponible a través de las etiquetas 4D y URLs (4DACTION...)" esté seleccionada a en las propiedades del método. Para obtener más información, consulte la sección Seguridad de las conexiones.

4DLOOP  

La etiqueta 4DLOOP ahora acepta dos nuevos tipos de condiciones (además de tabla, array y método): una expresión 4D y un puntero de array

  • <!--#4DLOOP 4DExpression-->
    Con esta sintaxis, la etiqueta 4DLOOP hará un bucle en tanto que la expresión 4D devuelve True. La expresión puede ser cualquier expresión booleana válida y debe contener una parte variable a evaluar en cada bucle para evitar bucles infinitos.

Por ejemplo, el siguiente código:

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

producirá:

0
1
2
3

  • <!--#4DLOOP pointerArray-->
    En este caso, la etiqueta 4DLOOP funcionará como lo hace con un array: se hace un bucle para cada elemento del array. El elemento actual del array se incrementa cada vez que la porción de código se repite.

Esta sintaxis es útil cuando se pasa un puntero de array como parámetro al comando PROCESS 4D TAGS.

Ejemplo:

 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;"elements = ";->$array)
  // $output = "elements = hello world"

 
PROPIEDADES 

Producto: 4D
Tema: Lenguaje

 
HISTORIA 

 
ARTICLE USAGE

4D v15 - Actualización (standard edition) ( 4D v15)