默认销售 Order/Quote 菜单在发布定制后消失

Default Sales Order/Quote menu disappers after publishing customization

我们进入 acumatica 20 r2,当我们发布自定义包时,默认报告菜单打印 salesorder/quote 选项消失。

我们有自定义报告,这些报告是通过覆盖我的扩展程序中 salesorderentry 图表的初始化方法添加的。

public override void Initialize()
{
        base.Initialize();
        base.Base.report.AddMenuAction(embroideryreport);
        base.Base.report.AddMenuAction(embroiderysoreport);
        base.Base.report.AddMenuAction(screenprintreport);
        base.Base.report.AddMenuAction(screenprintsoreport);
}

我无法找出报告丢失的原因。我已将工作流程升级到最新版本,但问题仍然存在。

更新

我最初没有调用 base.Initialize() 并且由于默认报告没有出现,我认为这可能是由于没有调用基本方法。

我已经尝试了 bahaa-zantout 的建议,并且基本报告已经被标记到报告菜单中,当我在 Initialize 方法中评论添加报告的代码时,默认报告再次出现在报告菜单下。

工作流程好像有冲突,我没办法解决。

我尝试将这些报告添加到工作流操作部分并将它们标记为报告,但整个报告菜单都消失了

将您的初始化方法更改为....

public override void Initialize()
{
    base.Base.report.AddMenuAction(embroideryreport);
    base.Base.report.AddMenuAction(embroiderysoreport);
    base.Base.report.AddMenuAction(screenprintreport);
    base.Base.report.AddMenuAction(screenprintsoreport);
}

来自 Acumatica DEV 文档门户

您不需要在以前的扩展级别上显式调用 Initialize() 方法;这些方法会自动调用。调用 base.Initialize() 没有任何意义,因为基础变量指向基础 class,即 PXGraphExtension(不是基础图)。 PXGraphExtension class 将 Initialize() 定义为空方法。

您可以尝试以下操作来恢复工具栏菜单项。

  1. 导航到自定义项目中的“销售订单”屏幕

  2. 转到操作

  3. 找到丢失的打印选项(即 printSalesOrder)并将 Toolbar 文件夹放在原始文件夹中,在本例中为“Reports”。如果它不起作用,请尝试移至“操作”并查看它是否出现。

See example screenshot.

我不确定是不是因为这个声明,但是当我更改以下声明时它解决了问题

[PXButton(SpecialType = PXSpecialButtonType.ReportsFolder)]

[PXButton]

举报行动

public PXAction<SOOrder> embroideryreport;
    [PXUIField(DisplayName = "Embroidery Production Report", MapEnableRights = PXCacheRights.Select)]
    //[PXButton(SpecialType = PXSpecialButtonType.ReportsFolder)]
    [PXButton]