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

Acumatica中基于自定义字段排序网格:DAC字段配置疑问

Acumatica 网格排序字段配置方案

在ABONNEMENTL DAC中,我新增了abolnumligne字段用于实现网格排序,已经在PXSelect查询中添加了如下排序逻辑:

public PXSelect<ABONNEMENTL,Where<ABONNEMENTL.abonum,Equal<Current<ABONNEMENTL.abonum>>>,OrderBy<Asc<ABONNEMENTL.abonum, Asc<ABONNEMENTL.abolnumligne>>>> CurrentAbonnementl;

但不清楚字段定义部分需要补充什么配置,当前字段代码如下:

#region Abolnumligne
[PXDBInt()]
[PXUIField(DisplayName = "Abolnumligne")]

public virtual int? Abolnumligne { get; set; }
public abstract class abolnumligne : PX.Data.BQL.BqlInt.Field<abolnumligne> { }
#endregion

针对性配置建议

根据你的需求,分两种场景调整字段定义:

  1. 允许用户在界面手动调整排序(点击表头切换升降序)
    需要在PXUIField属性中开启交互支持,同时可设置只读避免误编辑:
#region Abolnumligne
[PXDBInt()]
[PXUIField(DisplayName = "行排序号", Enabled = true, IsReadOnly = true)]
public virtual int? Abolnumligne { get; set; }
public abstract class abolnumligne : PX.Data.BQL.BqlInt.Field<abolnumligne> { }
#endregion

注:Enabled = true让字段支持点击表头排序,IsReadOnly = true禁止用户直接修改排序号,可根据实际需求调整。

  1. 仅后台默认排序,无需用户手动干预
    当前字段定义已满足基础需求,可添加PXDefault属性处理默认值(比如新增行时自动生成序号),示例:
#region Abolnumligne
[PXDBInt()]
[PXDefault(PersistingCheck = PXPersistingCheck.Nothing)] // 允许为空,按需可改为Required
[PXUIField(DisplayName = "行排序号")]
public virtual int? Abolnumligne { get; set; }
public abstract class abolnumligne : PX.Data.BQL.BqlInt.Field<abolnumligne> { }
#endregion

另外需确保该字段已添加到对应网格的布局中,否则界面无法体现排序效果。

内容的提问来源于stack exchange,提问作者Xavier LARTEM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 19:17:12