Declare

Оператор Declare используется для создания определений полей и групп, где можно определить отношения между полями или функциями. Ряд определений полей можно использовать для автоматического создания производных полей, которые можно использовать как измерения. Например можно создать определение календаря и использовать его для создания соответствующих измерений, таких как год, месяц, неделя и день, на основе поля даты.

Можно использовать Declare, чтобы установить новое определение поля или создать определение поля на основе уже существующего определения.

Установка нового определения поля

Syntax:

definition_name:

Declare [Field[s]] Definition [Tagged tag_list ]

[Parameters parameter_list ]

Fields field_list 

Arguments:

Аргумент Описание
definition_name

Имя определения поля с двоеточием в конце.

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

Example:  

Calendar:

tag_list

Список тегов, разделенных запятыми, которые будут применяться к полям, извлеченным из определения поля. Применять теги не обязательно, но если не применить теги, которые используются для определения порядка сортировки, такие как $date, $numeric или $text, сортировка производных полей будет выполняться по порядку загрузки, как указано по умолчанию.

Example:  

'$date'

Теги полей

parameter_list

Список параметров, разделенных запятыми. Параметр определяется в виде name=value и назначается в качестве начального значения, которое можно переписать при повторном использовании определения поля. Дополнительно.

Example:  

first_month_of_year = 1

field_list

Список полей, разделенных запятыми, которые будут созданы при использовании определения поля. Поле определяется в виде <expression> As field_name tagged tag. Используйте $1 для ссылки на поле данных, из которого должны быть созданы производные поля.

Example:  

Year($1) As Year tagged '$year'

Example:

Calendar: DECLARE FIELD DEFINITION TAGGED '$date' Parameters first_month_of_year = 1 Fields
Year($1) As Year Tagged ('$numeric'), Month($1) as Month Tagged ('$numeric'), Date($1) as Date Tagged ('$date'), Week($1) as Week Tagged ('$numeric'), Weekday($1) as Weekday Tagged ('$numeric'), DayNumberOfYear($1, first_month_of_year) as DayNumberOfYear Tagged ('$numeric') ;
 

Календарь теперь определен. Можно применить его к загруженным полям с датами, в данном случае OrderDate и ShippingDate, с помощью предложения Derive.

Производные поля (полный пример)

Повторное использование существующего определения поля

Syntax:

<definition name>:

Declare [Field][s] Definition

Using <existing_definition> 

[With <parameter_assignment> ]

Arguments:

Аргумент Описание
definition_name

Имя определения поля с двоеточием в конце.

Example:  

MyCalendar:

existing_definition

Определение поля для повторного использования при создании нового определения поля. Новое определение поля будет работать таким же образом, как определение, на котором оно основано, за исключением случая, когда используется parameter_assignment для изменения значения, используемого в выражениях поля.

Example:  

Using Calendar

parameter_assignment

Список назначений параметров, разделенных запятыми. Назначение параметра определяется в виде name=value, оно переопределяет значение параметра, заданное в базовом определении поля. Дополнительно.

Example:  

first_month_of_year = 4

Example:

В этом примере мы повторно используем определение календаря, созданное в предыдущем примере. В этом случае мы хотим использовать финансовый год, начинающийся в апреле. Это достигается путем назначения значения 4 параметру first_month_of_year, который повлияет на определяемое поле DayNumberOfYear.

В этом примере допускается, что вы используете данные образца и определение поля из предыдущего примера.

MyCalendar: DECLARE FIELD DEFINITION USING Calendar WITH first_month_of_year=4;
 
DERIVE FIELDS FROM FIELDS OrderDate,ShippingDate USING MyCalendar;
 

После повторной загрузки скрипта данных созданные поля будут доступны в редакторе листа с именами OrderDate.MyCalendar.* и ShippingDate.MyCalendar.*.

See also: