我想创建一个自动生成数字,类似于批次/序列类中段ID的自动增量,如此图片所示。
检查代码后,我注意到它使用了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;
}
}
尝试将其应用于我的代码后,自动生成的数字不会显示。如果我错过了别的东西,我就会徘徊。提前谢谢
答案 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
}