Acumatica编号顺序-不能默认为新符号

时间:2018-08-01 00:05:35

标签: acumatica

我有一个自定义表,用于在固定资产中存储可维修的组件。使用AssetMaint屏幕上的网格可以访问该列表。

我已经设置了一个ID字段,以使用编号顺序进行填充。我不确定如何设置默认值,因此默认情况下此字段填充为“ ”,然后在保存组件时按编号顺序对其进行更新。

这是可行的,但是有一些问题。当我单击添加按钮时,ID字段为空白,但是当我再次单击添加时,它会填充“ ”符号。但是,如果我在单击保存之前添加了第三条记录,则第二条记录不会填充“ ”。除非我在ID字段中手动输入“ ”,否则第二条记录也不会保存。

这是组件表DAC的一部分:

 [Serializable]
public class FAServiceComponent : IBqlTable
{
    #region AssetID
    public abstract class assetID : IBqlField { }
    [PXDBInt(IsKey = true)]
    [PXDBDefault(typeof(FixedAsset.assetID), DefaultForUpdate = false)]
    [PXParent(typeof(Select<FixedAsset, Where<FixedAsset.assetID, Equal<Current<FAServiceComponent.assetID>>>>))]
    [PXUIField(DisplayName = "Asset ID", Visible = false, Enabled = false)]
    public virtual int? AssetID { get; set; }
    #endregion

    #region serviceComponentID
    public abstract class serviceComponentID : IBqlField { }
    [PXDBString(30, IsKey = true, IsUnicode = true)]
    [PXUIField(DisplayName = "Component ID")]
    [PXDefault(typeof(Search2<Numbering.newSymbol, 
        InnerJoin<FixedAsset, On<FixedAssetExt.usrServiceComponentNumberingSeq, Equal<Numbering.numberingID>, And<FixedAsset.assetID, Equal<Current<FixedAsset.classID>>>>>>))]
    [Numbering]
    public virtual string ServiceComponentID { get; set; }
    #endregion

    #region serviceComponentDescription
    public abstract class description : IBqlField { }
    [PXDBString(255)]
    [PXUIField(DisplayName = "Description")]
    [PXDefault(PersistingCheck = PXPersistingCheck.Nothing)]
    public virtual string Description { get; set; }
    #endregion

    public class NumberingAttribute : AutoNumberAttribute
    {
        public NumberingAttribute(): 
            base(typeof(Search<FixedAssetExt.usrServiceComponentNumberingSeq, Where<FixedAsset.assetID, Equal<Current<FixedAsset.classID>>>>), 
                 typeof(AccessInfo.businessDate)) {; }
    }
}

1 个答案:

答案 0 :(得分:0)

Acumatica Open University上查看T200课程。第4部分第8课向您展示如何使用AutoNumberAttribute。

我首先建议删除以下代码,因为不需要使符号起作用。

[PXDefault(typeof(Search2<Numbering.newSymbol, 
        InnerJoin<FixedAsset, On<FixedAssetExt.usrServiceComponentNumberingSeq, Equal<Numbering.numberingID>, And<FixedAsset.assetID, Equal<Current<FixedAsset.classID>>>>>>))]

您应该有一个设置屏幕,您可以在其中选择要使用的编号顺序。例如,“销售订单首选项”屏幕(SO101000)具有绑定到SOSetup.ShipmentNumberingID的“发货编号顺序”字段。

在图形中,确保您具有设置数据视图,例如public PXSetup<Setup> AutoNumSetup;。 PXSetup DAC应该与您的设置屏幕匹配,例如PXSetup<SOSetup> ShipmentSetup

在DAC中,带编号的字段应具有引用设置表的AutoNumberAttribute。例如

[AutoNumber(typeof(SOSetup.ShipmentNumberingID), typeof(SOShipment.shipDate))]

在“编号顺序”屏幕(CS201010)中,确保未选中“手动编号” ,并且已为使用的编号顺序设置了“新编号符号” enter image description here