Acumatica 自定义任务和活动弹出窗口

Acumatica Customize Task & Activities pop up

是否可以自定义当您单击 Acumatica 中大多数屏幕右上角的“活动”按钮时显示的“任务和活动”弹出屏幕?

我们有一个将任务所有者字段添加到列表视图的请求。

我已经尝试搜索源代码,但我一直无法弄清楚如何修改弹出窗口。

我在代码中找到了这个,但不确定链接到哪个页面(如果有)。

        [PXUIField(Visible = false, MapEnableRights = PXCacheRights.Select)]
        [PXButton(OnClosingPopup = PXSpecialButtonType.Refresh)]
        public virtual IEnumerable ViewAllActivities(PXAdapter adapter)
        {
            var gr = new ActivitiesMaint();
            gr.Filter.Current.NoteID = ((PXCache<TActivity>)_Graph.Caches[typeof(TActivity)]).InitNewRow().RefNoteID;
            throw new PXPopupRedirectException(gr, string.Empty, true);
        }

创建网格和添加列定义的代码位于: PX.Web.UI.PXActivityBox class(请参阅下面的完整方法)。

不幸的是,这无法更改,它超出了自定义范围,因为:

  1. 网格是在 C# 源代码中定义的,而不是在 ASPX 文件中声明的。
  2. 网格是在无法扩展的编译代码中定义的,它不在图表中。

我能想到的唯一解决方法是创建您自己的操作来打开 ActivitiesMaint 图 (EP405000)。这与 ActivityBox 不同,操作必须放置在主(最顶部)工具栏之外。

private void CreateActivityGrid(WebControl div)
{
    var grid = new PXGrid()
    {
        ID = _CONTENT_ID,
        Width = Unit.Percentage(100),
        AllowSearch = true,
        SkinID = "Inquire",
        AllowPaging = true,
        MatrixMode = true
    };
    grid.Levels.Add(new PXGridLevel() { DataMember = "Activity" });
    grid.DataMember = "Activity";
    grid.ActionBar.ActionsText = ActionsTextVisible.True;
    grid.ActionBar.PagerVisible = ActionVisible.False;
    grid.ActionBar.DefaultAction = "cmdViewActivity";
    grid.ActionBar.Position = ActionsPosition.Top;
    grid.CallbackCommands.Refresh.CommitChanges = true;
    grid.CallbackCommands.Refresh.PostData = PostDataMode.Page;
    grid.Mode.AllowAddNew = false;
    grid.Mode.AllowUpdate = false;
    grid.Mode.AllowDelete = false;
    grid.Mode.AllowFormEdit = false;
    grid.Mode.AllowUpload = false;

    grid.AutoSize.Enabled = true;

    grid.Columns.Add(new PXGridColumn() { DataField = "IsCompleteIcon", Width = Unit.Pixel(21), AllowShowHide = AllowShowHide.False, ForceExport = true });
    grid.Columns.Add(new PXGridColumn() { DataField = "PriorityIcon", Width = Unit.Pixel(21), AllowShowHide = AllowShowHide.False, AllowResize = false, ForceExport = true });
    grid.Columns.Add(new PXGridColumn() { DataField = "ReminderIcon", Width = Unit.Pixel(21), AllowShowHide = AllowShowHide.False, AllowResize = false, ForceExport = true });
    grid.Columns.Add(new PXGridColumn() { DataField = "ClassIcon", Width = Unit.Pixel(31), AllowShowHide = AllowShowHide.False, ForceExport = true });
    grid.Columns.Add(new PXGridColumn() { DataField = "ClassInfo", });
    grid.Columns.Add(new PXGridColumn() { DataField = "Subject", LinkCommand = "ViewActivity", Width = Unit.Pixel(297), });
    grid.Columns.Add(new PXGridColumn() { DataField = "UIStatus" });
    grid.Columns.Add(new PXGridColumn() { DataField = "MPStatus" });
    grid.Columns.Add(new PXGridColumn() { DataField = "Released", Width = Unit.Pixel(80) });
    grid.Columns.Add(new PXGridColumn() { DataField = "StartDate", Width = Unit.Pixel(120), DisplayFormat = "g" });
    grid.Columns.Add(new PXGridColumn() { DataField = "CategoryID" });
    div.Controls.Add(grid);
    grid.ApplyStyleSheetSkin(this.Page);
    _content = grid;
}