在Acumatica中自动生成数字

时间:2017-07-13 06:35:24

标签: c# acumatica

我想创建一个自动生成数字,类似于批次/序列类中段ID的自动增量,如此图片所示。

Lot/Serial Classes

检查代码后,我注意到它使用了PXLineNbr

    public abstract class segmentID : PX.Data.IBqlField
    {
    }
    protected Int16? _SegmentID;
    [PXDBShort(IsKey = true)]
    [PXUIField(DisplayName="Segment Number", Enabled=false)]
    [PXLineNbr(typeof(INLotSerClass))]
    [PXDefault()]
    public virtual Int16? SegmentID
    {
        get
        {
            return this._SegmentID;
        }
        set
        {
            this._SegmentID = value;
        }
    }

尝试将其应用于我的代码后,自动生成的数字不会显示。如果我错过了别的东西,我就会徘徊。提前谢谢

2 个答案:

答案 0 :(得分:3)

您是否在Acumatica Open University处的 T200 培训中检查了示例7.1:编号明细数据记录?它详细解释了如何使用PXLineNbr属性自动编号详细数据记录。

答案 1 :(得分:2)

我用于PXLineNbr的模式是声明主表中的行号计数器字段和详细信息表中的行号字段。这很简单,也很有效。 LineNbr值由PXLineNbr属性从计数器自动计算。

LineCntr字段:

public class MasterDAC : IBqlTable
{
    #region LineCntr
    public abstract class LineCntr : IBqlField { }

    [PXDBInt]
    [PXDefault(0)]
    public virtual int? LineCntr { get; set; }
    #endregion
}

LineNbr字段:

public class DetailDAC : IBqlTable
{
    #region LineNbr
    public abstract class lineNbr : IBqlField { }

    [PXDBInt(IsKey = true)]
    [PXDefault]
    [PXLineNbr(typeof(MasterDAC.LineCntr))]
    public virtual int? LineNbr { get; set; }
    #endregion
}