Acumatica 创建一个通用弹出面板

Acumatica 创建一个通用弹出面板,acumatica,Acumatica,我用下面的代码添加了一个全局按钮 public override void Initialize() { if (!String.IsNullOrEmpty(Base.PrimaryView)) { Type primaryViewItemType = Base.Views[Base.PrimaryView].Cache.GetItemType(); PXActio

我用下面的代码添加了一个全局按钮

 public override void Initialize()
        {
            if (!String.IsNullOrEmpty(Base.PrimaryView))
            {

                Type primaryViewItemType = Base.Views[Base.PrimaryView].Cache.GetItemType();
                PXAction action = PXNamedAction.AddAction(Base, primaryViewItemType, "SubmitTicket", "Submit Ticket", TestClick);
            }
        }

        public IEnumerable TestClick(PXAdapter adapter)
        {
            throw new PXException("Button clicked from graph" + Base.GetType().Name);
        }
它在每个页面中呈现这样的按钮。

现在,我想在点击按钮时显示一个弹出面板。我知道我可以在屏幕部分创建一个弹出面板。但是,有没有什么方法可以让我在一个地方创建一个通用的弹出面板,并在点击按钮时显示在每个页面上


谢谢。

如果我理解正确,您希望在不同页面中共享相同的PXSmartPanel控件,而无需在每个屏幕中复制/粘贴它

在Acumatica框架中,这是通过自定义容器控件(如“PXUploadDialog”)实现的,该控件从其他控件(如“PXSmartPanel”)派生功能。这是在所有屏幕中附加文件时使用的控件

不幸的是,似乎没有关于如何实现这一点的文档。 我发现的最接近的问题是这个基本上没有答案的SO问题:

考虑到这一点,您可能希望在所有屏幕中复制/粘贴相同的智能面板。 为了便于复制,您可以使用“编辑ASPX”功能,请确保在备份之前备份项目

编辑ASPX以获取代码:

复制粘贴页面中的智能面板,然后单击“生成自定义脚本”以打包项目中的更改:

正如@HB\u ACUMATICA提到的,没有好的简单方法

为他的帖子提供另一种选择,您可以创建一个图表,并通过调用以下命令将其用作可重复使用的弹出窗口:

throw new PXPopupRedirectException(graph, string.Empty, true)
我遇到的一件事是弹出窗口上的尺寸问题

如果复制并粘贴PXSmartPanel,则可以通过实现本帮助中的可重用业务逻辑模式来创建可重用的业务逻辑,作为起点: