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

行事曆現已定義,您可以使用 Derive 子句將其套用至已經載入的日期欄位,在此情況下為 OrderDateShippingDate

衍生的欄位 (完整範例)

重新使用現有欄位定義

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 月開始的財務年度。將數值 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: