資料類型
Note
Microsoft Power Fx 是畫布應用程式語言的新名稱。 當我們從畫布應用程式中擷取語言,將其與其他 Microsoft Power Platform 產品整合並打造開放原始碼時,這些文章仍會持續進行。 從 Microsoft Power Fx 概覽開始以取得對該語言的介紹。
資訊會透過小型、離散值中的應用程式流動,就像是試算表的儲存格一樣。 例如,Birthday 欄位和 Anniversary 欄位中的資料都可以透過包含年、月和日的 Date 值來流動。 應用程式知道如何格式化這些值、限制輸入的資料,以及與資料庫共用值。 生日不同於周年紀念,但是系統會以完全相同的方式來處理它們。 在此案例中,Date 就是 資料類型 的範例。
本文提供畫布應用程式支援之資料類型的詳細資料。 當應用程式連接至外部資料來源時,該源中的每個資料類型都會對應至畫布應用程式的資料類型。
資料類型 | 描述 | 範例 |
---|---|---|
布林值 | true 或 false 值。 無須進行比較,可直接在 If、Filter 和其他功能中使用。 | 真 |
顏色 | 色彩規格,包括 Alpha 色板。 | 顏色.紅色 顏色值(“#102030”) RGBA(255,128,0,0.5) |
貨幣 | 以浮點數儲存的貨幣值。 貨幣值與含貨幣格式選項的數位值相同。 | 123 4.56 |
日期 | 在應用程式使用者的時區中的日期不含時間。 | 日期(2019,5,16) |
日期時間 | 在應用程式使用者的時區中的日期含有時間。 | DateTimeValue(“5 月 16 日,2019 1:23:09 PM”) |
十進位 | 高精確度、以 10 為底數運算且範圍有限的數字。 | 123 十進制(“1.2345”) |
GUID(英文) | 全域唯一識別碼。 | GUID() GUID(“123e4567-e89b-12d3-a456-426655440000”) |
超連結 | 包含超連結的文字字串。 | “https://powerapps.microsoft.com" |
圖像 | 在jepg、.png、svg、.gif 或其他一般 web 映像格式的映像通用 資源識別碼 (URI)文本字串。 | 已添加為應用程式資源的 MyImage “https://northwindtraders.com/logo.jpg" “appres://blobmanager/7b12ffa2......” |
媒體 | 到影片或音訊錄製的 URI 文字字串。 | 已添加為應用資源 “https://northwindtraders.com/intro.mp4" “appres://blobmanager/3ba411c......” |
Number 或 Float | 表準精確度、以 2 為底數運算且範圍較廣的數字。 | 123 8.903E121 1.234E200 |
選擇 | 由一組選項 (以數位為後盾) 所選擇的選項。 這種資料類型會將可當地語系化的文字標籤與一個數值合併。 標籤會出現在應用程式中,而數值會儲存並用於比較。 | ThisItem.OrderStatus |
記錄 | 資料值的記錄。 這個複合資料型別包含此主題中所列出之其他資料類型的實例。 其他資訊:使用資料表。 | { 公司:「Northwind Traders」, 員工:35, NonProfit: false } |
記錄引用 | 對資料表中之記錄的參照。 這類參考通常是與多態查詢一起使用。 其他資訊:使用參考。 | First (帳戶)。擁有者 |
桌子 | 一組記錄。 所有的記錄的資料類型必須相同,且忽略的欄位名稱將會視為 blank。 這個複合資料型別包含此主題中所列出之其他資料類型的實例。 其他資訊:使用資料表。 | Table( { FirstName:“Sidney”, LastName: "Higa" }, { FirstName: "Nancy", LastName: "Anderson" } ) |
發簡訊 | 統一碼文字字串。 | “你好,世界” |
時間 | 在應用程式使用者的時區中不含日期的時間。 | 時間(11,23,45) |
兩種選擇 | 由一組兩個選項 (以布林值為後盾) 所選擇的選項。 這種資料類型會將可當地語系化的文字標籤與一個布林值合併。 標籤會出現在應用程式中,而布林值會儲存並用於比較。 | ThisItem.應稅 |
非類型化物件 | 未宣告類型的物件。 基礎物件可以是任何現有的類型,而且可以使用 Boolean()、Value()、Table() 等函數將其轉換為相容類型。如需詳細資訊,請參閱 非類型化物件 和 使用 JSON。 | ParseJSON (“”“Field”“:1234) 的 ParseJSON (”{ “Field”“:1234 }) 田 |
這些資料類型許多都是類似的,而且具有相同的基礎標記法,例如作為 Text 對待的 Hyperlink 欄位 。 其他資料類型可讓表單和其他控制項有更佳的預設體驗。
空白
所有資料類型的值都可以是 blank (換言之,不含值)。 術語「null」通常用於此概念的資料庫中。
使用帶有 Set 或 Patch 函數的 Blank 函數,將變數或欄位設為 Blank。 例如,Set( x, Blank() ) 移除全域變數 x 中的任何值 。
使用 IsBlank 函數測試 blank 值。 使用 Coalesce 函數取代可能的 blank 值與非 blank 值。
因為所有資料類型都支援 blank,所以 Booleab 和 Two option 資料類型可以有效地有三個可能的值。
文字、超連結、映像和媒體
所有這四種資料類型都是以 統一碼 文字字串為基礎。
嵌入文字
在公式中的嵌入文字字串會括在雙引號中。 在文字字串中使用兩個雙引號一起來表示一個雙引號。 例如,在 Button 控制項的 OnSelect 屬性中使用下列公式:
Notify( "Jane said ""Hello, World!""" )
當按下按鈕時,會出現橫幅,並忽略第一個和最後一個雙引號 (就像是分隔文字字串),並在 Hello, World! 周圍重複雙引號替換為單個雙引號:
單引號用於包含特殊字元且在文字字串中未有特殊意義的識別碼名稱。
字串插補
使用字串插補在文字字串中嵌入公式。 這通常比使用 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"
上述公式會導致 label 控制項中顯示三行:
字串插補也支援換行,如下所示:
$"Line {1}
Line {1+1}
Line {1+1+1}"
上述公式會產生相同的輸出:
影像和媒體資源
透過檔案功能表,您可以新增影像、影片及音訊檔做為應用程式資源。 匯入檔案的名稱會變成應用程式中的資源名稱。 在此圖形中,已將 Northwind 商貿標誌 (名稱為 nwindlogo ) 新增至應用程式:
若要在應用程式中使用此資源,請在 Image 控制項的 Image 屬性中加以指定:
映像和其他媒體的 URI
您可以將 Label 控制項的 Text 屬性設定為 nwindlogo,深入研究最後一個範例。 標籤會顯示文字字串:
每個畫布應用程式會在雲端參考每個映像或其他媒體檔 (不論該檔案是否位於雲端),或是以 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 目前只支援浮點數,它是所有數字的類型。 Decimal 支援將很快添加。
Power Fx 支援兩種數字:十進位和浮點數 (同義詞為數字和貨幣)。
Decimal 最適合大多數商業計算。 它可以準確地表示以 10 為底數的數字,這代表 0.1
可以準確表示,計算時不易出現捨入誤差。 它的範圍夠大,可以滿足任何業務需求,最多 1028,精確度高達 28 位數。 Decimal 是大多數 Power Fx 主機的預設數位數據類型,如果只是寫入 2*2
,則使用。
Float 最適合科學計算。 它可以表示更大範圍的數字,最多可達 10308。 精確度限制為小數點後 15 位,且數學基於 2 底數,因此無法精確表示一些常見的十進位值。 Float 還具有更高的性能,如果這是一個因素並且精度不重要,則首選 Float 。
十進位數字
十進位資料型態最常使用 .NET 小數資料類型。 某些主控件 (例如在 SQL Server 中執行的 Dataverse 公式列) 使用 SQL Server 十進位資料類型。
Decimal 使用以 10 為基數的數學運算,就像你在學校學的那樣。 這對於避免使用底數為 2 的數學運算 (如浮點數所用) 時可能累積的極小差異所產生的捨入誤差非常重要。
範圍從正 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 (2 53–1)之間的整數 (或整數),包括–# 和 ##53 –1)。 這個範圍大於資料庫經常使用的 32 位 (或 4 位元組) 整數資料類型。 但是,畫布應用程式不能代表 64 位 (或 8 位元組) 整數資料類型。 您可能會想要將數位儲存在文字欄位中,或使用計算欄,在文字欄位中製作數位的複本,這樣就可以將資料對應至畫布應用程序的 Text 資料類型。 以這種方式,您可以保留、顯示和輸入這些值,以及進行比較以判斷它們是否相等。但是,您無法在此表單中對其執行數位計算。
浮點運算是近似的,因此有時可能會出現未預期的結果,其中有許多有記載的範例。 您可能會想要讓公式 55/100 * 100,完全返回 55 和 (55/100 * 100)-55 只返回零。 但是後一種公式會返回 7.1054 x 10 –15,只是會很小,但不是零。 微小差異通常不會造成問題,而應用程式會在顯示結果時將其四捨五入。 但是,後續計算中可能會有較小的差別,而且看起來會給出錯誤的答案。
資料庫系統通常會使用小數點數學來儲存貨幣並執行計算,這提供的是較小的範圍,但是可以更好地控制有效位數。 根據預設,畫布應用程式會將貨幣加入和移出浮點數值;因此,結果可能與以本機十進位資料類型進行的計算不同。 如果這種差異類型會造成問題,您可能會想要將這些值當作 Text 使用,就像您可能會使用本節前面描述的大整數一樣。
預設值和轉換
注意
Power Apps 目前只支援浮點數,它是所有數字的類型。 Decimal 支援將很快添加。
大多數 Power Fx 主控件預設使用十進位。 這會影響:
- 公式中的常值數字。 數字
1.234
將解釋為十進制值。 例如,公式1.234 * 2
會將1.234
和2
解釋為 十進位並傳回十進位結果。 - Value 函式。
Value( "1.234" )
將返回一個 Decimal 值。 例如,公式Value( "1.234" ) * 2
Value 函式會將文字字串"1.234"
的內容解釋為 十進位。
若要使用浮點數值,請使用 Float 函式。 擴充上面的範例,Float( 1.234 )
會將十進位 1.234
轉換為浮點數。 Float 還可以用作 Value 的 替代品,以將包含浮點指向數位的 Float( "1.234" )
字串轉換為 Float 值,如果數位不能表示為 Decimal,則需要該值。
摘要中:
使用狀況 | 十進位 | 浮 |
---|---|---|
公式中的常值數字 | 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 ) |
混合數值類型
Float 和 Decimal 值可以自由混合。 混合時,由於範圍較大,十進位值將轉換為浮點數值。 由於這可能會導致精確度下將,因此若非必要請別將兩者混合在一起,這一點很重要。 由於十進位是預設的常值資料類型,並且大多數數值函式將保留該類型,因此相對容易避免在不想要的情況下轉移到浮點數。
例如,請考慮在安裝 Power Platform CLI 後使用 pac power-fx repl
進行下列計算。 由於兩個數字都是十進位,因此計算以 十進位進行,並且結果保留完整精確度:
>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002
相反,如果將第二個運算元變更為浮點數,則整個計算將以浮點數完成,並且微小的小數部分將會遺失:
>> 1.0000000000000000000000000001 * Float(2)
2
日期、時間和日期時間。
時區
日期/時間值屬於這些類別:
- 使用者當地時間:這些值以 UTC(協調世界時) 存儲,但應用程式使用者的時區會影響應用程式顯示這些值的方式以及應用程式使用者指定這些值的方式。 例如,同一個時刻看上去和在日本的使用者不同。
- 時區無關:應用程式以相同的方式顯示這些值,應用程式使用者以相同的方式指定它們,而不管時區如何。 對於加拿大的使用者而言,相同的時刻看起來與對日本的使用者相同。 未預期應用程式在不同時區執行的應用程式作者會使用這些值,因為它們在整體上比較簡單。
下表顯示一些範例:
日期/時間類型 | 儲存在資料庫中的值 | 顯示值並輸入 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 中的使用者設定。 這些設定通常相符,但是如果這些設定不同,則結果會不同。
使用 DateAdd 和 TimeZoneInformation 函數可將本機時間轉換為 UTC,並再次備份。 請參閱這些功能的文件結尾範例。
數位等效
畫布應用程式會保留並計算所有日期/時間值,不論是 UTC 中的 User local 或 Time 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 (值(UnixTime)/ 1000,0)
如果您需要在 Date 值中進行進一步計算或在 Power Apps 中顯示,請使用此公式:
DateAdd (Date(1970,1,1),UnixTime,秒)
SQL Server
SQL Server 具有 Datetime、Datetime2 以及其他 未包括時間區時差量的日期/時間資料類型,而且並未指出它們所在的時區。 畫布應用程式假設這些值是以 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)
混用日期與時間資訊
Date、 Time 和 DateTime 具有不同的名稱,但它們都包含有關日期和時間的相同資訊。
Date 值可以包括它的時間資訊,通常是午夜。 Time 值可以攜帶日期資訊,通常是 1997 年 1 月 1 日。 Dataverse 也會儲存含 Date Only 欄位的時間資訊,但預設只顯示日期資訊。 同樣地,畫布應用程式有時會區分這些資料類型以判斷預設格式和控制項。
因為時間和其他轉換可能會造成混亂的結果,所以不建議您直接新增與減少日期與時間值。 您可以使用 Value 函數,將日期/時間值轉換成毫秒,並將其納入應用程式使用者的時區,或者使用 DateAdd 和 DateDiff 函數來新增或減去其中一個值。
選項和「是/否」。
選項和雙選項資料類型為應用程式使用者提供了兩個或多個選項。 例如,訂單狀態選項可能提供新增、已運送、已開立發票和已關閉的選項。 兩個選項的資料類型只提供兩個選項。
這兩種資料類型都會在文字字串上下文中顯示其標籤。 例如,如果控制項的Text屬性設定為參考該選項的公式,則標籤控制項會顯示其中一個訂單狀態選項。 不同位置的應用程式使用者可以當地語系化選項標籤。
當應用程式使用者選取選項並儲存該變更時,應用程式會將資料傳送到資料庫,這會將資料儲存在與語言無關的標記法中。 選擇中的選項會以數字形式傳輸並儲存,而且兩個選項的資料類型中的選項會以布林值形式傳輸並儲存。
標籤只是為了顯示時才會顯示。 您無法對標籤進行直接比較,因為它們是特定於語言的。 相反地,每個選項都有一個與基礎數字或布林值一起使用的列舉。 例如,您不可使用這公式︰
If( ThisItem.OrderStatus = "Active", ...
但是您可以使用此公式:
If( ThisItem.OrderStatus = OrderStatus.Active, ...
如果是全域選項 (哪些資料表共用),則選項群組列舉的名稱會與全域選項的名稱相符。 如果是本機選項 (範圍為資料表),則名稱可能會包含資料表的名稱。 如果多個資料表具有相同名稱的選項,則此行為就可避免衝突。 例如,帳戶資料表可能有 OrderStatus 選項,而其名稱可能是 OrderStatus (Accounts)。 該名稱包含一或多個空格和括弧,因此如果您在公式中參考它,就必須在該名稱兩邊加上單引號。
此外,兩個選項的值也可以視為布林值。 例如,名為 TaxStatus 的兩個選項值可能會有 Texable 和 Non-Texable標籤,這分別對應於 true 和 false。 若想要示範,您可以使用這公式︰
If( ThisItem.Taxable = TaxStatus.Taxable, ...
你也可以使用這個等效公式:
If( ThisItem.Taxable, ...