如何在Acumatica移动端阻止销售订单页面的弹窗加载?
解决Acumatica移动端阻止Field Updated弹窗的问题
嘿,这个问题我熟!要在Acumatica移动端阻止弹窗弹出,核心思路就是在触发弹窗前先判断当前运行环境是不是移动端,如果是就跳过弹窗逻辑就行。
具体实现步骤
在你重写的CustomerID字段Field Updated事件里,添加环境判断代码,放在弹窗加载逻辑之前:
protected virtual void SOOrder_CustomerID_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e) { var row = (SOOrder)e.Row; if (row == null) return; // 关键:判断当前是否为移动端环境 if (PXRequestContext.Current.Mobile) { return; // 移动端直接跳过弹窗逻辑 } // 你原来的弹窗加载代码,保留不变 BAccountEnq bAccountEnq = PXGraph.CreateInstance<BAccountEnq>(); BAccount bAccount = PXSelect<BAccount, Where<BAccount.bAccountID, Equal<Required<BAccount.bAccountID>>>>.Select(this, row.CustomerID); // 后续弹窗显示逻辑... }
原理说明
PXRequestContext.Current.Mobile是Acumatica提供的内置属性,它会返回一个布尔值,准确标识当前请求是否来自Acumatica移动端应用。通过这个判断,我们可以让弹窗逻辑只在Web端生效,移动端自动跳过。
如果你的Acumatica版本比较旧(比如6.x及以前),可以尝试用PXPage.IsMobile替代PXRequestContext.Current.Mobile,不过前者在新版本中已经逐步被后者取代,推荐优先使用PXRequestContext的方式。
内容的提问来源于stack exchange,提问作者Bikash Lama
相关产品推荐
相关产品推荐

