【问题标题】:Make a form field selection values dependent on another field value使表单字段选择值依赖于另一个字段值
【发布时间】:2019-08-27 16:03:35
【问题描述】:

我正在自定义项目中编辑 AP301000 屏幕、账单和调整。

我在表单中添加了两个新字段,它们都在 APRegisterExt 类中。 1. PONbr 2.收据Nbr

当用户选择 PO 编号时,我希望 ReceiptNbr 选择值仅限于具有相同 PO 编号的收据记录。

我尝试在 ReceiptNbr 上使用 PXSelector 属性,但由于 PONumber 在扩展类中,我无法使用 Current 访问该字段。

有什么想法吗?

【问题讨论】:

    标签: graph acumatica dac


    【解决方案1】:

    在您的第二个 CustomField 的 Selector 属性定义中,使用 Current 语句进行过滤,见下文:

    #region UsrCustomField1
    [PXDBInt]
    [PXUIField(DisplayName="CustomField1")]
    [PXSelector(typeof(Search<DAC.Field>),
                         typeof(DAC.Field),
                         typeof(DAC.Field),
                         SubstituteKey= typeof(DAC.Field))]
    public virtual int? UsrCustomField1 { get; set; }
    public abstract class usrCustomField1 : IBqlField { }
    #endregion
    
    
    
    #region UsrCustomField2Dependent
    [PXDBInt]
    [PXUIField(DisplayName="CustomField2Dependent")]
    [PXSelector(typeof(Search<DAC.Field, Where<DAC.Field, Equal<Current<UsrCustomField1>>>>),
                         typeof(DAC.Field),
                         typeof(DAC.Field),
                         SubstituteKey= typeof(DAC.Field))] 
    public virtual int? UsrCustomField2Dependent { get; set; }
    public abstract class usrCustomField2Dependent : IBqlField { }
    #endregion
    

    然后确保在您的 ASPX 文件中添加了 CommitChanges=TrueAutoRefresh=true 属性,如下所示:

    <px:PXSelector runat="server" ID="CstPXSelector2" DataField="UsrCustomField1" CommitChanges="True" AutoRefresh="True" />
    <px:PXSelector runat="server" ID="CstPXSelector1" DataField="UsrCustomField2Dependent" CommitChanges="True" AutoRefresh="True" />
    

    【讨论】:

    • 如果需要,您还可以在您的 usrCustomField2Dependent 上添加验证,以防用户填写字段 1,然后填写字段 2,但更改字段 1 - 我假设您当时希望字段 2 无效.例如:[PXFormula(typeof(Validate))]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 2015-09-20
    • 2011-07-22
    • 1970-01-01
    相关资源
    最近更新 更多