共用方式為


資料類型

資訊以小的離散值流經 Power Fx,非常類似試算表的單元格。 例如,Birthday 欄位和 Anniversary 欄位中的資料都可以透過包含年、月和日的 Date 值來流動。 Power Fx 知道如何格式化這些值、將輸入限制為適合每個值的輸入並與資料庫共用這些值。 生日不同於周年紀念,但是系統會以完全相同的方式來處理它們。 在此案例中,Date 就是 資料類型 的範例。

本文詳細介紹了 Power Fx 支援的資料類型。 當 Power Fx 連接到外部資料來源時,該來源中的每種資料類型都會對應到 Power Fx 中的資料類型。

資料類型 Description 範例
Boolean truefalse 值。 無須進行比較,可直接在 IfFilter 和其他功能中使用。 True
選擇 由一組選項 (以數位為後盾) 所選擇的選項。 這種資料類型會將可當地語系化的文字標籤與一個數值合併。 標籤會出現在應用程式中,而數值會儲存並用於比較。 如果按名稱使用 Choice 欄位的執行個體,則 Type 函數支援此資料類型。 ThisItem.OrderStatus
色彩 色彩規格,包括 Alpha 色板。 Color.Red
ColorValue( "#102030" )
RGBA( 255, 128, 0, 0.5 )
貨幣 以浮點數儲存的貨幣值。 貨幣值與含貨幣格式選項的數位值相同。 Type 函數不支援 Currency 資料類型。 123
4.56
日期 在應用程式使用者的時區中的日期不含時間。 Date( 2019, 5, 16 )
日期時間 在應用程式使用者的時區中的日期含有時間。 DateTimeValue( "May 16, 2019 1:23:09 PM" )
小數點 高精確度、以 10 為底數運算且範圍有限的數字。 123
Decimal( "1.2345" )
自由流通股 表準精確度、以 2 為底數運算且範圍較廣的數字。 123
8.903e121
1.234y-200
GUID 全域唯一識別碼 GUID()
GUID( "123e4567-e89b-12d3-a456-426655440000" )
超連結 包含超連結的文字字串。 "https://powerapps.microsoft.com";
影像 在jepg、.png、svg、.gif 或其他一般 web 映像格式的映像通用 資源識別碼 (URI)文本字串。 Type 函數不支援 Image 資料類型。 MyImage 新增為應用程式資源
"https://northwindtraders.com/logo.jpg";
"appres://blobmanager/7b12ffa2 ..."
媒體 到影片或音訊錄製的 URI 文字字串。 Type 函數不支援 Media 資料型別。 MyVideo 新增為應用程式資源
"https://northwindtraders.com/intro.mp4";
"appres://blobmanager/3ba411c ..."
號碼 Decimal (大多數 Power Fx 主機) 或 Float (畫布應用程式) 的別名。 如果在特定情況下可以使用任何一種數字,請使用數字以實現最大相容性。 123
0.0123
1e4
錄製 資料值的記錄。 這個複合資料型別包含此主題中所列出之其他資料類型的實例。 其他資訊:使用資料表。 如果使用 Record 的執行個體,則 Type 函數支援此資料類型。 { Company: "Northwind Traders",
員工:35,
NonProfit: false }
記錄參考 對資料表中之記錄的參照。 這類參考通常是與多態查詢一起使用。 其他資訊:使用參考Type 函數不支援此資料類型。 First(Accounts).Owner
資料表 一組記錄。 所有的記錄的資料類型必須相同,且忽略的欄位名稱將會視為 blank。 這個複合資料型別包含此主題中所列出之其他資料類型的實例。 其他資訊:使用資料表。 如果使用資料表的執行個體,則 Type 函數支援此資料類型。 Table( { FirstName: "Sidney",
LastName: "Higa" },
{ FirstName: "Nancy",
LastName: "Anderson" } )
文字 統一碼文字字串。 "Hello, world"
時間 在應用程式使用者的時區中不含日期的時間。 Time( 11, 23, 45 )
無類型 未宣告類型的物件。 底層物件可以是任何現有類型,並且可以使用 Boolean()Value()Table() 等函數轉換為相容類型。關於更多詳細資訊,請見無類型物件使用 JSON ParseJSON("{ ""Field"" : 1234 }").Field
無效 僅由行為使用者定義函數使用,它表示函數沒有傳回類型。 Type 函數不支援此資料類型。 即使函數沒有傳回類型或值,它總是可以傳回錯誤。 Hi(): Void = { Notify( "Hello!" ) }
是/否 由一組兩個選項 (以布林值為後盾) 所選擇的選項。 這種資料類型會將可當地語系化的文字標籤與一個布林值合併。 標籤會出現在應用程式中,而布林值會儲存並用於比較。 如果按名稱使用是/否欄位的執行個體,則 Type 函數支援此資料類型。 ThisItem.Taxable

