如何仅在特定界面中触发FieldSelecting事件?
解决方案
要限定IPXFieldSelectingSubscriber的逻辑仅在特定界面触发,核心是通过当前上下文的图形实例类型判断实现:
- 在
Selecting方法中,通过PXCache.Graph获取当前绑定的图形对象 - 校验图形类型是否为目标界面,非目标场景直接跳过逻辑执行
示例代码如下:
public void Selecting(PXCache cache, PXFieldSelectingEventArgs e) { // 仅在SOOrderEntry界面执行逻辑,可替换为你的目标界面类型 if (!(cache.Graph is SOOrderEntry)) { return; } // 此处编写你的查询与计算逻辑 }
扩展场景处理
- 若需支持多个特定界面,可通过逻辑或扩展判断:
if (!(cache.Graph is SOOrderEntry || cache.Graph is ARInvoiceEntry)) { return; } - 要排除通用查询(GI)场景,可直接判断是否为
PXGenericInqGrph类型:if (cache.Graph is PXGenericInqGrph) { return; }
内容的提问来源于stack exchange,提问作者Rick
相关产品推荐
相关产品推荐

