Перейти к основному содержимому

Расширение со знаком доллара с использованием переменной

При использовании переменной для текстового замещения в скрипте или в выражении используется следующий синтаксис:

$(variablename)      

$(variablename) расширяется до значения в переменной. Если элемент variablename не существует, расширение будет пустой строкой.

Для расширений числовых переменных используется следующий синтаксис:

$(#variablename)      

Он всегда возвращает допустимое представление десятичной точки числового значения переменной, возможно, в экспоненциальной нотации (для очень больших/малых чисел). Если элемент variablename не существует или не содержит числовое значение, вместо этого будет выполнено расширение до 0.

Example:  

SET DecimalSep=',';

LET X = 7/2;

Расширение со знаком доллара $(X) будет расширяться до 3,5, в то время как $(#X) будет расширяться до 3.5.

Example:  

Set Mypath=C:\MyDocs\Files\;

...

LOAD * from $(MyPath)abc.csv;

Данные будут загружены из файла по пути C:\MyDocs\Files\abc.csv.

Example:  

Set CurrentYear=1992;

...

SQL SELECT * FROM table1 WHERE Year=$(CurrentYear);

Строки с элементом Year=1992 будут выбраны.

Example:  

Set vConcatenate = ; For each vFile in FileList('.\*.txt') Data: $(vConcatenate) LOAD * FROM [$(vFile)]; Set vConcatenate = Concatenate ; Next vFile

В этом примере все файлы .txt в каталоге загружаются с помощью префикса Concatenate. Это может потребоваться, если поля отличаются незначительно, так как в этом случае автоматическое объединение не работает. Переменная vConcatenate изначально задается в пустую строку, поскольку префикс Concatenate не используется при первой загрузке. Если каталог содержит три файла под именами file1.txt, file2.txt и file3.txt, оператор LOAD за время трех итераций расширится до:

LOAD * FROM[.\file1.txt];

Concatenate LOAD * FROM[.\file2.txt];

Concatenate LOAD * FROM[.\file3.txt];

Расширение переменных в альтернативных состояниях

У переменной есть только одно значение, и оно используется во всех альтернативных состояниях. При расширении переменной значение также будет тем же самым вне зависимости от того, где оно сделано и каково состояние объекта.

Если переменная является рассчитанной переменной, то есть определение начинается со знака «равно», вычисление делается в состоянии по умолчанию, если в определении переменной не указано альтернативное состояние.

Example:  

При наличии состояния MyState и переменной vMyVar:

vMyvar: =only({MyState} MyField)

Содержимое определения переменной с прямой ссылкой на имя альтернативного состояния указывает, в каком состоянии содержимое переменной будет вычислено.