這些資料類型許多都是類似的,而且具有相同的基礎標記法,例如作為 Text 對待的 Hyperlink 欄位 。 額外的資料類型在表單和其他控制項中提供了更好的預設體驗。

空白

所有資料類型的值都可以是 blank (換言之,不含值)。 術語「null」通常用於此概念的資料庫中。

使用帶有 SetPatch 函數的 Blank 函數,將變數或欄位設為 Blank。 例如,Set( x, Blank() ) 移除全域變數 x 中的任何值 。

使用 IsBlank 函數測試 blank 值。 使用 Coalesce 函數取代可能的 blank 值與非 blank 值。

因為所有資料類型都支援 blank,所以 BooleabTwo option 資料類型可以有效地有三個可能的值。

所有這四種資料類型都是以 統一碼 文字字串為基礎。

嵌入文字

在公式中的嵌入文字字串會括在雙引號中。 在文字字串中使用兩個雙引號一起來表示一個雙引號。 例如,在 Button 控制項的 OnSelect 屬性中使用下列公式:

Notify( "Jane said ""Hello, World!""" )

當按下按鈕時,會出現橫幅,並忽略第一個和最後一個雙引號 (就像是分隔文字字串),並在 Hello, World! 周圍重複雙引號替換為單個雙引號:

快顯通知,其中包含 Jane 說「你好,世界」的訊息。

單引號用於包含特殊字元且在文字字串中未有特殊意義的識別碼名稱

字串插補

使用字串插補在文字字串中嵌入公式。 與使用 Concatenate 函數或 & 運算子相比,這種方法通常更容易使用和視覺化輸出。

以美元符號 $ 為文字字串加上首碼,並使用大括號 {} 將要嵌入的公式括在一起。 若要在文字字串中包括大括弧,請使用重複的大括弧:{{}}。 字串插補可在可以使用標準文字字串的任何地方使用。

例如,考慮以下公式,其中全域變數蘋果 設為 3,香蕉設定為 4:

$"We have {Apples} apples, {Bananas} bananas, yielding {Apples+Bananas} fruit total."

此公式會傳回文字字串我們有 3 個蘋果,4 個香蕉,共收穫 7 個水果。變數蘋果香蕉與數學公式 蘋果+香蕉的結果一起插入到文字中以替換大括號。 大括弧周圍的空格與其他字元會保留原樣。

嵌入的公式可以包含任何函數或運算子。 只需要可以將公式的結果強制轉換為文字字串。 例如,此公式在問候語中插入 NickName (如果提供了) 或 FirstName (如果沒有提供):

$"Welcome {Coalesce( NickName, FirstName )}, it's great to meet you!"

如果 NickName 設為 "Joe",則此公式將產生文字字串歡迎 Joe,很高興認識你!。 但是如果NickName空白FirstName 為 "Joseph",那麼這個公式會改為產生親愛的 Joseph,很高興認識你!

字串插補值可以在嵌入公式中包括標準文字字串。 例如,如果既沒有提供 NickName 也沒有提供 FirstName,我們仍然可以提供 "Friend" 作為替代:

$"Welcome {Coalesce( NickName, FirstName, "Friend" )}!"

字串插補甚至可以嵌套。 請考慮以下範例,其中名字中間名姓氏 會組合成一個問候語。 即使這些值中的一個或兩個為,名稱部分之間仍會保持正確數量的空格。 如果未提供任何組成部分,則內部字串插補值將會折疊為空字串,並由 "Friend" 取代為 Coalesce 函數。

$"Welcome {Coalesce( Trim( $"{First} {Middle} {Last}"}), "Friend" )}!"
名字 中間名 姓氏 結果
John Qunicy Doe Welcome John Quincy Doe!
John 空白 Doe Welcome John Doe!
空白 空白 Doe Welcome Doe!
空白 空白 空白 Welcome Friend!

換行

嵌入的文字字串可以包含換行。 例如,考慮將 Label 控制項的 Text 屬性設為以下各項:

