首页 文章

在机会上保存主记录的不同选项卡上自动验证字段

提问于
浏览
0

我想在Opportunity(屏幕ID - CR304000)的“联系人信息”选项卡上设置几个字段,以便用户在保存主要商机记录之前必须输入该字段 . 我看到它主要来自CRContact和CRAddress . 我为两者创建了一个DAC扩展,并包含了要在其中验证的所有字段 . 下面是相同的代码 .

public class CROpportunityExtension : PXCacheExtension<PX.Objects.CR.CROpportunity>
{
    [PXDBGuid(false)]
    [PX.Objects.CR.MassProcess.PXMassUpdatableField]
    [PXOwnerSelector(typeof(PX.Objects.CR.CROpportunity.workgroupID))]
    [PXUIField(DisplayName = "Owner", Required = true)]
    [PXDefault(PersistingCheck = PXPersistingCheck.NullOrBlank)]
    public virtual Guid? OwnerID { get; set; }

    [CROpportunityAddress(typeof(Select<Address, Where<True, Equal<False>>>))]
    [PXDBInt]
    [PXDefault(PersistingCheck = PXPersistingCheck.NullOrBlank)]
    public virtual int? OpportunityAddressID { get; set; }

    [CROpportunityContact(typeof(Select<Contact, Where<True, Equal<False>>>))]
    [PXDBInt]
    [PXDefault(PersistingCheck = PXPersistingCheck.NullOrBlank)]
    public virtual int? OpportunityContactID { get; set; }
}

public class CRContactExtension : PXCacheExtension<PX.Objects.CR.CRContact>
{
    [PXDBString(50, IsUnicode = true)]
    [PXUIField(DisplayName = "First Name", Required = true)]
    [PXDefault(PersistingCheck = PXPersistingCheck.NullOrBlank)]
    public virtual string FirstName { get; set; }

    [PXDBString(100, IsUnicode = true)]
    [PXUIField(DisplayName = "Last Name", Required = true)]
    [PXDefault(PersistingCheck = PXPersistingCheck.NullOrBlank)]
    public virtual string LastName { get; set; }

    [PXDBEmail]
    [PXUIField(DisplayName = "Email", Visibility = PXUIVisibility.SelectorVisible, Required = true)]
    [PXDefault(PersistingCheck = PXPersistingCheck.NullOrBlank)]
    public virtual string Email { get; set; }

    [PhoneValidation]
    [PXDBString(50)]
    [PXUIField(DisplayName = "Phone 1", Visibility = PXUIVisibility.SelectorVisible, Required = true)]
    [PXDefault(PersistingCheck = PXPersistingCheck.NullOrBlank)]
    public virtual string Phone1 { get; set; }
}

public class CRAddressExtension : PXCacheExtension<PX.Objects.CR.CRAddress>
{
    [PXDBString(50, IsUnicode = true)]
    [PXUIField(DisplayName = "City", Visibility = PXUIVisibility.SelectorVisible, Required = true)]
    [PXDefault(PersistingCheck = PXPersistingCheck.NullOrBlank)]
    public virtual string City { get; set; }

    [PXDBString(20)]
    [PXUIField(DisplayName = "Postal Code", Required = true)]
    [PXZipValidation(typeof(Country.zipCodeRegexp), typeof(Country.zipCodeMask), typeof(PX.Objects.CR.CRAddress.countryID))]
    [PXDefault(PersistingCheck = PXPersistingCheck.NullOrBlank)]
    public virtual string PostalCode { get; set; }
}

但是,它没有直接验证主记录保存 . 相反,如果我尝试在“联系人信息”选项卡中保存任何值,则它将在主记录保存时进行验证 . 以下是步骤 .

  • 它不验证何时a . 创造新机会b . 填写所有必填字段上部和详细信息选项卡c . 保存机会记录 .

  • 它验证何时a . 创造新机会b . 填写上部和详细信息选项卡中的所有必填字段c . 填写“联系人信息”选项卡上的必填字段以外的字段 . 尽量保存机会记录 . 它将验证“联系人信息”选项卡上的必填字段 .

我需要它应该在第一种情况下验证 . 请建议 .

1 回答

  • 0

    它无法验证现有记录,但如果未创建,则仍会验证新记录,并且未输入必填字段 . 理想的解决方案是创建GI并更新现有记录的所有必填字段,这样就不会产生任何问题 . 对于新记录,它无论如何都要正确验证 .

相关问题