刚打开应用的时候,所有的申请都显示。在菜单页里面添加一个按钮,然后点击了以后只显示【已完成】的申请,就是提供过滤的功能。
- 添加按钮,名字叫【已完成】
- 设定按钮的OnSelect 公式
========================================
Set(var_filterStatus,”已完成”);Navigate(BrowseScreen1,None);
======================================== - 使BrowseGallery 只显示状态等于 var_filterStatus 的项,此部分先为了了解确认下当前的显示条件,在BrowseGallery 的Items属性
- 默认是这样
====================
SortByColumns(
Filter(
[@采购申请书],
StartsWith(
标题,
TextSearchBox1.Text
)
),
“Title”,
If(
SortDescending1,
Descending,
Ascending
)
)
===================== - 里面的Filter, 默认是这样
=====================
StartsWith(
标题,
TextSearchBox1.Text
)
=====================
这个意思是,使用在默认有的搜索框里输入的值,然后表头从此值开始的项显示。
现在保留此显示条件,再追加状态为var_filterStatus 的项,就变成这样。
=============================
Filter(
[@采购申请书],
StartsWith(
标题,
TextSearchBox1.Text
),
If(
!IsBlank(var_filterStatus),
状态 = var_filterStatus,
true
)
)
==============================
意思是,如果 var_filterStatus 不是没有值(刚刚打开应用的时候没有值)的时候,只显示状态字段的值为var_filterStatus,否则true(=不适应条件:就是显示所有的状态) - 改好的公式如下
- 现在,新加的部分又蓝色的下划线,又提示【委派警告。此公式的“Filter”部分可能在大型数据集上无法正常工作】,暂时忽略此警告,将来我们再改善。
- 现在,点击一次按钮后显示已完成的项,但没法再显示全部,所以再添加显示全部的按钮。
此按钮的公式如下
====================
Set(var_filterStatus,Blank())
====================
意思为 var_filterStatus 的值删掉,返回没有值的状态,(在PowerApps上相当null 是 Blank()来实现)