【发布时间】:2019-11-01 04:14:17
【问题描述】:
我正在尝试根据另一个字段自动填充一个字段。我有一个合同选择器字段,我为主要经理创建了一个经理 1 字段,该字段被捕获在合同屏幕中。
打开经理 1 的选择器字段时,我能够得到正确的结果。它填充了合同代码和与之关联的经理;但是,我希望它在我选择合同后自动填写该字段。我试过使用 PXDefault,但没有任何运气。下面的代码是我到目前为止的工作:
[PXInt]
[PXUIField(DisplayName="Manager 1")]
[PXSelector(typeof(Search2<PX.Objects.CR.BAccount.bAccountID,
InnerJoin<JPMContract,
On<JPMContract.contractMgrBAccountID,
Equal<PX.Objects.CR.BAccount.bAccountID>>>>),
typeof(JPMContract.contractCode),
typeof(PX.Objects.CR.BAccount.acctCD),
typeof(PX.Objects.CR.BAccount.acctName),
SubstituteKey = typeof(PX.Objects.CR.BAccount.acctCD),
DescriptionField = typeof(PX.Objects.CR.BAccount.acctName))]
再次,当我打开选择器字段并选择相应的结果时,我得到了我想要的结果,但我希望它在选择合同后为我执行此操作。有什么建议吗?
更新: 我让它只在选择器中返回我需要的一个结果,但它仍然没有在字段中填充那个结果。
[PXInt]
[PXSelector(typeof(Search2<PX.Objects.CR.BAccount.bAccountID,
InnerJoin<JPMContract,
On<JPMContract.contractMgrBAccountID,
Equal<PX.Objects.CR.BAccount.bAccountID>>>,
Where<JPMContract.jPMContractID, Equal<Current<JPMSubContract.jPMContractID>>>>),
typeof(JPMContract.contractCode),
typeof(PX.Objects.CR.BAccount.acctCD),
typeof(PX.Objects.CR.BAccount.acctName),
SubstituteKey = typeof(PX.Objects.CR.BAccount.acctCD),
DescriptionField = typeof(PX.Objects.CR.BAccount.acctName))]
[PXDefault(typeof(Search2<PX.Objects.CR.BAccount.bAccountID,
InnerJoin<JPMContract,
On<JPMContract.contractMgrBAccountID,
Equal<PX.Objects.CR.BAccount.bAccountID>>>,
Where<JPMContract.jPMContractID, Equal<Current<JPMSubContract.jPMContractID>>>>))]
[PXUIField(DisplayName="Manager 1")]
【问题讨论】:
-
您应该使用
PXFormulaAttribute或为此字段编写FieldSelecting事件,该事件将获得相应的值并设置为e.NewValue。
标签: field default acumatica populate