pb数据窗口如何按当前列的值过滤下拉数据窗口(翻译)

本文介绍如何在PowerBuilder中,根据当前列的值过滤数据窗口的下拉选项。在订单状态更新场景中,不同状态的订单只能选择特定的更新状态。原有的过滤方法可能导致其他列的状态显示错误。解决方案是在下拉事件中扩展过滤逻辑,并在下拉后重新绘制数据窗口,以确保每个订单状态显示正确。详细步骤包括声明实例变量、扩展事件和编写过滤子程序。
摘要由CSDN通过智能技术生成

   假设我们的订单系统,有"新增"、"待定"、"提交"、"取消"四种状态,新增的定单只能修改为“取消”和“待定”状态,“待定”的订单只能改变为"取消"和"提交"的状态。“取消”和“提交”状态的订单得订单状态不能被改变。

   现在我们假设数据窗口把所有的订单都显示了出来,显示的列有“订单号”“订单状态”,订单状态列是可以被更新的,而且订单状态被实现为一下拉数据窗口,下拉数据窗口的显示列为(取消,提交,新增,待定)对应的数据列的(1,2,3,4).

   如何在显示正确的订单状态的同时又过滤出下来数据窗口呢?

   一开始的解决方法是,通过捕捉pbm_dropdown事件,使用GetChild的SetFilter和Filter methods,但是会导致其它列的状态显示不正确。假设有两个订单,一个是“新增”状态,一个是“提交”状态,我们通过Filter子数据窗口的方法把子数据窗口过滤的方法把”新增"状态的那个订单的下来数据窗口中的只显示“取消”,“新增”和“待定”状态,这样对于新增状态的订单显示是正确的,但是在同时因为将下拉数据窗口中的“提交”这一行给过滤掉了会导致“提交”状态的那个订单只会显示不正确,显示2。

   我们需要寻找到一种方法,在下拉数据窗口下拉以后重绘。

   下边是一种改动最小的实现方法。我们建议把这个方法封装成数据窗口的服务,有关细节放面的东西可以联系作者。实际上,就是建议其中的 of_Filter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值