如何确认单击的操作是我们向现有操作添加自定义逻辑时的预期操作

时间:2016-09-01 01:31:30

标签: acumatica

这是此case

的延续

我正在尝试将自定义逻辑添加到申请单屏幕中的现有操作按钮。我可以在获得批准之前(或可能在之后)看到批准按钮,我需要做一些自定义逻辑。

在分析了当前的图表后,我来到了下面的解决方案

public PXAction<RQRequisition> action;
         [PXUIField(DisplayName = "Actions")]
         [PXButton]
         protected virtual IEnumerable Action(PXAdapter adapter,
         [PXInt]
        [PXIntList(new int[] { 1, 2 }, new string[] { "Approve", "Reject" })]
        int? actionID,
        [PXBool]
        bool refresh,
        [PXString]
        string actionName
        )
         {
             if (actionID == 1)
             {
                 SIApprovalInfo.updateNextApprover(this.Base);
             }
             return Base.action.Press(adapter);
         }

当我尝试访问操作名称时,它给我null,所以我只检查了actionID为1,因为值为1.我注意到在自动化屏幕中,用户可以重新排序操作。所以我的问题是:如果用户重新排序动作,actionID仍然保持为1?如果没有,确定我们期待的行动的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

经过几次检查后,我发现actionID对于批准或拒绝为1。 但我可以使用adapter.Menu来检查名称。

 if (adapter.Menu == "Approve")
 {
    SIApprovalInfo.updateNextApprover(this.Base);        
 }