【Power Apps】一个简单的用户筛选器,并简单解释一下PA中“委派”的概念

今天我们来实现一个简单的用户筛选器功能,这个筛选器可以根据人员字段的值,来筛选库(Gallery)中所显示的数据。

筛选器的具体实现方式其实就是设置几个筛选用的字段,然后在库的数据源中使用Filter函数,来根据这几个筛选字段的值筛出指定的数据。

那么这次我们要根据所选的人员来筛选数据,首先要做的事自然是先放一个人员选择字段。

我们需要准备一个组合框,然后把组合框的数据源设置为用户表,这个表是系统自带的表,会记录当前环境中的所有用户的相关信息。

然后我们在库的数据源中设置一个筛选器,当“差旅报销表”中的“申请人”字段所选值的“全名”属性,与我们筛选字段所选值的“全名”属性相同时,返回指定数据。

不过这样写只支持单选。

想要实现多选可以这么写。

当筛选字段所选的所有值包含有表中“申请人”字段所选值的时候,返回指定数据。

相信你们也看到了,我这样写表达式,系统给我报了一个警告,具体警告信息是这样的。

其实这个警告是“in”语句报出的,因为我这里的申请人字段是关联的“用户表”的数据,而不是本表“差旅报销表”自己的数据,所以“in”语句在这里不再支持“委派”。

这里就要简单说一下Power Apps中的“委派”是怎么个事儿了。

PA在实现各种表达式语句的时候,有一些语句可以在后端也就是数据源(比如Dataverse、SharePoint List、SQL Server)那里执行,而有一些语句数据源执行不了,就只能在前端也就是Power Apps中执行,这些支持在后端执行的语句就是支持委派的(就是委派后端来执行这些语句的意思)。

而那些不支持委派的语句由于需要把数据拿到前端来做处理,所以微软官方就对这些语句做了一些限制,即最多只能拿到数据源的前2000条数据,因为如果数据再多一点,加载数据到前端的这个过程就会对应用的性能造成比较严重的影响了,可能用户光等数据加载就要等半天。

而“in”语句如果按我这么写,那么该语句就将不再支持委派,也就是说,如果我直接用“in”语句来判断某一项在整个数据源中是否存在,那么当数据源的数据量非常大的时候,系统最多就只会在前2000条数据中做这个判断,前2000条没有这个项,系统就直接返回false,哪怕这个项就在数据源的第2001条那里。

如果我们的数据源没有非常大,那我们大可以直接忽略这个警告。

而如果我们的数据量比较大,但又没有那么大,同时我们对应用的性能要求不是很高的话,我们可以用把数据源所有数据都加载到一个集合中,

然后对这个集合使用不支持委派的语句,通过这种方法来规避掉这个警告。

当然,如果我们的数据量非常大,那咱们还是尽量不要用不支持委派的语句,对于这个人员筛选也只做一个单人筛选就好了。

---

欢迎加vx交流:vAfi_FeiFei

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值