简介
基于下面的json示例,我尝试使用主报告和子报告定义一个Telerik报告,其中se second被馈送主报告json数据的子集。
基本上,数据流模仿的是:
1.应用将基础json数据注入主报表的jsonData(string)参数;
1.jsonData绑定为报表数据源;
1.应用JSON数据选择器;
- Json选定数据Employee节点注入子报表,子报表也将其作为json数据源使用。
步骤4出现问题,主报表呈现时出现[**报表参数'jsonData'**无效值]错误。
Telerik Report似乎无法将选中的json节点字段数据转换为正确的字符串。
完整上下文
对于完整上下文:
*两份报告:
- 有jsonData报表参数,数据类型为string;
- 定义了JsonDataSource;
- stringjsonData参数与mainJsonDataSource的绑定基于:
- 属性路径:数据源.来源
- 表达式:=Parameters.jsonData.Value
*主报告: - 使用JsonDatasource**$.Companies**数据选择器,生成一个表示包含公司列表的列表,每个示例具有:
*Name,表示公司名称的字符串;
*Employes,包含公司employes列表的对象。 - 通过jsonData参数注入完整的json样本数据作为字符串;
*分报表上: - 还有一个jsonData报表参数,string数据类型;
- 正在使用JsonDataSource**$**数据选择器,结果应该是:
- 以下字段的列表:
*Name,代表员工姓名的字符串;
*工资,代表员工工资的数值。
*再次在main-report上使用以下子报表参数Map: - 参数名称:jsonData
- 参数值:字段.员工
- 我正在使用Telerik Report Designer v15.1.21.716(桌面版)
数据选择器似乎将jsonEmployesnode date转换为System.Object[],这让我很难弄清楚如何将其转换回json字符串。
我已经广泛搜索了文档,网络,ChatGPT和类似的一个有效的解决方案。到目前为止还没找到
在你帮我之前
虽然我最感谢任何人试图帮助我的努力:
- 我正在追求一个JSON唯一的数据源解决方案。我的意思是,我对任何其他支持的Telerik报告数据源不感兴趣;
- 解决方案必须在设计时和运行时都有效。
{
"Companies": [
{
"Name": "Company1",
"Employes": [
{
"Name": "Joe",
"Wage": 1000
},
{
"Name": "Jack",
"Wage": 2000
}
]
},
{
"Name": "Company2",
"Employes": [
{
"Name": "Mary",
"Wage": 3000
},
{
"Name": "Mike",
"Wage": 4000
}
]
}
]
}
1条答案
按热度按时间stszievb1#
实际上,将“Employes”对象传递给子报表的“jsonData”参数不应该起作用,因为该对象不能直接转换为JSON字符串。您必须通过**CStr()**函数进行转换。
但是,您可以使用"如何表示分层嵌套数据知识库"一文中描述的绑定,而不是使用参数设置子报表的数据源。
我还想提一下,在R3 2022 SP1发行版中,DataSource属性也被添加到SubReport项中。这使得我上面建议的方法过时了,因为它允许您直接在主报表中绑定子报表的数据源。例如:
方案一
基于DataSource属性的SubReport项绑定:
方案二
在@Julio提供的示例中,允许将json节点作为子报表参数注入,而不是直接的数据源,您应该使用以下方法。
通过子报表参数绑定子报表项:
记住...
有关此主题的更多详细信息,请查看原始Telerik's original post