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

在Telerik Desktop Reporting中如何将JSON子节点注入子报表字符串参数

概述

基于以下JSON示例,我尝试用主报表和子报表创建Telerik报表,子报表使用主报表JSON数据的子集。

数据流程如下:

  1. 应用程序将基础JSON数据注入主报表的string类型参数jsonData;
  2. jsonData绑定为报表数据源;
  3. 应用JSON数据选择器;
  4. 将选中的JSON节点Employes注入子报表,子报表将其作为JSON数据源使用。

问题出在第4步,渲染主报表时出现「Invalid value of report parameter 'jsonData'」错误。

Telerik Report无法将选中的JSON节点数据转换为合适的字符串。

完整上下文

完整配置说明:

  • 两个报表的共同配置:
    • 均包含string类型的报表参数jsonData;
    • 均定义了JsonDataSource;
    • string类型参数jsonData与主JsonDataSource的绑定规则:
      • 属性路径:DataSource.Source
      • 表达式:= Parameters.jsonData.Value
  • 主报表配置:
    • 使用JSON数据源选择器**$.Companies**,得到公司列表,每个公司包含:
      • Name:公司名称字符串;
      • Employes:员工列表对象;
    • 完整JSON示例数据以字符串形式通过jsonData参数注入;
  • 子报表配置:
    • 同样包含string类型的报表参数jsonData;
    • 使用JSON数据源选择器**$**,应得到包含以下字段的列表:
      • Name:员工姓名字符串;
      • Wage:员工薪资数值;
  • 主报表中子报表的参数映射:
    • 参数名称:jsonData
    • 参数值:Fields.Employes
  • 使用工具:Telerik Report Designer v15.1.21.716 (Desktop)

数据选择器似乎将JSON的Employes节点数据转换为了System.Object[],我无法将其转回JSON字符串。

我已在文档、网络、ChatGPT等渠道广泛搜索解决方案,但目前未找到有效方法。

求助前提

感谢各位帮助,但有以下要求:

  • 仅接受纯JSON数据源的解决方案,不考虑Telerik Reporting支持的其他数据源;
  • 解决方案需同时支持设计时和运行时。
{
    "Companies": [
        {
            "Name": "Company1",
            "Employes": [
                {
                    "Name": "Joe",
                    "Wage": 1000
                },
                {
                    "Name": "Jack",
                    "Wage": 2000
                }
            ]
        },
        {
            "Name": "Company2",
            "Employes": [
                {
                    "Name": "Mary",
                    "Wage": 3000
                },
                {
                    "Name": "Mike",
                    "Wage": 4000
                }
            ]
        }
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:15:03