You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于SOShipment的PXProjection处理屏幕Selected列无法显示问题

解决Acumatica中SOShipment投影屏幕Selected字段显示问题

针对你遇到的基于SOShipment的PXProjection处理屏幕里Selected字段无法正常显示的问题,我来分享下具体的排查和解决步骤——这种情况我之前在做Acumatica自定义开发时也碰到过,主要是投影DAC的字段属性配置和系统布局缓存的问题:

核心原因分析

出现这类问题通常是两个关键点导致的:

  • 投影DAC(PXProjection)默认不会自动继承源DAC(SOShipment)中Selected字段的UI可见性配置
  • 系统布局缓存未更新,导致列配置面板无法识别到该字段

具体解决步骤

1. 在投影DAC中显式声明Selected字段

即使是基于SOShipment的投影,也需要在自定义的投影DAC里显式声明Selected字段,并配置正确的UI属性,确保系统能识别到它的可见性。示例代码如下:

// 自定义投影DAC示例
[PXProjection(typeof(Select<SOShipment, Where<SOShipment.status, Equal<SOStatus.open>>>))]
public class MyShipmentProjection : IBqlTable
{
    // 其他投影字段...

    // 显式声明Selected字段,绑定到SOShipment的对应字段
    [PXDBBool(typeof(SOShipment.selected))]
    [PXDefault(false)]
    [PXUIField(DisplayName = "Selected", Visibility = PXUIVisibility.Visible)]
    public virtual bool? Selected { get; set; }
    public abstract class selected : PX.Data.BQL.BqlBool.Field<selected> { }
}

这里关键是设置PXUIField的Visibility为PXUIVisibility.Visible(或者SelectorVisible,根据你的使用场景调整),这样表单设计和列配置面板就能正常识别到该字段。

2. 更新表单设计并保存布局

  • 重新发布你的Acumatica项目,确保新的DAC字段属性生效
  • 打开处理屏幕的表单设计,找到Selected字段,将其从隐藏状态改为可见
  • 调整该字段在网格中的位置,然后保存当前布局

3. 清除系统缓存(可选但推荐)

如果做完上述步骤后列配置还是看不到Selected字段,建议清除Acumatica的系统缓存:

  • 进入System > Management > Cache Management
  • 点击Clear All Caches按钮,等待缓存清理完成
  • 刷新浏览器后重新打开列配置,应该就能看到Selected字段了

额外注意事项

  • 确保投影的查询语句(PXProjection的typeof(Select<...>)部分)正确关联了SOShipment表,保证Selected字段能正确读取源数据
  • 如果你之前手动修改过网格布局,可能需要先恢复默认布局,再重新添加Selected字段并保存自定义布局

内容的提问来源于stack exchange,提问作者Jerry Welliver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:33:47