"Line 1
Line 2
Line 3"

此公式會導致標籤控制項中顯示三行:

嵌入的文字字串與標籤控制項,顯示三行,第 1 行、第 2 行和第 3 行。

字串插值也支援換行符:

$"Line {1}
Line {1+1}
Line {1+1+1}"

輸出結果相同:

字串插補公式與標籤控制項,顯示三行,第 1 行、第 2 行和第 3 行。

影像和媒體資源

透過檔案功能表,您可以新增影像、影片及音訊檔做為應用程式資源。 匯入檔案的名稱會變成應用程式中的資源名稱。 在此圖中,名為 nwindlogo 的 Northwind Traders 標誌已新增至應用程式:

Northwind 資源。

若要在應用程式中使用此資源,請在 Image 控制項的 Image 屬性中加以指定:

Northwind 影像。

映像和其他媒體的 URI

您可以將 Label 控制項的 Text 屬性設定為 nwindlogo,深入研究最後一個範例。 標籤會顯示文字字串:

Northwind 文字。

每個畫布應用程式會在雲端參考每個映像或其他媒體檔 (不論該檔案是否位於雲端),或是以 URI 文字字串方式新增應用程式資源 。

例如,映像控制項的 Image 屬性不僅接受應用程式資源,也接受連結至網站上的映像,例如 " https://northwindtraders.com/logo.jpg"。 此屬性也接受使用 資料 URI 方案 的嵌入映像,如下列範例所示:

"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAFAQMAAACtnVQoAAAABlBMVEUAAAB0J3UMNU6VAAAAAXRSTlMAQObYZgAAABRJREFUCNdjUGJgCGVg6GgAkkA2AA8/AffqCEBsAAAAAElFTkSuQmCC"

該 URI 會顯示兩個紫色方塊的向上伸縮版本:

雙方塊。

若將映像控制項的 Image 屬性設為映像控制項的 Photo 屬性,您可以顯示在 Camera 控制項所捕抓的最新映像。 應用程式會將映像保留在記憶體中,相機控制項的 Photo 屬性會將 URI 參照返回至映像。 例如,您可以拍攝照片,而相機的 Photo 屬性會返回 "appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1"

您可以使用 URI 來參考資料庫中儲存的映像或其他媒體檔案。 如此一來,直到需要時,應用程式才會擷取實際資料。 例如,Microsoft Dataverse 資料表中的附件可能會傳回 "appres://datasources/Contacts/table/..."。正如在相機範例中一樣,您可以將影像控制項的 Image 屬性設定此參考 (這會擷取二進位資料),以顯示此影像。

當您將媒體資料類型 (如映像) 儲存到資料庫時,應用程式會傳送實際映像或媒體資料,而不是 URI 參考。

大小限制

就像文字字串和 URI 一樣,這些資料類型的長度不會有預設限制。

這些資料類型參考的二進位資料也沒有預設的大小限制。 例如,透過參考「appres://...」的相機控制所捕捉的影像可以與裝置相機所能達到的大小和解析度一樣大。 媒體檔案的解析度、畫面播放速率和其他屬性不受資料類型的限制,但是用於播放和捕獲媒體的特定控制項可能有自己的限制。

但是,所有的資料大小都會受應用程式中可用記憶體的限制。 在桌上型電腦上執行的瀏覽器通常支援超過 100 mb 的資料。 但是,裝置 (例如手機) 上的可用記憶體量可能會較低,通常是在 30-70 mb 的範圍內。 若要確定您的應用程式是否在這些限制內執行,請在所有應執行該應用程式的裝置上測試常見情境。

最佳的作法是只要有必要,就只保留記憶體中的資料。 儘快將影像傳至資料庫;只有在應用程式的使用者要求時,才下載映像。

數字

注意

Power Apps 目前只支援浮點數,它是所有數字的類型。 很快將新增十進位支援。

Power Fx 支援兩種數字:十進位浮點數 (同義詞為數字貨幣)。

對於大多數業務計算來說,十進位是最適合的。 它可以準確地表示十進位數字,這代表 0.1 可以精確表示並避免計算過程中的捨入誤差。 它的範圍夠大,可以滿足任何業務需求,最多 1028,精確度高達 28 位數。 十進位是大多數 Power Fx 主機的預設數字資料類型,如果只是簡單地寫入 2*2 就會使用。

