Acumatica Mobile端CR304500自定义Warehouse选择器点击无列表问题
问题排查与解决方案
根因定位
选择器无数据问题主要由以下几个配置不匹配项导致:
- 移动声明配置的字段名与后端DAC实际字段不匹配
- 选择器返回字段映射关系不一致
- 部分隐藏权限/配置项未对齐
具体修复步骤
- 修正移动配置的字段与选择器映射
你后端扩展的是CROpportunityProducts的SiteID字段,移动配置中不能用自定义的"Warehouse"作为字段名,需与DAC字段名保持一致,同时选择器内的字段要和PXSelector返回的字段匹配,修正后的配置如下:
update screen CR304500 { update container "DocumentDetails" { fieldsToShow = 6 // 原有字段+新增仓库字段,数量要对应 update layout "QuantityUOMRow" { add field "SiteID" { placeAfter field "UOM" displayName = "Whse." selectorDisplayFormat = Key listDisplayFormat = Value listPriority = 96 pickerType = Attached selector { fieldsToShow = 2 add field "siteCD" // 对应PXSelector中返回的INSite.siteCD add field "descr" // 对应PXSelector中返回的INSite.descr } } } } }
- 验证后端配置正确性
你现有的CacheAttached代码无需大幅调整,可补充Enabled = true确保字段可编辑,避免状态控制导致字段只读无法加载选项:
public class QuoteMaintExt : PXGraphExtension<QuoteMaint> { [PXRemoveBaseAttribute(typeof(PXForeignReferenceAttribute))] [PXSelector(typeof(Search<INSite.siteID>), new Type[] { typeof(INSite.siteCD), typeof(INSite.descr) }, SubstituteKey = typeof(INSite.siteCD))] [PXUIField(DisplayName = "Warehouse", Enabled = true)] // 新增Enabled确保可编辑 protected void CROpportunityProducts_SiteID_CacheAttached(PXCache cache) { } }
补充:如果调整后仍无数据,可给PXSelector添加分支过滤逻辑,适配多分支权限控制:
[PXSelector(typeof(Search<INSite.siteID, Where<INSite.branchID, Equal<Current<AccessInfo.branchID>>>>), new Type[] { typeof(INSite.siteCD), typeof(INSite.descr) }, SubstituteKey = typeof(INSite.siteCD))]
- 权限校验
登录Acumatica网页端,确认当前操作账号所属角色拥有以下权限:
- 仓库(INSite)实体的查看权限
- 报价单明细行的编辑权限
- 对应站点的访问权限(若开启了多站点权限控制)
- 移动应用配置生效验证
修改完成后需:
- 清除Acumatica移动应用的本地缓存
- 重新登录账号加载最新的屏幕配置
- 新建报价单测试仓库选择器是否正常加载数据
内容的提问来源于stack exchange,提问作者trademarq
相关产品推荐
相关产品推荐

