Variables de secuencia de comandos dinámicas
Las variables dinámicas calculan sus propios valores mediante la ejecución de declaraciones y expresiones lógicas. Una variable dinámica se asigna a sí misma el resultado de un cálculo u operación. Los tipos de variables dinámicas son cadena dinámica, número dinámico y verdadero / falso dinámico (booleano).
En la interfaz de usuario, las variables dinámicas se designan con un símbolo de rayo para diferenciarlas de otros tipos de variables. El valor de una variable dinámica es el resultado de declaraciones similares a JavaScript, que pueden incluir expresiones Math.js seleccionadas y funciones adicionales desarrolladas por Genesys. Ver operadores y funciones aritméticas, Referencia de la función MathJS, y funciones adicionales que puede utilizar en variables dinámicas. Una expresión lógica en una variable dinámica puede evaluar el estado de otras variables.
Cada tipo de variable dinámica le permite incrustar una expresión. Estas declaraciones definen el valor de la variable, potencialmente basado en otras variables. El resultado debe coincidir con el tipo de variable dinámica. Por ejemplo, el código de una cadena dinámica debe evaluarse como un valor de cadena.
math.add(1,3),
convert that to add(1,3)
in your dynamic variable. Or, if example code in the MathJS documentation is something like math.fraction(numerator, denominator)
, the equivalent dynamic number variable is the fraction(numerator, denominator)
part.En cuanto a la asignación a la variable dinámica, no lo hace explícitamente; el último valor evaluado se asigna a la variable dinámica. Por ejemplo, si ingresa estas expresiones como una variable dinámica:
x = 5; y = x + 2; x
Las tres expresiones se evalúan en orden descendente. El valor de la última expresión se asigna a la variable dinámica. En este ejemplo, x tiene un valor de 5, que se asigna a la variable dinámica.
Ejemplo 1: Utilice un número dinámico para calcular las entradas del usuario en un formulario
En este ejemplo, una variable numérica dinámica calcula el resultado de varios valores ingresados en un formulario.
En el modo de diseño, una pila vertical de cuadros de entrada solicita la entrada del usuario.
In preview mode or at run time, values entered on the form are calculated by statements in the dNum_TestNum
variable, and the result is shown.
The dNum_TestNum
variable contains the formula that performs this calculation:
{{num_var1}} + {{num_var2}} - {{num_var3}} * {{num_var4}} / {{Num_TestNum}} + 2.1
Para los valores que se muestran arriba, el cálculo es:
10 + 10 - 4 * 2 / 2 + 2.1
El cálculo se realiza siempre que cambia una de las variables que utiliza el cálculo.
In the example shown, the result stored in dNum_TestNum
is 18.1.
Ejemplo 2: Utilice un verdadero / falso (booleano) dinámico para determinar si las variables numéricas coinciden
In this example, a dynamic Boolean variable returns true
if numeric inputs match or false
if they don’t match.
En el modo de diseño, la página muestra dos entradas numéricas cuyos valores se almacenan en variables numéricas. El código en un booleano dinámico los compara por igualdad.
En el modo de vista previa o en tiempo de ejecución, los valores ingresados en el formulario se comparan para determinar la igualdad.
The formula in dBool_Basic
is:
{{num_dBoolTest}} == {{num_dBoolTest2}}
For the values shown, the value of dBool_Basic
is false
since 2 does not equal 1.
El resultado se calcula siempre que cambia el valor de cualquiera de las variables de entrada.
Ejemplo 3: Manipulaciones de cuerdas
In the next two examples, dynamic string variables parse and rewrite user input. An expression in the dStr_Exp
variable rewrites text typed by the user to “This is fun.” An expression in dStr_Test
inverts case when a check box changes state.
Text input by the user is stored in str_overwrite
. Below that is dynamic variable dStr_Exp
performing this expression:
slice("This is fun.", 0 ,length({{str_overwrite}}))
In preview mode or at runtime, any text typed is reworded. The string is rewritten when the value of str_overwrite
changes.
The Swap Lower and Upper check box toggles the case of dStr_Test
. Its formula is:
ifElse({{bool_swapLowerUpper}} == false, lower(slice({{str_HELLO worlds}}, 0, length({{str_HELLO worlds}})-6)) + " " + upper(slice({{str_HELLO worlds}}, length({{str_HELLO worlds}})-6)), upper(slice({{str_HELLO worlds}}, 0, length({{str_HELLO worlds}})-6)) + " " + lower(slice({{str_HELLO worlds}}, length({{str_HELLO worlds}})-6)))
Marque la casilla para invertir la caja de la cuerda.
Ejemplo 4: Utilizar una expresión regular para validar cadenas y números
In this example, a dynamic Boolean variable returns true
if the string input matches the provided regex:
The regex used here is ^\\d{1,4}$:
– the core regex is \d{1,4}
(between one and four digits): the slash is doubled (escaped) because it is a JavaScript string, and it is wrapped in ^
and $
to apply the pattern to the whole strings: by default, partial matches are allowed so without this wrapping, 12345 would pass because of the partial match “1234”.
Para más detalles sobre las Expresiones Regulares y su depuración, consulte Regexr.