| Functions | 適用對象 |
|---|---|
| Blank |
|
| Coalesce IsEmpty |
|
| IsBlank |
|
測試值是否為空白或未包含 記錄 的 資料表,並提供建立 空白 值的方式。
概觀
Blank 是「無值」或「未知值」的佔位符。例如,如果使用者尚未進行選取,則 下拉式方塊 控制項的 Selected 屬性為 空白 。 許多資料來源會儲存和傳回 NULL 值,在 Power Apps 中會呈現為 空白。
在 Power Apps 中,任何屬性或計算值可以 空白。 例如,布林值通常二選一︰true 或 false。 但除了這兩個之外,它也可以是 空白 的,表示該州未知。 這類似於 Microsoft Excel,工作表儲存格一開始空白沒有內容,但可容納 TRUE 或 FALSE 值 (除此之外)。 儲存格的內容隨時都可以再次清除,並返回 空白狀態。
空字串 是指不包含字元的字串。
Len 函式 針對此字串返回零,而且它可以在公式中寫為兩個雙引號,中間不加任何 ""。 某些控制項和資料來源使用空白字串來表示 "無值" 條件。 為了簡化應用程式建立, IsBlank 和 Coalesce 函數會測試 空白 值或空字串。
在函數的內容 IsEmpty 中, 空 特定於不包含任何記錄的資料表。 資料表結構可能不變,以 欄位 名稱完成,但資料表沒有資料。 資料表可能以空白開始,採納記錄且不再為空白,然後移除記錄並再一次空白。
Blank
函式會 Blank 傳回 空白 值。 使用這個將 NULL 值儲存在支援這些值的資料來源中,以便有效地移除欄位中的任何值。
IsBlank
此 IsBlank 函數會測試 空白 值或空字串。 測試包含空字串,以簡化應用程式建立,因為某些資料來源和控制項會在沒有值時使用空字串。 若要專門測試 空白 值,請使用 if(Value = Blank(), ...IsBlank而不是 。 函式會 IsBlank 將空表格視為非空白,並 IsEmpty 應該用來測試表格。
為現有應用程式啟用錯誤處理時,請考慮取代 IsBlank 為 IsBlankOrError 以保留現有的應用程式行為。 在新增錯誤處理之前,空白值用於表示來自資料庫與錯誤值的 Null 值。 錯誤處理會區隔 空白的這兩種解譯,這可能會變更繼續使用 IsBlank的現有應用程式的行為。
的 IsBlank 傳回值是布林值 true 或 false。
Coalesce
函 Coalesce 式會依序評估其引數,並傳回第一個非 空白 或空字串的值。 您可以使用此函式,以不同的值取代 空白 值或空字串,但是保持非 空白 與非空字串值不變。 如果所有參數都是 空白 或空字串,則函數會傳回 空白,這是 Coalesce 將空字串轉換為 空白 值的好方法。
Coalesce( value1, value2 ) 是更簡潔的 If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) 等效值,並且不需要 對 value1 和 value2 進行兩次計算。 如果沒有“else”公式,則 If 函數 返回 空白 ,就像這裡的情況一樣。
所有 Coalesce 引數都必須是相同的類型;例如,您無法將數字與文字字串混合使用。 傳 Coalesce 回值是這個通用型別。
IsEmpty
此 IsEmpty 函式會測試資料表是否包含任何記錄。 它相當於使用 CountRows 函式,並檢查是否為零。 您可以與 Errors 函數結合使用IsEmpty來檢查資料來源錯誤。
的 IsEmpty 傳回值是布林值 true 或 false。
語法
Blank()
Coalesce( 值1 [, 值2, ... ] )
- values– 必需。 要測試的值。 每個值都會依序評估,直到找到非 空白 且非空字串的值為止。 不會評估此點之後的值。
IsBlank( 價值 )
- Value –必需。 要測試 blank值或空字串的值。
IsEmpty( 表格 )
- Table - 必需。 要測試記錄的資料表。
範例
Blank
從頭建立應用程式,並新增 Button 控制項。
將按鈕的 OnSelect 屬性設為此公式:
ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )預覽應用程式,並點擊或點選您已新增的按鈕,然後關閉預覽。
在 File 功能表上,點擊或點選 Collections。
即會出現 Cities 集合物件,顯示一筆含有 "Seattle" 和 "Rainy" 的記錄:
點擊或點選返回箭頭以返回預設工作區。
新增 Label 控制項,並將其Text屬性設定為下列公式:
IsBlank( First( Cities ).Weather )標籤顯示 false,因為 Weather 欄位包含值 ("Rainy")。
新增第二個按鈕,並將其 OnSelect 屬性設定為下列公式:
Patch( Cities, First( Cities ), { Weather: Blank() } )預覽應用程式,並點擊或點選您已新增的按鈕,然後關閉預覽。
Cities 中第一筆記錄的 Weather 欄位會取代為 空白,以移除先前的 "Rainy"。
標籤顯示 true,因為 Weather 欄位不再包含值。
Coalesce
| 公式 | 描述 | 結果 |
|---|---|---|
| Coalesce( Blank(), 1 ) | 測試函數的 Blank 傳回值,該函數一律傳回 空白 值。 因為第一個引數為 空白,會繼續進行下一個引數評估,直到找到非 空白 值為止。 | 1 |
| Coalesce( "", "2" ) | 測試第一個引數,這是一個空字串。 因為第一個引數為空字串,會繼續進行下一個引數評估,直到找到非 空白 值和空字串為止。 | 2 |
| Coalesce( Blank(), “”, Blank(), “”, “3”, “4” ) | Coalesce 從引數清單的開頭開始,依序評估每個引數,直到找到非空白 值和非空字串為止。 本案例中,前四個引數均傳回 空白 或空字串,因此評估會繼續到第五個引數。 第五個引數是非 空白 且非空字串,所以評估會在此停止。 會傳回第五個引數值,而第六個引數則不進行評估。 | 3 |
| Coalesce( "" ) | 測試第一個引數,這是一個空字串。 因為第一個引數是空字串,而且並無其他引數,所以函式會傳回 空白。 | 空白 |
IsBlank
從頭開始建立應用程式,並新增文字輸入控制項,然後將它命名為 FirstName。
新增標籤,並將其 Text 屬性設定為下列公式:
If( IsBlank( FirstName.Text ), "First Name is a required field." )預設文字輸入控制項的Text屬性設定為 "Text input"。 因為屬性包含值不是空白,而且標籤不顯示任何訊息。
從文字輸入控制項移除所有字元,包括任何空格。
因為 Text 屬性不再包含任何字元,所以它是空字串,而且 IsBlank( FirstName.Text ) 是 true。 顯示必要欄位訊息。
如需如何使用其他工具執行驗證的資訊,請參閱 Validate 函式和 搭配資料來源。
其他範例:
| 公式 | 描述 | 結果 |
|---|---|---|
| IsBlank( Blank() ) | 測試函數的 Blank 傳回值,該函數一律傳回 空白 值。 | 真 |
| IsBlank( "" ) | 未包含任何字元的字串。 | 真 |
| IsBlank(《你好》) | 包含一個或多個字元的字串。 | 假 |
| IsBlank( AnyCollection ) | 因為 集合物件 存在且不是空白,即使它不含任何記錄。 若要檢查空的集合,請改用 IsEmpty 。 | 假 |
| IsBlank( 中(“你好”, 17, 2 ) ) | Mid 的起始字元超過字串的結尾。 結果是空字串。 | 真 |
| IsBlank( if( false, false ) ) | 沒有 ElseResult 的 If 函式。 因為條件一律為 false,所以這個 If 始終傳回 空白。 | 真 |
IsEmpty
從頭建立應用程式,並新增 Button 控制項。
將按鈕的 OnSelect 屬性設為此公式:
collect( iceCream, {flavor: “strawberry”, 數量: 300}, {flavor: “chocolate”, 數量: 100} )
預覽應用程式,並點擊或點選您已新增的按鈕,然後關閉預覽。
已建立名為 IceCream 的集合物件,其中包含這項資料︰
此集合物件有兩筆記錄,而且並非空白。 IsEmpty( IceCream ) 傳回 false, 而 CountRows( IceCream ) 傳回 2。
新增第二個按鈕,並將其 OnSelect 屬性設定為下列公式:
Clear(IceCream)
預覽應用程式,並點擊或點選第二個按鈕,然後關閉預覽。
集合物件現在是空的︰
Clear 函式從集合物件移除所有記錄,造成空集合物件。 IsEmpty( IceCream ) 傳回 true,而 CountRows( IceCream ) 傳回 0。
您也可以用來 IsEmpty 測試計算資料表是否為空,如下列範例所示:
| 公式 | 描述 | 結果 |
|---|---|---|
| IsEmpty( [ 1, 2, 3 ] ) | 單欄資料表包含三筆記錄,因此不是空白。 | 假 |
| IsEmpty( [ ] ) | 單欄資料表不含記錄,因此為空白。 | 真 |
| IsEmpty( 過濾器( [ 1, 2, 3 ], 值 > 5 ) ) | 單欄資料表不含任何大於 5 的值。 來自篩選的結果不含任何記錄,因此是空白的。 | 真 |