Blank、 Coalesce、 IsBlank和 IsEmpty 函数

Functions 适用于
Blank 画布应用 Copilot Studio Desktop 流 Dataverse 公式列 模型驱动应用 Power Platform CLI Dataverse 函数
Coalesce
IsEmpty
画布应用 Copilot Studio Desktop 流 模型驱动应用 Power Platform CLI Dataverse 函数 Power Pages
IsBlank 画布应用 Copilot Studio Desktop 流 Dataverse 公式列 模型驱动应用 Power Platform CLI Dataverse 函数 Power Pages

测试值是否为空白值,或测试是否不包含任何记录,并能创建空白值。

概述

Blank 是“无值”或“未知值”的占位符。例如,如果用户尚未做出选择, 则组合框 控件的 Selected 属性为 。 很多数据源可以存储和返回 NULL 值,此类值在 Power Apps 中表示为空白

Power Apps 中任何属性的值或计算的值都可以是空白值。 例如,布尔型数据的值通常是:truefalse。 但是,除了这两个,它还可以是 空白 ,指示状态未知。 这跟 Microsoft Excel 很相似,Excel 工作表的单元格一开始可能是空白无内容,但是它可以包含 TRUEFALSE(等等)。 您随时可以再次清除单元格中的内容,将其返回空白状态。

空字符串 是指不包含字符的字符串。 Len 函数对于此类字符串返回零,它可以在公式中将其写为两个双引号,在 "" 之间不写入任何内容。 某些控件和数据源使用空字符串表示“无值”条件。 为了简化应用创建, IsBlankCoalesce 函数测试 空白 值或空字符串。

在函数的 IsEmpty 上下文中, 特定于不包含记录的表。 即使表只包含名称,而不包含任何数据,它也是一个完整的表。 一个表刚开始可能是空表,但填入记录后,就不再是空表了;如果将其中的记录删除,那么它又会变成空表。

Blank

Blank 函数返回一个 值。 此函数可用于在支持 NULL 值的数据源中存储这些值,进而可以从字段中有效删除所有值。

IsBlank

IsBlank 函数测试 空白 值或空字符串。 测试包括空字符串,以简化应用创建,因为某些数据源和控件在没有值时使用空字符串。 若要专门测试 空白 值,请使用 if(Value = Blank(), ... 而不是 IsBlank。 该 IsBlank 函数将空表视为非空表,应 IsEmpty 用于测试表。

为现有应用启用错误处理时,请考虑替换为 IsBlankIsBlankOrError 以保留现有应用行为。 在添加错误处理之前,空白值用于同时表示数据库中的空值和错误值。 错误处理将这两种 空白解释分开,这可能会更改继续使用 IsBlank的现有应用的行为。

返回 IsBlank 值为布尔 值 truefalse

Coalesce

Coalesce 函数按顺序计算其参数,并返回不 为空 或空字符串的第一个值。 使用此函数将空白值或空字符串替换为其他值,但保留非空白和非空字符串值不变。 如果所有参数都是 字符串或空字符串,则该函数将返回 空白,从而 Coalesce 很好地将空字符串转换为 空白 值。

Coalesce( value1, value2 ) 是更简洁的 If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) 等效值,并且不需要 对 value1value2 进行两次计算。 如果此处没有“else”公式, 则 If 函数 返回 空白

Coalesce 设置为同一类型的所有参数;例如,不能将数字与文本字符串混合使用。 返回 Coalesce 值来自此常见类型。

IsEmpty

IsEmpty 函数测试表是否包含任何记录。 这个函数跟使用 CountRows 函数的效果相同,只不过它是检查表中的记录数是否为零。 可以通过结合 Errors 函数来检查数据源错误IsEmpty

返回值为 IsEmpty 布尔 值 truefalse

语法

Blank()

CoalesceValue1 [, Value2, ... ] )

  • values– 必需。 要测试的值。 将按顺序计算每个值,直到找到一个不 为空 且未找到空字符串的值。 不计算此点后的值。

IsBlank

  • Value –必需。 要测试空白值或空字符串的值。

IsEmpty

  • Table - 必需。 要测试是否包含记录的表。

示例

