我有一个自定义表,用于在固定资产中存储可维修的组件。使用AssetMaint屏幕上的网格可以访问该列表。
我已经设置了一个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)) {; }
}
}
答案 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))]