在Acumatica中,您可以通过创建Setup Extension来自定义扩展字段。然而,默认情况下,这些扩展字段可以为空。如果您想要确保这些字段不能为空,您可以使用以下代码示例。
首先,在Setup Extension DAC类中定义字段,并使用PXDefault特性指定默认值:
public class UsrMySetupExt : PXCacheExtension
{
#region UsrMyField
[PXDBString(15)]
[PXUIField(DisplayName = "My Field")]
[PXDefault("")]
public string UsrMyField { get; set; }
public abstract class usrMyField : PX.Data.BQL.BqlString.Field { }
#endregion
}
接下来,在扩展DAC类中使用PXDefault(typeof(Search<>))特性来指定查询,以确保字段不为空。例如,如果您想要确保UsrMyField字段不为空,您可以使用以下代码:
public class MyOriginalDAC_Extension : PXCacheExtension
{
#region UsrMyField
[PXDefault(typeof(Search<
UsrMySetupExt.usrMyField,
Where,
Equal>>>),
PersistingCheck = PXPersistingCheck.NullOrBlank)]
[PXString(15)]
[PXUIField(DisplayName = "My Field")]
public virtual string UsrMyField { get; set; }
public abstract class usrMyField : PX.Data.BQL.BqlString.Field { }
#endregion
}
在上面的代码中,我们使用了默认查询来查找与当前商业用户帐户ID匹配的USRMYFIuLD值。PersistingCheck属性设置为NullOrBlank,以确保在保存之前必须设置该字段。
当您现在打开Setup Extension页面并尝试保存值为空的扩展字段时,会显示以下错误消息:'My Field必须包含一个值”。