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

如何为供应商通用查询批量操作下拉菜单添加自定义操作?

通用查询批量操作添加自定义操作的解决方案

代码报错原因及修复

你写的代码报错是因为Initialize方法执行时,Approve动作还未完成初始化,直接访问Approve.IsMass会触发空引用异常。调整代码结构,把动作声明放在Initialize之前,或者直接通过属性标记批量可执行:

修复后的代码示例

using PX.Data;
using PX.Objects.AP;

namespace PX.Objects.AP
{
    public class VendorMaint_Extension : PXGraphExtension<VendorMaint>
    {
        // 先声明动作
        public PXAction<Vendor> Approve;

        [PXButton(MassProcessable = true)] // 直接标记为批量可执行动作
        [PXUIField(DisplayName = "Approve")]
        public void Approve()
        {
            // 批量处理逻辑:遍历选中的供应商记录
            foreach (Vendor vendor in Base.VendorRecords.Select())
            {
                // 在这里添加你的审批业务逻辑,比如更新供应商状态
                // vendor.Status = VendorStatus.Approved;
                // Base.VendorRecords.Update(vendor);
            }
            Base.Actions.PressSave();
            throw new PXException("批量审批完成!");
        }

        public override void Initialize()
        {
            // 按需设置动作可见性
            Approve.SetVisible(true);
        }
    }
}

让操作显示在通用查询批量菜单的额外步骤

  • 确认通用查询主DAC匹配:目标通用查询必须以Vendor作为主数据访问类(DAC),否则自定义动作无法被识别。
  • 启用通用查询批量操作:打开通用查询的「结果网格」标签页,勾选「启用批量操作」选项。
  • 配置动作可见性:若动作未出现在批量菜单,检查通用查询的「操作」标签页是否添加了该自定义动作,或确保代码中SetVisible(true)已配置。
  • 工作流动作批量支持:通过工作流创建的动作默认不支持批量,需在工作流设计器中把动作的「批量处理」属性设为True,同时确保动作触发条件适配批量选中的记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:16:00