DataSourceInfo 函数

适用于:画布应用模型驱动应用

提供数据源的相关信息。

概览

数据源可以提供丰富的信息,用于优化用户体验。

可以使用级别信息验证用户输入并在使用 Patch 函数前向用户提供即时反馈。 Validate 函数使用同一信息。

例如,可在数据源级别使用信息,以针对无权编辑或创建记录的用户禁用或隐藏编辑新建按钮。

数据源中提供的信息量可能会不同,包括不提供任何信息。 集合不提供信息。 如果一条信息也不提供,则使用默认值,或返回空白

备注

目前,Microsoft Lists 中不支持 DataSourceInfo 函数。

说明

列信息

可以使用 DataSourceInfo 获取数据源的特定列的相关信息:

信息参数 结果类型 描述
DataSourceInfo.DisplayName 字符串 列的显示名称。 如果未定义显示名称,将返回列名称。
DataSourceInfo.MaxLength 号码 列所能容纳的最大字符数。 仅适用于包含字符串的列。 如果未设置最大值,则返回空白
DataSourceInfo.MaxValue 号码 列所能容纳的最大数值。 仅适用于包含数字的列。 如果未设置最大值,则返回空白
DataSourceInfo.MinValue 号码 列所能容纳的最小数值。 仅适用于包含数字的列。 如果未设置最小值,则返回空白
DataSourceInfo.Required Boolean 此列是否需要值? 如果数据源未对此进行设置,则返回 false

第三个自变量是字符串形式的列名称。 例如,集合人员中的手机列将传递为 "Phone"(含双引号)。

数据源信息

还可以使用 DataSourceInfo 获取整体数据源的信息:

信息参数 结果类型 描述
DataSourceInfo.AllowedValues Boolean 可以向用户授予对此数据源的哪些类型权限? 如果数据源未设置,则返回空白
DataSourceInfo.CreatePermission Boolean 当前用户是否有权在此数据源中创建记录? 如果数据源未设置,将返回 true
DataSourceInfo.DeletePermission Boolean 当前用户是否有权在此数据源中删除记录? 如果数据源未设置,将返回 true
DataSourceInfo.EditPermission Boolean 当前用户是否有权在此数据源中编辑记录? 如果数据源未设置,将返回 true
DataSourceInfo.ReadPermission Boolean 当前用户是否有权在此数据源中读取记录? 如果数据源未设置,将返回 true

备注

如果 DataSourceInfo 无法确定当前用户是否具有请求的权限,将返回 true。 当执行实际操作时,服务器将再次检查权限,如果该操作不被允许,将显示错误。 目前,只有在使用 Microsoft Dataverse 时,才可以使用 DataSourceInfo 进行权限检查。

语法

DataSourceInfo( DataSource, Information [, ColumnName] )

  • DataSource – 必需。 要使用的数据源。
  • Information – 必需。 要检索的信息类型。
  • ColumnName – 可选。 为方便检索列级信息的列名。 对于数据源级别的信息,不能使用 ColumnName 参数。

备注

在 3.24042 版本之前的 Power Apps 中,列名是使用双引号的文本字符串指定的,如果连接到数据源,它们还需要是逻辑名称。 例如,使用带双引号的逻辑名称 "cr43e_name",而不是不带引号的显示名称 Name。 对于列名称带空格的 SharePoint 和 Excel 数据源,每个空格都用 "_x0020_" 指定,例如 "Column Name""Column_x0020_Name"。 在此版本之后,所有应用程序都自动更新到本文描述的新语法。

示例

本部分中的示例使用以下名为 IceCream 的数据源:

Icecream 示例。

数据源还提供以下信息:

  • 数量的显示名称是“现存数量”。
  • 风格的最大长度是 30 个字符。
  • 风格列必须包含值。 数量列不是必需的。
  • 最小数量为 0。
  • 最大数量为 100。
  • 当前用户可读取和编辑 IceCream 数据源的记录,但无法创建或删除记录。
公式 描述 结果
DataSourceInfo( IceCream, DataSourceInfo.DisplayName, Quantity ) 返回 IceCream 数据源的数量列的显示名称。 “现存数量”
DataSourceInfo( IceCream, DataSourceInfo.MaxLength, Flavor ) 返回 IceCream 数据源的风格列的字符串的最大长度。 30
DataSourceInfo( IceCream, DataSourceInfo.Required, Flavor ) IceCream 数据源的风格列是否为必需? true
DataSourceInfo( IceCream, DataSourceInfo.Required, Quantity ) IceCream 数据源的数量列是否为必需? false
DataSourceInfo( IceCream, DataSourceInfo.MaxValue, Quantity ) 返回 IceCream 数据源的数量列的最大数值。 100
DataSourceInfo( IceCream, DataSourceInfo.MinValue, Quantity ) 返回 IceCream 数据源的数量列的最小数值。 0
DataSourceInfo( IceCream, DataSourceInfo.ReadPermission) 当前用户是否可以在 IceCream 数据源中读取记录? true
DataSourceInfo( IceCream, DataSourceInfo.EditPermission) 当前用户是否可以在 IceCream 数据源中编辑记录? true
DataSourceInfo( IceCream, DataSourceInfo.CreatePermission) 当前用户是否可以在 IceCream 数据源中创建记录? false
DataSourceInfo( IceCream, DataSourceInfo.DeletePermission) 当前用户是否可以在 IceCream 数据源中删除记录? false