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
针对性配置建议
根据你的需求,分两种场景调整字段定义:
- 允许用户在界面手动调整排序(点击表头切换升降序)
需要在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禁止用户直接修改排序号,可根据实际需求调整。
- 仅后台默认排序,无需用户手动干预
当前字段定义已满足基础需求,可添加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
相关产品推荐
相关产品推荐

