Acumatica编号顺序-铁路超高默认为新符号

Acumatica编号顺序-铁路超高默认为新符号,acumatica,Acumatica,我有一个自定义表,用于存储固定资产中的可用组件。使用AssetMaint屏幕上的网格访问列表 我已经设置了一个ID字段,以使用编号顺序填充。我不确定如何设置默认值,以使此字段默认填充为“”,然后在保存组件时按编号顺序进行更新 这是可行的,但也有一些问题。单击“添加”按钮时,ID字段为空,但再次单击“添加”时,它将填充“”符号。但是,如果在单击“保存”之前添加第三条记录,则第二条记录不会填充“”。第二条记录也不会保存,除非我手动在ID字段中输入“” 这是组件表DAC的一部分: [Serializ

我有一个自定义表,用于存储固定资产中的可用组件。使用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)) {; }
    }
}
[可序列化]
公共类FAServiceComponent:IBqlTable
{
#阿塞蒂德地区
公共抽象类assetID:IBqlField{}
[PXDBInt(IsKey=true)]
[PXDBDefault(typeof(FixedAsset.assetID),DefaultForUpdate=false)]
[PXParent(typeof(Select))]
[PXUIField(DisplayName=“资产ID”,可见=假,启用=假)]
公共虚拟int?AssetID{get;set;}
#端区
#区域服务组件
公共抽象类serviceComponentID:IBqlField{}
[PXDBString(30,IsKey=true,IsUnicode=true)]
[PXUIField(DisplayName=“组件ID”)]
[PXDefault(typeof(Search2))]
[编号]
公共虚拟字符串ServiceComponentID{get;set;}
#端区
#区域服务组件描述
公共抽象类描述:IBqlField{}
[PXDBString(255)]
[PXUIField(DisplayName=“Description”)]
[PXDefault(PersistingCheck=PXPersistingCheck.Nothing)]
公共虚拟字符串描述{get;set;}
#端区
公共类NumberingAttribute:AutoNumberAttribute
{
public NumberingAttribute():
基本类型(搜索类型),
typeof(AccessInfo.businessDate)){;}
}
}

查看T200课程,可从以下网址获得:。第4部分第8课演示如何使用AutoNumberAttribute

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

[PXDefault(typeof(Search2))]
您应该有一个设置屏幕,可以在其中选择要使用的编号顺序。例如,Sales Orders Preferences(销售订单首选项)屏幕(SO101000)具有装运编号序列字段,该字段绑定到
SOSetup.ShipmentNumberingID

在图形中,确保您具有设置数据视图,类似于
public PXSetup AutoNumSetup。PXSetup DAC应与您的设置屏幕相匹配,例如
PXSetup ShipmentSetup

在DAC中,编号字段应具有引用设置表的AutoNumberAttribute。e、 g

[自动编号(typeof(SOSetup.ShipmentNumberingID),typeof(soshipping.shipDate))]
在编号顺序屏幕(CS201010)中,确保未选中手动编号,并且为正在使用的编号顺序设置了新的编号符号。

页面上是否有InitNewRow=“true”?(进入PXGrid内部,类似这样…~是的,我已经启用了它~我现在启用了。我在写了这篇文章后就启用了它。现在创建记录时会填充,但如果不在两个记录之间进行保存,我仍然会遇到第二个记录上不会填充的问题。感谢[PXDefault]属性的提示。我已经在FixedAsset用户字段中定义了编号id。我把这个换成了你的方法,因为它简单一点。清除[PXDefault]位后,该字段填充速度更快。我仍然有问题,只有第一次人口。如果在不保存第一条记录的情况下添加第二条记录,则第二条记录不会填充。