Power Apps - 搜索流程问题
我有一个名为Employees的屏幕,屏幕上有一个员工详情的画廊。
其中一个详情是他们是否需要执行某个特定任务。如果需要,我在画廊里有一个小图标,它在需要时可见;不需要时隐藏。
我还设计了一个名为Tasks的屏幕,里面有一个画廊,显示所有需要完成此特定任务的员工。这个屏幕可以从Switchboard屏幕进入。
这个Tasks屏幕有一个文本框,允许我根据多种条件进行搜索,其中包括EmpID,它在两个屏幕之间共用。
如果我在Employees屏幕上点击该图标,任务屏幕将仅显示被选中的那位员工。这一切都正常。
然而,如果我随后退出Tasks屏幕并再次从Switchboard屏幕进入,Tasks屏幕仍然显示先前选中的员工。
我添加了Set(varEMPID, Blank()),以在从Switchboard屏幕进入Tasks屏幕时清空该变量。这看起来没问题,但画廊会变成空的。
在下面的代码中,我需要能够在进入Tasks屏幕时,使用来自Employees屏幕的varEmpID,或者在从Switchboard屏幕进入时忽略它。
基本上,如果varEMPID有值,就使用该值;如果没有值,就在任务屏幕显示所有人。
不过不确定如何在Task屏幕的搜索例程中编写这段代码(如下)。
任务屏幕搜索例程
Search(
Filter(
tblAllTaskDetails,
TaskStatus = ddAllTaskStatus.Selected.Result
Or IsBlank(ddAllTaskStatus.Selected.Result)
//This is what i'm attempting - works fine when going into the Tasks screen from the Employees screen
//Fails when going in via the Switchboard screen as there is no value in varEMPID
EmpID = varEMPID.EmpID - assigned by clicking the visible icon on the Employees screen.
),
txtSearchTasks.Text,
EmpID,
FullName,
TaskStatus,
TaskLocation,
TaskCategory,
TaskType
)
解决方案
下面是一段可行的示例代码和截图,用于表格过滤,请根据你的搜索字段条件进行修改。
Screen3的画廊中的图标将导航到Task屏幕(Screen4)
Icon的属性
If(ThisItem.TaskType="Purchasing",Icon.Currency)
OnSelect属性of Icon
If(ThisItem.TaskType="Purchasing",Navigate(Screen4,ScreenTransition.None,{varEmployee:ThisItem.EmpID}))

On Screen4,文本输入框的默认属性是
varEmployee
画廊的Items属性设置如下
If(CountRows(If(TextInput2.Text<>Blank(),Filter(colPurchasingTask,EmpID=TextInput2.Text)))>0,
Filter(colPurchasingTask,EmpID=TextInput2.Text),colPurchasingTask)


Screen5是另一个可以打开Task屏幕的屏幕,和你的Switchboard屏幕类似。
按钮的OnSelect属性设置为
Navigate(Screen4,ScreenTransition.None,{varEmployee:""})

从这里导航到Task屏幕后,Task画廊将显示所有任务记录。
