测试一个值是不是空值,或者是不是包含记录

概述

Blank 是“空值”或“未知值”的占位符。 如果用户没有在文本输入框中输入任何字符,则该文本框的值为 blank 值。 当用户在文本输入框中输入一个字符后,该文本框的值就不再是 blank 值。

任何属性的值或计算的值都可以是 blank 值。 例如,布尔型数据的值通常是:truefalse。 但除了这两个值,它还可以是 blank 值。 这跟 Microsoft Excel 很相似。Excel 工作表的单元格一开始可能是空的,但是它可以包含 TRUEFALSE 值等等。 你随时可以删除单元格中的内容,如果将其删除,单元格又会变成 blank 状态。

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

说明

IsBlank 函数用于测试 blank 值。 以下情况下会出现 blank 值:

  • 控件属性中没有填写公式。
  • 没有在文本输入控件中输入值,或者没有在列表框中选择项。 如果字段是必填的,就可以使用 IsBlank 来提供反馈。
  • 字符串不包含任何字符(Len 值为 0)。
  • 函数出错。 通常,函数有一个参数无效。 如果参数的值是 blank 值,许多函数会返回 *blank*。
  • 连接的数据源(例如 SQL Server)可能使用“Null”值。 在 PowerApps 中,这些值显示为 blank 值。
  • 没有编写 If 函数的 else 部分,也就是所有条件的结果都是 false
  • 使用 Update 函数时没有指定所有列的值。 对于没有指定值的列,结果是,其中不会填入值。

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

这两个函数的返回值都是布尔值 truefalse

语法

IsBlank( Value )

  • Value – 必需。 要测试的值。

IsEmpty( Table )

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

示例

IsBlank

  1. 创建一个新应用,在应用中添加一个文本输入控件,并将其命名为 FirstName

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

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

    默认情况下,文本输入控件的 Text 属性设置为“输入文本”。 由于这个控件包含了值,所以它不是空的,标签控件也不会显示任何消息。

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

    现在,这个控件不再包含任何字符,所以它的 Text 属性值是 blank 值,并且 IsBlank( FirstName.Text ) 的值为 true。 现在就会显示“必填字段”这样的消息了。

你还可以使用其他工具来验证。 请参阅 Validate 函数和使用数据源

其他示例:

公式 说明 结果
IsBlank( "" ) 不包含任何字符的字符串。 true
IsBlank( "Hello" ) 包含一个或多个字符的字符串。 false
IsBlank( AnyCollection ) 由于存在集合,所以即使不包含任何记录,它的值也不是空值。 要检查是不是空集合,请使用 IsEmpty false
IsBlank( Mid( "Hello", 17, 2 ) ) Mid 函数的起始字符超出了字符串的结束位置。 所以结果是空字符串。 true
IsBlank( If( false, false ) ) If 函数没有 ElseResult 部分。 由于条件的结果始终是 false,所以 If 函数始终返回 blank 值。 true

IsEmpty

  1. 将一个按钮的 OnSelect 属性设置为以下公式,然后点击按钮,创建一个名为 IceCream 的集合:

    Collect( IceCream, { Flavor: "Strawberry", Quantity: 300 }, { Flavor: "Chocolate", Quantity: 100 } )

    这个集合包含下面的数据:

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

  2. 将按钮的 OnSelect 属性更改为以下公式,然后点击按钮,清空集合:

    Clear( IceCream )

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

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

还可以使用 IsEmpty 测试一个计算的表是不是空表,请参阅以下示例:

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