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

Acumatica:Kit Assembly屏幕报表按钮传参及MoveNext错误问题

解决Acumatica Kit Assembly屏幕自定义字段传入报表参数的问题

看起来你已经搞定了自定义字段UsrInventoryCD的填充逻辑,现在就差把这个值通过按钮传递到报表参数这一步了,我给你梳理下具体实现步骤和代码示例:

1. 确认报表参数配置

首先要确保你的目标报表已经定义了对应的参数(比如命名为InventoryCD,类型设置为字符串,和UsrInventoryCD的类型匹配),参数名称要和后续代码里的键值完全一致,大小写是敏感的哦。

2. 完善按钮事件的代码逻辑

假设你的按钮事件方法是在Kit Assembly的图形类(比如KitAssemblyEntry)里编写的,你可以这样补全代码:

protected void ReportButton_Click(PXAdapter adapter)
{
    // 获取当前选中的Kit Assembly记录
    KitAssembly currentKit = Base.Document.Current;
    if (currentKit == null) return;

    // 获取自定义字段UsrInventoryCD的值(这里的KitAssemblyExt是你的DAC扩展类)
    KitAssemblyExt kitExt = currentKit.GetExtension<KitAssemblyExt>();
    string targetInventoryCD = kitExt.UsrInventoryCD;

    // 构建报表参数字典
    Dictionary<string, string> reportParams = new Dictionary<string, string>();
    // 这里的键要和报表参数的名称完全匹配
    reportParams["InventoryCD"] = targetInventoryCD;

    // 触发报表跳转,替换"YourReportID"为你实际的报表ID(比如IN601000这类)
    throw new PXReportRequiredException(reportParams, "YourReportID", PXBaseRedirectException.WindowMode.NewWindow);
}

关键注意事项

  • 确保KitAssemblyExt是你正确创建的DAC扩展类,必须继承自PXCacheExtension<KitAssembly>,并且包含UsrInventoryCD字段的定义。
  • 如果你的按钮是通过ASPX页面配置的,要确保按钮的CommandName属性和方法名对应;如果是通过代码动态添加的按钮,要把事件委托绑定到这个方法上。
  • 如果UsrInventoryCD可能为空,建议在代码里加个判断,避免传递空参数导致报表报错。

如果你的原有代码片段是这个方法的一部分,直接把上述获取字段和传递参数的逻辑嵌进去就可以了,核心就是通过DAC扩展拿到自定义字段值,再用PXReportRequiredException触发报表并传递参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:01:49