在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'
    )
)
相关推荐
UXbot2 天前
帮助企业低门槛开展AI应用开发的平台推荐
前端·低代码·ui·交互·产品经理·原型模式·web app
盟接之桥2 天前
电子数据交换(EDI)|制造业汽车零配件场景方案
大数据·网络·人工智能·安全·低代码·汽车·制造
UXbot2 天前
如何选择适合公司项目的UI设计工具?企业选型指南
前端·低代码·ui·团队开发·原型模式·设计规范·web app
UXbot2 天前
原型设计工具如何帮助新人快速进入产品行业?
前端·低代码·ui·交互·团队开发·原型模式·web app
NocoBase3 天前
程序员和软件还有前途吗 —— 从 NocoBase 收入再翻倍谈起
低代码·ai·开源·无代码·管理工具·内部工具·无代码开发平台
盟接之桥3 天前
制造业汽车零配件EDI软件场景方案
网络·安全·低代码·汽车·制造
小龙报3 天前
用ChatGPT 5.5构建个人写作工作流:从大纲、初稿到风格润色的提示词链
人工智能·神经网络·低代码·自然语言处理·chatgpt·gpt-3·知识图谱
撑死胆大的3 天前
2026开发变局:国标落地后,软件开发彻底换赛道
前端·低代码·ai·大模型
API开发平台4 天前
API智能开发与治理平台v5.0发布
低代码·ai编程
oioihoii5 天前
探索React与Microi吾码的完美结合:快速搭建项目,低代码便捷开发教程
react.js·低代码·rxjava