Acumatica Определите, какая кнопка была нажата (Сохранить или Завершить) - PullRequest
0 голосов
/ 26 апреля 2018

Скриншот активности

Как определить, какая кнопка была нажата в Acumatica на экране "Активность" (CR306010)?

Мне нужно определить на экране Acumatica Activity, какая кнопка была нажата: кнопка Сохранить, Сохранить и закрыть или Завершить.

Я попробовал идею использовать Acumatica PXContext.Session.SetString.

Я переопределил CRActivityMaint BLC и markAsCompleted () внутри, чтобы установить нажатие кнопки для кнопки «Завершить»:

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

но я не могу найти способ установить для того же ключа (нажатие кнопки) значение «Сохранить» (при нажатии кнопки сохранения) и значение «Сохранить и закрыть» при нажатии кнопки «Сохранить и закрыть».

Мне нужно найти способ как-то установить:

PXContext.Session.SetString («нажатие кнопки», «сохранение»); - для кнопки Сохранить; PXContext.Session.SetString («нажатие кнопки», «Сохранить и закрыть»); - для кнопки «Сохранить и закрыть»;

Возможно ли в 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 голосов
/ 26 апреля 2018

Я обнаружил, что Acumatica добавляет имя действия к HttpRequest Parameters в параметре __ CALLBACKPARAM .Таким образом, вы можете узнать, какое действие было вызвано, проверив его.Вам нужно будет добавить System.Web к вашему решению, чтобы иметь возможность работать с HttpContext.

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

Ниже приведен скриншот значения в случае нажатия кнопки сохранения на странице заказов клиента:

enter image description here

А вот случай Save and Close печати:

enter image description here

...