浮點數最適合科學計算。 它可以表示更大範圍的數字,最大可達 10308。 精確度限制為小數點後 15 位,且數學基於 2 底數,因此無法精確表示一些常見的十進位值。 浮點數還具有更高的效能,如果精度是一個因素並且不是至關重要的話,它會受到青睞。

十進位數字

十進位資料型態最常使用 .NET 小數資料類型。 某些主控件 (例如在 SQL Server 中執行的 Dataverse 公式列) 使用 SQL Server 十進位資料類型。

十進位以您在學校學到的方式進行數學運算,使用十進位數字,這對於避免使用二進位數學運算 (如浮點數所用) 時可能累積的非常小的差異而導致的捨入誤差非常重要。

範圍從正 79,228,162,514,264,337,593,543,950,335 到負 79,228,162,514,264,337,593,543,950,335。 小數位分隔符號可以放置在這些數字中的任何位置,提供高達 28 位數的精確度,並且仍然可以精確表示。 例如,79,228,162,514,264.337593543950335 可以精確表示,7.9228162514264337593543950335 也可以。

浮點數

浮點數資料類型也稱為數字貨幣,使用 IEEE 754 雙精度浮點標準。 這個標準提供大量的數位,從–1.79769 x 10 308 到 1.79769 x 10 308。 可表示的最小值是 5 x 10 –324

浮點數可以精確表示 -9,007,199,254,740,991 (-(253 - 1)) 和 9,007,199,254,740,991 (253 - 1) 之間的整數。 這個範圍大於資料庫經常使用的 32 位 (或 4 位元組) 整數資料類型。 但是,畫布應用程式不能代表 64 位 (或 8 位元組) 整數資料類型。 您可能希望將數字儲存在文字欄位中或使用計算列在文字欄位中複製數字,以便它對應到畫布應用程式中的文字資料類型。 通過這種方式,您可以保存、顯示和輸入這些值,並進行比較以確定這些值是否相等;但您不能以這種形式對其執行數字計算。

浮點運算是近似的,因此有時可能會出現未預期的結果,其中有許多有記載的範例。 您可能會想要讓公式 55/100 * 100,完全返回 55 和 (55/100 * 100)-55 只返回零。 但是後一種公式會返回 7.1054 x 10 –15,只是會很小,但不是零。 微小差異通常不會造成問題,而應用程式會在顯示結果時將其四捨五入。 但是,後續計算中可能會有較小的差別,而且看起來會給出錯誤的答案。

資料庫系統通常會使用小數點數學來儲存貨幣並執行計算,這提供的是較小的範圍,但是可以更好地控制有效位數。 根據預設,畫布應用程式會將貨幣加入和移出浮點數值;因此,結果可能與以本機十進位資料類型進行的計算不同。 根據應用程式的精確度需求,您可能希望將這些值用作文字,就像之前對大整數所述的那樣。

預設值和轉換

注意

Power Apps 目前只支援浮點數,它是所有數字的類型。 很快將新增十進位支援。

大多數 Power Fx 主控件預設使用十進位。 擁有此預設設定代表:

  • 公式中的常值數字。 數字 1.234 被解釋為十進位值。 例如,公式 1.234 * 21.2342 解釋為十進位並傳回十進位結果。
  • Value 函式。 Value( "1.234" ) 傳回一個十進位值。 例如,在公式 Value( "1.234" ) * 2 中,Value 函數將文字字串 "1.234" 的內容解釋為十進位

若要使用浮點數值,請使用 Float 函式。 擴展我們的範例,Float( 1.234 )十進位1.234 轉換為浮點數浮點數也可以用來取代 Value,將包含浮點數的字串 Float( "1.234" ) 轉換為浮點數值,如果數字不能表示為十進位,則需要這樣做。

摘要中:

使用狀況 小數點 自由流通股
公式中的常值數字 1.234 Float( 1.234 )
Float( "1.234" )
從文字字串轉換 Value( "1.234" )
Decimal( "1.234" )
Float( "1.234" )
數值類型之間的轉換 Decimal( float ) Float( decimal )
轉換到文字字串 Text( decimal ) Text( float )

混合數值類型

浮點數十進位值可以自由混合。 混合時,由於範圍較大,十進位值將轉換為浮點數值。 由於這種轉換可能會導致精度損失,因此不要不必要地混合兩者。 由於十進位是預設的文字資料類型,並且大多數數字函數都保留該類型,因此可以相對容易地避免在不期望的情況下移動到浮點數

