Declare

Instrukcja Declare służy do tworzenia definicji pól i grup, w których można określić relacje między polami a funkcjami. Definicje zestawów pól można wykorzystać do automatycznego generowania pochodnych pól, których można użyć jako wymiarów. Można na przykład utworzyć definicję kalendarza i użyć jej do wygenerowania z pola daty powiązanych wymiarów takich jak rok, miesiąc, tydzień i dzień.

Instrukcji Declare można używać albo do skonfigurowania nowej definicji pola, albo do utworzenia definicji pola na podstawie już istniejącej definicji.

Konfigurowanie nowej definicji pola

Syntax:

definition_name:

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

[Parameters parameter_list ]

Fields field_list 

Arguments:

Argument Opis
definition_name

Nazwa definicji pola, zakończona dwukropkiem.

Ostrzeżenie: Jako nazwy definicji pola nie należy używać autoCalendar, gdyż jest to nazwa zarezerwowana dla automatycznie generowanych szablonów kalendarza.

Example:  

Calendar:

tag_list

Rozdzielana przecinkami lista znaczników stosowanych do pól pochodnych tworzonych na podstawie tej definicji pola. Stosowanie znaczników nie jest obowiązkowe, ale jeśli nie zostaną podane znaczniki określające kolejność sortowania, na przykład $date, $numeric lub $text, pole pochodne będzie domyślnie sortowane według kolejności ładowania.

Example:  

'$date'

Znaczniki pól

parameter_list

Rozdzielana przecinkami lista parametrów. Parametr ma definicję w postaci name=value i otrzymuje wartość początkową, którą można zastąpić przy ponownym wykorzystaniu definicji pola. Opcjonalne.

Example:  

first_month_of_year = 1

field_list

Rozdzielana przecinkami lista pól generowanych, gdy używana jest definicja pola. Definicja pola ma postać <expression> As field_name tagged tag. Symbol $1 umożliwia odwoływanie się do pola danych, z którego mają być generowane pola pochodne.

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') ;
 

Kalendarz został zdefiniowany. Teraz można stosować go do załadowanych pól daty, w tym przypadku OrderDate i ShippingDate, używając klauzuli Derive.

Pola pochodne (pełny przykład)

Ponowne używanie istniejącej definicji pola

Syntax:

<definition name>:

Declare [Field][s] Definition

Using <existing_definition> 

[With <parameter_assignment> ]

Arguments:

Argument Opis
definition_name

Nazwa definicji pola, zakończona dwukropkiem.

Example:  

MyCalendar:

existing_definition

Definicja pola, która zostanie ponownie użyta podczas tworzenia nowej definicji pola. Nowa definicja pola będzie działać analogicznie do definicji, na której jest oparta, chyba że zostanie podany argument parameter_assignment zmieniający wartość używaną w wyrażeniach pola.

Example:  

Using Calendar

parameter_assignment

Rozdzielana przecinkami lista przypisań parametrów. Przypisanie parametru ma postać name=value i powoduje zastąpienie wartości parametru ustawionej w bazowej definicji pola. Opcjonalne.

Example:  

first_month_of_year = 4

Example:

W tym przykładzie ponownie użyjemy definicji kalendarza utworzonej w poprzednim przykładzie. W tym przypadku chcemy używać roku obrachunkowego zaczynającego się w kwietniu. Można to osiągnąć, przypisując parametrowi first_month_of_year wartość 4, co wpłynie na wartość zdefiniowanego pola DayNumberOfYear.

Posłużymy się tutaj danymi i definicją pola z poprzedniego przykładu.

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

Po przeładowaniu skryptu ładowania danych pola wygenerowane będą dostępne w edytorze arkusza pod nazwami OrderDate.MyCalendar.* i ShippingDate.MyCalendar.*.

See also: