동적 스크립트 변수
동적 변수는 명령문과 논리식을 실행하여 자체 값을 계산합니다. 동적 변수는 계산 또는 연산의 결과를 자신에게 할당합니다. 동적 변수 유형은 동적 문자열, 동적 숫자 및 동적 True/False(Boolean)입니다.
사용자 인터페이스에서 동적 변수는 다른 변수 유형과 구별하기 위해 번개 기호로 지정됩니다. 동적 변수의 값은 선택한 Math.js 표현식과 Genesys에서 개발한 추가 기능을 포함할 수 있는 JavaScript와 유사한 명령문의 결과입니다. 보다 산술 연산자 및 함수, MathJS 함수 참조, 그리고 동적 변수에서 사용할 수 있는 추가 기능. 동적 변수의 논리식은 다른 변수의 상태를 평가할 수 있습니다.
각 동적 변수 유형을 사용하여 표현식을 포함할 수 있습니다. 이러한 명령문은 잠재적으로 다른 변수를 기반으로 하는 변수의 값을 정의합니다. 결과는 동적 변수의 유형과 일치해야 합니다. 예를 들어, 동적 문자열의 코드는 문자열 값으로 평가되어야 합니다.
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.동적 변수에 할당하는 경우 명시적으로 수행하지 않습니다. 평가된 마지막 값이 동적 변수에 할당됩니다. 예를 들어 다음 표현식을 동적 변수로 입력하는 경우:
x = 5; y = x + 2; x
세 표현식 모두 하향식 순서로 평가됩니다. 마지막 표현식의 값이 동적 변수에 할당됩니다. 이 예에서 x의 값은 5이며 동적 변수에 할당됩니다.
예 1: 동적 숫자를 사용하여 양식의 사용자 입력 계산
이 예에서 동적 숫자 변수는 양식에 입력된 여러 값의 결과를 계산합니다.
디자인 모드에서 입력 상자의 수직 스택은 사용자 입력을 요청합니다.
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
위에 표시된 값의 경우 계산은 다음과 같습니다.
10 + 10 - 4 * 2 / 2 + 2.1
계산에 사용되는 변수 중 하나가 변경될 때마다 계산이 수행됩니다.
In the example shown, the result stored in dNum_TestNum
is 18.1.
예 2: 동적 True/False(부울)를 사용하여 숫자 변수가 일치하는지 확인
In this example, a dynamic Boolean variable returns true
if numeric inputs match or false
if they don’t match.
디자인 모드에서 페이지는 값이 숫자 변수에 저장된 두 개의 숫자 입력을 보여줍니다. 동적 부울의 코드는 동일한지 비교합니다.
미리 보기 모드에서 또는 런타임에 양식에 입력된 값이 같은지 비교됩니다.
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.
결과는 입력 변수 중 하나의 값이 변경될 때마다 계산됩니다.
예 3: 문자열 조작
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)))
문자열의 대소문자를 반전하려면 확인란을 선택합니다.
예 4: 정규식을 사용하여 문자열 및 숫자의 유효성 검사
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”.
정규식 및 디버깅에 대한 자세한 내용은 다음을 참조하세요. 정규식.