例如,請考慮在安裝 Power Platform CLI 後使用 pac power-fx repl 進行下列計算。 由於兩個數字都是十進位,因此計算以 十進位進行,並且結果保留完整精確度:

>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002

相反,如果將第二個操作數改為浮點數浮點數,那麼整個計算將以浮點數完成,並且微小的小數部分將會遺失:

>> 1.0000000000000000000000000001 * Float(2)
2

日期、時間和日期時間。

時區

日期/時間值屬於這些類別:

  • User local:這些值是以 UTC (協調世界時) 進行儲存,但是應用程式使用者的時區會影響應用程式顯示這些值的方式,以及應用程式使用者指定它們的方式。 例如,同一個時刻看上去和在日本的使用者不同。
  • Time zone independent:應用程序以相同的方式顯示這些值,而應用程式使用者會以相同的方式來指定,不論時區如何。 對於加拿大的使用者而言,相同的時刻看起來與對日本的使用者相同。 未預期應用程式在不同時區執行的應用程式作者會使用這些值,因為它們在整體上比較簡單。

下表顯示一些範例:

日期/時間類型 儲存在資料庫中的值 顯示值並輸入 UTC 以西7小時 顯示值並輸入 UTC 以東4小時
使用者區域 星期日,5 月 19 日,2019
上午 4:00
星期六,5 月 18 日,2019
下午 9:00
星期日,5 月 19 日,2019
上午 8:00
時區獨立 星期日,5 月 19 日,2019
上午 4:00
星期日,5 月 19 日,2019
上午 4:00
星期日,5 月 19 日,2019
上午 4:00

至於 User local日期/時間,畫布應用程式會使用瀏覽器或裝置的時區,但是模型驅動應用程式會使用 Dataverse 中的使用者設定。 這些設定通常相符,但是如果這些設定不同,則結果會不同。

使用 DateAddTimeZoneInformation 函數可將本機時間轉換為 UTC,並再次備份。 請參閱這些功能的文件結尾範例。

數位等效

畫布應用程式會保留並計算所有日期/時間值,不論是 UTC 中的 User localTime zone independent。 在顯示值和應用程式使用者指定時,應用程序將根據應用程式使用者的時區轉換值。

當畫布應用程式從資料來源讀取 Time zone independent 值,或將這類值寫入資料來源時,應用程式會自動調整值以補償應用程式使用者的時區。 然後,應用程式會將該值視為 UTC 值,並與應用程式中的所有其他日期/時間值一致。 由於此補償,當應用程式調整應用程式使用者所在時區的 UTC 值時,就會顯示原始 Time zone independent

您可以使用 Value 函數來存取日期/時間值的基礎數值,從而更緊密地查看此行為。 此函數會將日期/時間值返回為自 1 月 1 日之後的毫秒數,1970 00:00:00.000 UTC。

因為每個日期/時間值都是以 UTC 為限,所以公式 Value( Date( 1970, 1, 1 ) ) 在大部分的世界中不會傳回零,因為 Date 函數會返回 UTC 格式的日期。 例如,公式會將在 UTC 時差為八小時的時區中返回 28,800,000。 這個數目反映了在八小時的毫秒數。

回到我們的例子:

日期/時間類型 儲存在資料庫中的值 顯示值並輸入 UTC 以西7小時 Value 函數返回
使用者區域 星期日,5 月 19 日,2019
上午 4:00
星期六,5 月 18 日,2019
下午 9:00
1,558,238,400,000
(星期日,5 月 19 日,2019
上午 4:00 UTC)
時區獨立 星期日,5 月 19 日,2019
上午 4:00
星期日,5 月 19 日,2019
上午 4:00
1,558,263,600,000
(星期日,5 月 19 日,2019
上午 11:00 UTC)

轉換 Unix 時間

Unix 時間反映了從 1 月 1 日起 1970 00:00:00 UTC 的秒數。 因為畫布應用程式使用毫秒而不是秒,所以您可以在兩個之間,乘以或除以 1,000。

例如,Unix 時間顯示 2001年 9 月 9 日 01:46:40 UTC 為 1,000,000,000。 若要在畫布應用程式中顯示日期/時間值,請將此數乘以 1,000,將其轉換為毫秒,然後在 Text 函數中使用它。 公式 Text( 1000000000 * 1000, DateTimeFormat.UTC ) 返回字串 2001-09-09T 01:46:40.000Z

