【问题标题】:Adding Action to Page not Extending Original PXObject向页面添加操作不扩展原始 PXObject
【发布时间】:2017-09-29 22:40:34
【问题描述】:

我基于 Acumatica 的默认 DAC 开发了一个页面,但它不是图形扩展。页面本身以 BAccount 为首。我正在尝试向页面添加一个动作,但我似乎无法让它出现。这是我的操作代码:

public class CustomerSpecification : PXGraph<CustomerSpecification>
{
    public PXFirst<BAccount> First;
    public PXPrevious<BAccount> Previous;
    public PXNext<BAccount> Next;
    public PXLast<BAccount> Last;
    public PXSave<BAccount> Save;

    public PXSelect<BAccount> Document;
...
    PXAction<BAccount> assignDefaultSpec;

    [PXUIField(DisplayName ="Set Default Spec")]
    [PXButton]
    protected virtual void AssignDefaultSpec()
    {
        CurrentDocument.Ask("Test", MessageButtons.OK);
    }
}

我包含了课程的结构,以便让您了解我在做什么。我需要显示该操作,以便我可以执行一些代码来设置我需要在用户保存和更新数据库之前设置的数据。

关于如何让操作出现在此页面上的任何想法?

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    您可以使用图表的构造函数并添加新操作。

    public CustomerSpecification()
    {
        this.Actions.Add("AssignDefaultSpec", assignDefaultSpec);
    }
    

    还要确保您的 PXAction 是public

    public PXAction<BAccount> assignDefaultSpec;
    

    请注意,您在 Action 上调用 CurrentDocument,但未在 Graph 上声明此数据视图。

    【讨论】:

    • 谢谢,我会试试的。 CurrentDocument 已声明,我只是没有将其包含在代码中。它作为省略号的一部分被隐藏。
    • 更新:我试过你写的,但好像 this.Actions.Add() 需要两个对象:对象键,对象值。我将哪一个用于 assignDefaultSpec 对象,我将把什么放入另一个对象?谢谢!
    • 我已经更新了上面的答案,因为我们正在将 PXAction 添加到 PXActionCollection,您可以在集合上传递该操作的键/名称。看上面。还要确保您的 PXAction 是公开的(例如:public PXAction assignDefaultSpec;)
    • 谢谢!我进行了更改,并且成功了。感谢您发现我没有设置操作的访问级别!
    猜你喜欢
    • 2014-05-14
    • 1970-01-01
    • 2011-03-03
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多