You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

2021R1版本下如何根据入库单状态启用/禁用自定义报表菜单项

Acumatica 2021R1 入库单报表菜单项状态控制实现方案

2021R1版本废弃了原Base.report系列的报表状态控制API,所有报表菜单项的启用/禁用逻辑统一通过图形扩展事件或工作流扩展实现,具体操作步骤如下:

  • 第一步:获取自定义报表Action的唯一ID
    在定制项目的对应屏幕Actions列表中,找到你通过可视化编辑器新增的报表菜单项对应的Action ID,示例中假设ID为CustomReceiptReport。
  • 第二步:通过图形扩展的RowSelected事件控制状态
    给INReceiptEntry图形添加扩展类,重写入库单的行选中事件,代码示例:
    public class INReceiptEntryExt : PXGraphExtension<INReceiptEntry>
    {
        protected virtual void _(Events.RowSelected<INRegister> e)
        {
            if (e.Row is not INRegister receipt) return;
            // 按你的业务规则修改状态判断条件,示例为仅已过账的入库单启用该报表
            PXUIFieldAttribute.SetEnabled<CustomReceiptReport>(e.Cache, receipt, 
                receipt.Status == INStatus.Released);
        }
    }
    
  • 第三步:若规则不生效,补充工作流配置
    2021R1开始标准单据的Action权限受工作流管控,你需要扩展对应屏幕的工作流,将自定义报表Action添加到允许显示的单据状态中,示例代码:
    public class INReceiptEntry_WorkflowExt : PXWorkflowExtension<INReceiptEntry.Workflow, INReceiptEntry, INRegister>
    {
        public override void Configure(PXScreenConfiguration config)
        {
            var context = config.GetScreenConfigurationContext<INReceiptEntry, INRegister>();
            context.UpdateScreenConfigurationFor(screen =>
                screen.WithActions(actions => actions.Add<CustomReceiptReport>())
                .UpdateDefaultFlow(flow => flow
                    .WithFlowStates(states =>
                    {
                        // 按需在所有需要展示该报表的状态下添加Action
                        states.Update<INStatus.released>(state => 
                            state.WithAllowedActions(actions => actions.Add<CustomReceiptReport>())
                        );
                    })
                )
            );
        }
    }
    

注意事项

  • 新增报表Action时请确认AutoRepaint属性设为True,确保单据状态切换时菜单项状态会同步刷新
  • 可视化编辑器自动生成的报表Action默认会继承父菜单的状态配置,你可在定制项目的Action列表中单独修改其属性

内容的提问来源于stack exchange,提问作者GeorgeM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:27:02