客户所需的字段扩展到供应商等

时间:2017-02-01 16:02:26

标签: acumatica

我在Manage Customers页面上创建了一个名为Certification Type的自定义字段,并通过在数据访问类中将其标记为[PXDefault]来根据需要进行设置。问题是所有使用BAAccount类,供应商,员工和联系人的屏幕都需要它。有没有办法让客户需要这个字段,而不是供应商,雇员或联系人?

3 个答案:

答案 0 :(得分:3)

您可以通过扩展需要禁用PXDefault属性的每个屏幕的图表来按屏幕覆盖扩展字段。

public class VendorMaintExt : PXGraphExtension<VendorMaint>
{
    [PXMergeAttributes(Method = MergeMethod.Merge)]
    [PXDefault(PersistingCheck = PXPersistingCheck.Nothing)]    
    protected virtual void BAccount_CertificationType_CacheAttached(PXCache sender)
    {
    }
}

答案 1 :(得分:2)

我最初可以通过两种方式来做你想做的事。

1)将自定义字段从BAcct DAC移动到Customer DAC。 “Customers”包含来自BAcct的字段以及辅助“Customers”表。这样您就可以保留[PXDefault]属性

2)从DAC中删除[PXDefault]属性,并使用缓存附加事件将其添加到CustomerMaint的扩展类中:

像这样的东西

[PXDefault]
{rest of your field attributes]
protected virtual void BAcct_{yourfield}_CacheAttached(PXCache sender)
{
}

这样做会使客户维护屏幕上的字段成为必需,但在其他任何地方都是可选的。确保您的字段允许数据库端的空值。

注意:在5.0+中,您不需要重新定义所有值,而是可以使用以下属性

[PXMergeAttributes(Method = MergeMethod.Merge)]

答案 2 :(得分:0)

除了其他答案:

必填字段在表单上用星号(*)标记,以提示读者必须为其指定值。 要使用星号标记必填字段的控件,应将PXUIField属性的Required属性设置为true。

[PXCustomizeBaseAttribute(typeof(PXUIFieldAttribute),&#34;必需&#34;,true)]