| Functions | 适用于 |
|---|---|
| Blank |
|
| Coalesce IsEmpty |
|
| IsBlank |
|
测试值是否为空白值,或测试表是否不包含任何记录,并能创建空白值。
概述
Blank 是“无值”或“未知值”的占位符。例如,如果用户尚未做出选择, 则组合框 控件的 Selected 属性为 空 。 很多数据源可以存储和返回 NULL 值,此类值在 Power Apps 中表示为空白。
Power Apps 中任何属性的值或计算的值都可以是空白值。 例如,布尔型数据的值通常是:true 或 false。 但是,除了这两个,它还可以是 空白 ,指示状态未知。 这跟 Microsoft Excel 很相似,Excel 工作表的单元格一开始可能是空白无内容,但是它可以包含 TRUE 或 FALSE(等等)。 您随时可以再次清除单元格中的内容,将其返回空白状态。
空字符串 是指不包含字符的字符串。
Len 函数对于此类字符串返回零,它可以在公式中将其写为两个双引号,在 "" 之间不写入任何内容。 某些控件和数据源使用空字符串表示“无值”条件。 为了简化应用创建, IsBlank 和 Coalesce 函数测试 空白 值或空字符串。
在函数的 IsEmpty 上下文中, 空 特定于不包含记录的表。 即使表只包含列名称,而不包含任何数据,它也是一个完整的表。 一个表刚开始可能是空表,但填入记录后,就不再是空表了;如果将其中的记录删除,那么它又会变成空表。
Blank
该 Blank 函数返回一个 空 值。 此函数可用于在支持 NULL 值的数据源中存储这些值,进而可以从字段中有效删除所有值。
IsBlank
该 IsBlank 函数测试 空白 值或空字符串。 测试包括空字符串,以简化应用创建,因为某些数据源和控件在没有值时使用空字符串。 若要专门测试 空白 值,请使用 if(Value = Blank(), ... 而不是 IsBlank。 该 IsBlank 函数将空表视为非空表,应 IsEmpty 用于测试表。
为现有应用启用错误处理时,请考虑替换为 IsBlankIsBlankOrError 以保留现有应用行为。 在添加错误处理之前,空白值用于同时表示数据库中的空值和错误值。 错误处理将这两种 空白解释分开,这可能会更改继续使用 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( Value1 [, Value2, ... ] )
- values– 必需。 要测试的值。 将按顺序计算每个值,直到找到一个不 为空 且未找到空字符串的值。 不计算此点后的值。
IsBlank( 值 )
- Value –必需。 要测试空白值或空字符串的值。
IsEmpty( 表 )
- Table - 必需。 要测试是否包含记录的表。
示例
Blank
从头开始创建应用,然后添加一个 Button 控件。
将该按钮的 OnSelect 属性设置为以下公式:
ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )预览应用,单击或点击所添加的按钮,然后关闭预览。
在文件菜单上,单击或点击集合。
此时,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、“”、“”、“ Blank3”、“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(“Hello” ) | 包含一个或多个字符的字符串。 | 假 |
| IsBlank( AnyCollection ) | 由于存在集合,所以即使不包含任何记录,它的值也不是空值。 若要检查空集合,请改用 IsEmpty 。 | 假 |
| IsBlank(中(“你好”, 17, 2 ) | Mid 函数的起始字符超出了字符串的结束位置。 所以结果是空字符串。 | 真 |
| IsBlank(假、假) | 没有 ElseResult 的 If 函数。 由于条件的结果始终是 false,所以 If 函数始终返回空白。 | 真 |
IsEmpty
从头开始创建应用,然后添加一个 Button 控件。
将该按钮的 OnSelect 属性设置为以下公式:
Collect( IceCream, {Flavor: “草莓”, Quantity: 300}, {Flavor: “Chocolate”, Quantity: 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 的值。 筛选器没有筛选出任何记录,所以它是空表。 | 真 |