在Power Apps里创建组合筛选器并把值传递给Power公式

本文中我将探索在power app里面创建组合过滤器,并把值传递给Power公式来过滤数据.我使用的是Accounts(样本数据)表来演示,你可以使用自己的数据.控件列表如下:

控件 引用 数据源
Combox Business Account表
Toggle Credit Hold Account表
DropDown(Preview) Relationship Type Account表
Reset 重置控件值 N/A
Table(Preview) Collection Account

整个布局大体如下:

效果如下:

该示例的主要函数是Filter().以下描述来自微软:

Syntax

Filter(Table*, Formula1 [, Formula2, ... ] )

  • Table - Required. Table to search.
  • Formula(s) - Required. The formula by which each record of the table is evaluated. The function returns all records that result in true. You can reference columns within the table. If you supply more than one formula, the results of all formulas are combined with the And function.

注意in和exactin的用法(子字符串匹配).当使用 Combox、DropDown、List 等控件时,这些数据是table类型。因此,例如使用 Combox 时,我会首先考虑in运算符。以下是Account表中的数据,我想过滤业务类型("EMS"、"OEM")。

代码类似于:

vbnet 复制代码
FROM Account WHERE 'Business Type' IN ( Combox.dataset)
//It's not a real code, I want to use T-SQL to explain it.

把整个解释为Power fx公式:

scss 复制代码
Filter(Account, 'Business Type' in Combox.SelectedItems)

或者我们缩小下值的范围,使用ShowColumns()的函数,它将删除其他列并仅返回您想要的列,这里是Value列,注意,即使它只有一列,它的类型依然是Table类。

java 复制代码
Filter(Account, 'Business Type' in ShowColumns(Combox.SelectedItems,Value))

类似地,我们可以组合其他控件,然后把它们的值传递给Power fx公式来实现筛选的效果.以下是详细步骤:

1. 设置Combox的数据源:

ini 复制代码
Items = Choices('Business Type (Accounts)')
IsSearchable = false //default is true.

2. 设置DropDown的数据源:

ini 复制代码
Items = Choices('Relationship Type (Accounts)')DefaultSelectedItems= []

3. 重置控件的OnSelect.

scss 复制代码
OnSelect = Reset(ComboBox1);Reset(DropdownCanvas2);

4. 添加Button,设置OnSelect.

less 复制代码
ClearCollect(
    myAccount,
    RenameColumns(
        ShowColumns(
            Filter(
                Accounts,
                (IsBlank(ComboBox1.SelectedItems) || 'Business Type' in ComboBox1.SelectedItems) 
                And (IsEmpty(DropdownCanvas2.SelectedItems) || 'Relationship Type' in ShowColumns(
                    DropdownCanvas2.SelectedItems,
                    Value
                )) 
                And 'Credit Hold' = Toggle1.Checked
            ),
            'Account Name',
            'Main Phone',
            'Address 1: City',
            'Primary Contact',
            'Credit Limit'
        ),
        name,'Customer Name',
        address1_city,'City',
        creditlimit,'Credit Limit',
        primarycontactid,'Primary Contact',
        telephone1,'Main Phone'
    )
)
相关推荐
启扶农1 小时前
lecen:一个更好的开源可视化系统搭建项目--动态绑定、操作快捷键--全低代码|所见即所得|利用可视化设计器构建你的应用系统-做一个懂你的人
低代码·快捷键·数据绑定·动态数据·动态绑定·页面可视化·页面设计器
无代码专家1 小时前
制造业生产管理数字化转型:软件赋能全流程精益管控
低代码·制造
启扶农21 小时前
lecen:一个更好的开源可视化系统搭建项目--全局对象使用--全低代码|所见即所得|利用可视化设计器构建你的应用系统-做一个懂你的人
低代码·数据访问·页面可视化·页面设计器·全局对象·公共属性·工具方法
启扶农2 天前
lecen:一个更好的开源可视化系统搭建项目--数据、请求、寄连对象使用--全低代码|所见即所得|利用可视化设计器构建你的应用系统-做一个懂你的人
低代码·数据对象·数据访问·页面可视化·页面设计器·请求对象·寄连对象
流之云低代码平台2 天前
提升PHP开发效率与质量的关键:工作流优化
低代码·php工作流优化方法·php代码优化·php开发流程优化·tpflow工作流引擎应用·gadmin企业级开发平台优势·软件开发速度提升
#六脉神剑2 天前
用myBuilder搭建企业级数字化业务系统架构
低代码·系统架构·低代码开发平台·数字化工具·mybuilder
晴虹2 天前
lecen:一个更好的开源可视化系统搭建项目--数据、请求、寄连对象使用--全低代码|所见即所得|利用可视化设计器构建你的应用系统-做一个懂你的人
前端·后端·低代码
流之云低代码平台3 天前
PHP工作流优化:让软件开发如虎添翼
低代码·php工作流优化方法·php工作流优化案例·php代码复用·php模块化开发·php自动化测试·php性能优化
启扶农3 天前
lecen:一个更好的开源可视化系统搭建项目--组件和功能按钮的权限控制--全低代码|所见即所得|利用可视化设计器构建你的应用系统-做一个懂你的人
低代码·权限控制·页面可视化·页面设计器·数据控制·组件控制·功能控制
AiFlutter3 天前
五、交互行为(01):按钮
flutter·低代码·低代码平台·aiflutter·aiflutter低代码