Кнопка печати на CR306000 для печати данных случая

У меня есть настраиваемая кнопка на CR306000, чтобы попытаться распечатать текущую информацию о загруженном случае, вызвав один настроенный отчет. Текущий URL-адрес навигации установлен на:

~/Frames/ReportLauncher.aspx?ID=Inquirycase.rpx&CASEID=####

Мне нужно будет иметь пользовательское программирование, чтобы назначить идентификатор текущего случая для замены «####», но я не знаю, где и как ссылаться на эту пользовательскую кнопку и изменять ее свойство. Пожалуйста помоги. Спасибо.


person Woody    schedule 22.01.2016    source источник


Ответы (1)


Вы можете добавить в отчет параметр отчета под названием «CaseID» и вызвать его, используя следующий код, используя расширение AEF, например:

public class CRCaseMaintExtension : PXGraphExtension<CRCaseMaint>
{
    public override void Initialize()
    {
        base.Initialize();
        //if adding to an existing menu button do that here...
        //  Example:
        //Base.Inquiry.AddMenuAction(this.CustomReportButton);
    }

    public PXAction<CRCase> CustomReportButton;
    [PXButton]
    [PXUIField(DisplayName = "Custom Report", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
    public virtual IEnumerable customReportButton(PXAdapter adapter)
    {
        if (Base.Case.Current != null)
        {
            Dictionary<string, string> parameters = new Dictionary<string, string>();
            parameters["CaseID"] = Base.Case.Current.CaseID.ToString();

            //enter in your report id/number here
            string reportNumber = "Inquirycase"; 

            //opens the report using the defined parameters
            throw new PXReportRequiredException(parameters, reportNumber, "Custom Report");  
        }

        return adapter.Get();
    }
}

Я не проверял вышеизложенное, но это должно помочь вам в этом.

person Brendan    schedule 22.01.2016
comment
Спасибо за ответ. Я понимаю код, который вы предоставили, но просто не уверен, как вообще генерировать событие нажатия кнопки из интерфейса проекта настройки, предоставленного Acumatica. - person Woody; 25.01.2016
comment
Я добавил код расширения графа, чтобы включить пример того, как вы можете вызывать код с кнопки. Обратите внимание: если кнопка меню отчетов уже есть, было бы лучше добавить кнопку отчета к этой кнопке меню. Я не знаю, содержит ли он этот график/страницу, но приведенный выше пример включает пример AddMenuAction, если это необходимо. Если вы сделаете это, вам может потребоваться установить для PXUIField на вашей кнопке значение visible = false - person Brendan; 25.01.2016
comment
Большое спасибо, Брендан. - person Woody; 28.01.2016