Acumatica确定单击了哪个按钮(保存或完成)

时间:2018-04-26 08:31:03

标签: acumatica

Activity screenshot

如何在“活动”屏幕(CR306010)上确定在Acumatica中单击了哪个按钮?

我需要在Acumatica活动屏幕上确定单击了哪个按钮:保存按钮,保存&关闭或完成。

我尝试过使用Acumatica PXContext.Session.SetString。

我在内部覆盖了CRActivityMaint BLC和markAsCompleted(),以便为完成按钮设置buttonclicked值:

public delegate void markAsCompletedDelegate();
[PXOverride]
public void markAsCompleted(markAsCompletedDelegate baseMethod)
{
   baseMethod();
   PXContext.Session.SetString("buttonclicked", "Complete");
}

但是我找不到设置相同键(按钮点击)值的方法" Save" (单击保存按钮时)和值"保存&关闭"当Save&单击关闭按钮。

我需要找到某种方式来设置:

PXContext.Session.SetString(" buttonclicked"," Save"); - 用于保存按钮; PXContext.Session.SetString(" buttonclicked"," Save& Close"); - 用于保存&关闭按钮;

在Acumatica中是否可以将其置于一些过分的方法中,如:

**Pseudocode:**

public delegate void needToFindSaveDelegate();
[PXOverride]
public void needToFindSave()
{
   baseMethod();
   PXContext.Session.SetString("buttonclicked", "Save");
}

and:

**Pseudocode:**

public delegate void needToFindSave&CloseDelegate();
[PXOverride]
public void needToFindSave&Close()
{
   baseMethod();
   PXContext.Session.SetString("buttonclicked", "Save&Close");
}

如果有任何帮助,我将非常感谢它如何实现。

提前致谢。

度过愉快的一天。

1 个答案:

答案 0 :(得分:1)

我发现Acumatica会将操作名称添加到 __ CALLBACKPARAM 参数中的HttpRequest Parameters。因此,您可以通过检查来调用已调用的操作。您需要在解决方案中添加System.Web才能使用HttpContext。

string actionName =HttpContext.Current.Request.Params["__CALLBACKPARAM"].Split('|')[0]

以下是在销售订单页面上按下保存按钮时值的屏幕截图:

enter image description here

以下是Save and Close媒体的案例:

enter image description here