使表单字段选择值依赖于另一个字段值

时间:2019-04-05 17:32:53

标签: graph acumatica dac

我正在自定义项目中编辑AP301000的屏幕,“帐单和调整”。

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

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

我尝试在ReceiptNbr上使用PXSelector属性,但是因为PONumber在扩展类中,所以无法使用Current <>来访问此字段。

有什么想法吗?

1 个答案:

答案 0 :(得分: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 = True AutoRefresh = 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" />