<< 点击显示目录 >> 主页 mappView帮助助手 > mapp View帮助信息 > 指南 > FAQs > 事件和行动应用 > Page change on logout注销时的页面变化 |
这个例子演示了以下使用情况。
在一个生产班次结束时,活动用户通过点击注销图标退出HMI应用程序。在注销时,HMI应用程序应切换回主屏幕,以便再次登录。
注销后会显示登录页面。
一张带有注销图标的图片被配置在一块内容上。点击图片的响应被包含在事件绑定中;该动作是将一个会话变量设置为 "True"。
在会话变量的ValueChanged事件中,"注销Logout "和 "导航Navigate "的动作被依次执行,然后会话变量被设置回 "假False"。
会话变量是在逻辑视图的.svar文件中创建的。
<Variable name="CloseAndLogout" scope="session" xsi:type="BOOL" value="false" />
一个图像部件被添加到内容片上,内容片ID为 "ContentNavigation";然后在属性 "image "上引用了一个图像文件。
<Widget xsi:type="widgets.brease.Image" id="ImageLogout" top="774" left="1534" width="64" height="64" zIndex="1" image="Media/Logout.svg" />
HMI应用程序中的事件绑定是包括对图像部件上的点击事件的响应,以及在.svar文件中创建的会话变量被写入的地方。
<EventBinding>
<Source xsi:type="widgets.brease.Image.Event" contentRefId="ContentNavigation" widgetRefId="ImageLogout" event="Click"/>
<EventHandler>
<Action>
<Target xsi:type="session.VariableAction" refId="CloseAndLogout" >
<Method xsi:type="session.VariableAction.SetValueBool" value="true" />
</Target>
</Action>
</EventHandler>
</EventBinding>
在会话变量的ValueChanged事件中,在下一步配置了3个连续的动作,包括注销、改变页面和重置会话变量。
<EventBinding>
<Source xsi:type="session.Event" refId="CloseAndLogout" event="ValueChanged" />
<EventHandler condition="newValue">
<Sequence>
<Step order="0">
<Action>
<Target xsi:type="session.VariableAction" refId="CloseAndLogout" >
<Method xsi:type="session.VariableAction.SetValueBool" value="false" />
</Target>
</Action>
</Step>
<Step order="1">
<Action>
<Target xsi:type="clientSystem.Action">
<Method xsi:type="clientSystem.Action.Navigate" pageId="MainPage" />
</Target>
</Action>
</Step>
<Step order="2">
<Action>
<Target xsi:type="clientSystem.Action">
<Method xsi:type="clientSystem.Action.Logout" />
</Target>
</Action>
</Step>
</Sequence>
</EventHandler>
</EventBinding>
在一块内容的上下文中,不允许平行或顺序执行 "导航 "动作。这是因为当这个动作被执行时,内容(元素element<Source>的contentRefId)不再活跃,因此不能确保其他动作也被执行。使用会话变量作为源,总能保证动作也被执行。