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

概述

Blank 是“空值”或“未知值”的占位符。 如果用户没有输入任何字符,那么“文本输入”控件便是空白*的。 当用户在文本输入框中输入一个字符后,该文本框的值就不再是 *blank 值。 一些数据源可以存储和返回 NULL 值,此类值在 PowerApps 中表示为*空白*值。

注意:暂时只有本地集合支持存储空白*值。 我们知道,多个数据源支持*空白 (NULL) 值,我们正在努力取消此限制。

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

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

说明

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

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

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

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

IsBlankIsEmpty 的返回值都是布尔值 truefalse

语法

Blank()

IsBlank( Value )

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

IsEmpty( Table )

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

示例

Blank

注意:下面的示例暂只适用于本地集合。 我们知道,多个数据源支持空白 (NULL) 值,我们正在努力取消此限制。

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

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

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )

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

  4. 在“文件”菜单上,单击或点击“集合”。

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

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

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

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

    IsBlank( First( Cities ).Weather )

    此标签显示“false”,因为“Weather”字段包含值“Rainy”。

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

    Patch( Cities, First( Cities ), { Weather: Blank() } )

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

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

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

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

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 函数返回的值,此函数始终返回*空白*值。 true
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. 从头开始创建应用,然后添加一个“按钮”控件。

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

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

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

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

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

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

    Clear( IceCream )

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

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

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

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

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