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