但是,如果您在一個比 UTC 時差-7個小時 (比 UTC 偏西7個小時)的時區使用 DateTimeFormat.LongDateTime24 格式 ,則該函數會返回 Saturday, September 8, 2001 18:46:40。 此結果會根據當地時區正確顯示 DateTime 值。

若要轉換成 Unix 時間,請從 Value 中除以 1,000:
RoundDown( Value( UnixTime ) / 1000, 0 )

如果您需要在 Date 值中進行進一步計算或在 Power Apps 中顯示,請使用此公式:
DateAdd( Date( 1970,1,1 ), UnixTime, Seconds )

SQL Server

SQL Server 具有 DatetimeDatetime2 以及其他 未包括時間區時差量的日期/時間資料類型,而且並未指出它們所在的時區。 畫布應用程式假設這些值是以 UTC 儲存,並將它們視為 User local。 如果值要獨立於時區,請使用 TimeZoneOffset 函數來更正 UTC 轉換 。

將值轉換成應用程式的內部 UTC 標記法時,畫布應用程式使用 Datetimeoffset 欄位中包含的時間區域資訊。 應用程式在寫入資料時,通常會使用 UTC 做為時區 (零時區時差)。

畫布應用程式會將 SQL Server 中 Time 資料類型的讀取和寫入值做為 ISO 8601 期間格式的文字字串 。 例如,您必須解析此字串格式,並使用 Time 函數將文字字串 "PT2H1M39S" 轉換為 Time 值:

With(
    Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
    Time( Value( hours ), Value( minutes ), Value( seconds ) )
)
// Result: 2:01 AM (as shown in a label control, use the Text function to see the seconds)

混用日期與時間資訊

DateTimeDateTime 有不同的名稱,但它們都保留有關日期和時間的相同資訊。

Date 值可以包括它的時間資訊,通常是午夜。 Time 值可以攜帶日期資訊,通常是 1997 年 1 月 1 日。 Dataverse 也會儲存含 Date Only 欄位的時間資訊,但預設只顯示日期資訊。 同樣地,畫布應用程式有時會區分這些資料類型以判斷預設格式和控制項。

因為時間和其他轉換可能會造成混亂的結果,所以不建議您直接新增與減少日期與時間值。 您可以使用 Value 函數,將日期/時間值轉換成毫秒,並將其納入應用程式使用者的時區,或者使用 DateAddDateDiff 函數來新增或減去其中一個值。

選項和「是/否」。

選項和雙選項資料類型為應用程式使用者提供了兩個或多個選項。 例如,訂單狀態選項可能提供新增已運送已開立發票已關閉的選項。 兩個選項的資料類型只提供兩個選項。

這兩種資料類型都會在文字字串上下文中顯示其標籤。 例如,如果控制項的Text屬性設定為參考該選項的公式,則標籤控制項會顯示其中一個訂單狀態選項。 不同位置的應用程式使用者可以當地語系化選項標籤。

當應用程式使用者選取選項並儲存該變更時,應用程式會將資料傳送到資料庫,這會將資料儲存在與語言無關的標記法中。 選擇中的選項會以數字形式傳輸並儲存,而且兩個選項的資料類型中的選項會以布林值形式傳輸並儲存。

標籤只是為了顯示時才會顯示。 您無法對標籤進行直接比較,因為它們是特定於語言的。 相反地,每個選項都有一個與基礎數字或布林值一起使用的列舉。 例如,您不可使用這公式︰

If( ThisItem.OrderStatus = "Active", ...

但是您可以使用此公式:

If( ThisItem.OrderStatus = OrderStatus.Active, ...

如果是全域選項 (哪些資料表共用),則選項群組列舉的名稱會與全域選項的名稱相符。 如果是本機選項 (範圍為資料表),則名稱可能會包含資料表的名稱。 如果多個資料表具有相同名稱的選項,則此行為就可避免衝突。 例如,帳戶資料表可能有 OrderStatus 選項,而其名稱可能是 OrderStatus (Accounts)。 該名稱包含一或多個空格和括弧,因此如果您在公式中參考它,就必須在該名稱兩邊加上單引號。

此外,兩個選項的值也可以視為布林值。 例如,名為 TaxStatus 的兩個選項值可能會有 TexableNon-Texable標籤,這分別對應於 truefalse。 若想要示範,您可以使用這公式︰

If( ThisItem.Taxable = TaxStatus.Taxable, ...

你也可以使用這個等效公式:

If( ThisItem.Taxable, ...