DataSourceInfo 函数
适用于: 画布应用 模型驱动应用
提供数据源的相关信息。
概览
数据源可以提供丰富的信息,用于优化用户体验。
可以使用列级别信息验证用户输入并在使用 Patch 函数前向用户提供即时反馈。 Validate 函数使用同一信息。
例如,可在数据源级别使用信息,以针对无权编辑或创建记录的用户禁用或隐藏编辑和新建按钮。
数据源中提供的信息量可能会不同,包括不提供任何信息。 集合 不提供任何信息。 如果一条信息也不提供,则使用默认值,或返回空白。
备注
目前,List 不支持 Microsoft DataSourceInfo 函数。
Description
列信息
可以使用 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 —可选。 为方便检索列级信息的列名。 对于数据源级别的信息,不能使用 ColumnName 参数。
备注
在 3.24042 版本之前的 Power Apps 中,列名是使用双引号的文本字符串指定的,如果连接到数据源,它们还需要是逻辑名称。 例如,使用带双引号的逻辑名称 "cr43e_name",而不是不带引号的显示名称 Name。 对于列名称带空格的 SharePoint 和 Excel 数据源,每个空格都用 "_x0020_" 指定,例如 "Column Name" 为 "Column_x0020_Name"。 在此版本之后,所有应用程序都自动更新到本文描述的新语法。
示例
本部分中的示例使用以下名为 IceCream 的数据源:
数据源还提供以下信息:
- 数量的显示名称是“现存数量”。
- 风格的最大长度是 30 个字符。
- 风格列必须包含值。 数量列不是必需的。
- 最小数量为 0。
- 最大数量为 100。
- 当前用户可读取和编辑 IceCream 数据源的记录,但无法创建或删除记录。
公式 | 描述 | 结果 |
---|---|---|
DataSourceInfo(冰淇淋,DataSourceInfo.DisplayName,数量) | 返回 IceCream 数据源的数量列的显示名称。 | “现存数量” |
DataSourceInfo(冰淇淋,DataSourceInfo.MaxLength,口味) | 返回 IceCream 数据源的风格列的字符串的最大长度。 | 30 |
DataSourceInfo(冰淇淋,DataSourceInfo.Required,口味) | IceCream 数据源的风格列是否为必需? | 真 |
DataSourceInfo(冰淇淋,DataSourceInfo.Required,数量) | IceCream 数据源的数量列是否为必需? | 假 |
DataSourceInfo(冰淇淋,DataSourceInfo.MaxValue,数量) | 返回 IceCream 数据源的数量列的最大数值。 | 100 |
DataSourceInfo(冰淇淋,DataSourceInfo.MinValue,数量) | 返回 IceCream 数据源的数量列的最小数值。 | 0 |
DataSourceInfo(IceCream,DataSourceInfo.ReadPermission) | 当前用户是否可以在 IceCream 数据源中读取记录? | 真 |
DataSourceInfo(IceCream,DataSourceInfo.EditPermission) | 当前用户是否可以在 IceCream 数据源中编辑记录? | 真 |
DataSourceInfo(IceCream,DataSourceInfo.CreatePermission) | 当前用户是否可以在 IceCream 数据源中创建记录? | 假 |
DataSourceInfo(IceCream,DataSourceInfo.DeletePermission) | 当前用户是否可以在 IceCream 数据源中删除记录? | 假 |