Blank

  1. 从头开始创建应用,然后添加一个 Button 控件。

  2. 将该按钮的 OnSelect 属性设置为以下公式:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. 预览应用,单击或点击所添加的按钮,然后关闭预览。

  4. 文件菜单上,单击或点击集合

    此时,Cities 集合显示,其中包含一条内容为“Seattle”和“Rainy”的记录:

    显示“Seattle”对应的“Weather”字段值为“Rainy”的集合。

  5. 单击或点击后退箭头,返回到默认工作区。

  6. 添加一个 Label 控件,然后将 Text 属性设置为以下公式:

    IsBlank( First( Cities ).Weather )
    

    此标签显示 false,因为 Weather 字段包含值 ("Rainy")。

  7. 添加第二个按钮,然后将 OnSelect 属性设置为以下公式:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. 预览应用,单击或点击所添加的按钮,然后关闭预览。

    Cities 集合中第一条记录的 Weather 字段被替换成空白值,删除了之前使用的“Rainy”。

    显示“Seattle”对应的“Weather”字段值为空白的集合。

    此标签显示 true,因为 Weather 字段不再包含值。

Coalesce

公式 描述 结果
Coalesce( Blank、1) 测试函数的 Blank 返回值,该函数始终返回 空白 值。 由于第一个参数为空白,因此继续对下一个参数求值,直至找到非空白值和非空字符串。 1
Coalesce( "", "2" ) 测试第一个参数,该参数为空字符串。 由于第一个参数是空字符串,因此继续对下一个参数求值,直至找到非空白值和非空字符串。 2
Coalesce( Blank、“”、“”、“ Blank3”、“4”) Coalesce 从参数列表的开头开始,并依次计算每个参数,直到找到非 值和非空字符串。 在本例中,前四个参数均返回空白或非空字符串,因此继续评估第五个参数。 第五个参数是非空白和非空字符串,因此计算在此处停止。 将返回第五个参数的值,并且不再对第六个参数求值。 3
Coalesce( "" ) 测试第一个参数,该参数为空字符串。 因为第一个参数是一个空字符串,并且没有更多参数,所以函数返回空白 空白

IsBlank

  1. 从头开始创建应用,然后添加一个文本输入控件,并将其命名为 FirstName

  2. 添加一个标签,然后将其 Text 属性设置为以下公式:

    If( IsBlank( FirstName.Text ), "First Name is a required field." )
    

    文本输入控件的 Text 属性默认设置为 "Text input"。 因为此属性包含值,所以它不是空的,标签也不会显示任何消息。

  3. 从文本输入控件中删除所有字符(包括空格)。

    由于 Text 属性不再包含任何字符,因此它是一个空字符串, IsBlank并且 (FirstName.Text)true。 现在就会显示“必填字段”这样的消息了。

若要了解如何使用其他工具执行验证,请参阅 Validate 函数和使用数据源

其他示例:

公式 描述 结果
IsBlank( Blank) 测试函数的 Blank 返回值,该函数始终返回 空白 值。
IsBlank( "" ) 不包含任何字符的字符串。
IsBlank(“Hello” ) 包含一个或多个字符的字符串。
IsBlank( AnyCollection 由于存在集合,所以即使不包含任何记录,它的值也不是空值。 若要检查空集合,请改用 IsEmpty
IsBlank(中(“你好”, 17, 2 ) Mid 函数的起始字符超出了字符串的结束位置。 所以结果是空字符串。
IsBlank(假、假) 没有 ElseResultIf 函数。 由于条件的结果始终是 false,所以 If 函数始终返回空白

IsEmpty

  1. 从头开始创建应用,然后添加一个 Button 控件。

  2. 将该按钮的 OnSelect 属性设置为以下公式:

    Collect( IceCream, {Flavor: “草莓”, Quantity: 300}, {Flavor: “Chocolate”, Quantity: 100} )

  3. 预览应用,单击或点击所添加的按钮,然后关闭预览。

    创建 IceCream 集合,其中包含以下数据:

    一个包含 Strawberry 和 Chocolate 口味的表,口味数量分别为 300 和 100。

    其中有两条记录,所以它不是空集。 IsEmpty(IceCream) 返回 false,CountRows(IceCream) 返回 2

  4. 添加第二个按钮,然后将 OnSelect 属性设置为以下公式:

    Clear(IceCream)

  5. 预览应用,单击或点击第二个按钮,然后关闭预览。

    这个集合现在变成了空集:

    将 Flavor 和 Quantity 作为空集合的集合。

    Clear 函数可删除集合中的所有记录,导致集合变成空集。 IsEmpty(IceCream) 返回 true,CountRows(IceCream) 返回 0

还可以用于 IsEmpty 测试计算表是否为空,如以下示例所示:

公式 描述 结果
IsEmpty( [ 1, 2, 3 ] ) 单列表包含三条记录,所以,它不是空表。
IsEmpty( [ ] ) 单列表不包含任何记录,所以它是空表。
IsEmpty(筛选器( [ 1, 2, 3 ], 值 > 5 ) 单列表不包含任何大于 5 的值。 筛选器没有筛选出任何记录,所以它是空表。