java - 如何在 Jasper Reports 中制作使用 Web 服务作为数据源的子报表

标签 java jasper-reports

有人可以发布一个如何使用 Web 服务作为数据源定义子报表的工作示例吗?

我正在读这篇文章:

http://community.jaspersoft.com/project/web-service-data-source

在“子报告和附加数据集”部分下,我需要满足 (2) 的场景:

you have a main resultset that you wish to loop, and for each row you want to execute a new query (webservice call)

In the subreport configuration (or the dataset) specify not to use any connection at all (leave blank both the connection expression and the datasource expression. The only thing we'll have to do is passing some mandatory parameters for internal webservice datasource to work properly:

  • uriKeyauth
  • TypeKey
  • authParametersKey
  • languageKey
  • verbKey

根据上述陈述,我无法理解在这里要做什么。这些参数在 Web 服务子报告中定义。我应该将它们传回主报告吗?如果是这样,我应该如何在 Jaspersoft Studio 中执行此操作?我使用的是6.2版本。即使我在主报告中定义了这些参数,当我运行预览时,我也会收到错误:

Caused by: net.sf.jasperreports.engine.JRException: Verb should be POST or GET . is not a valid verb

最佳答案

经过一段时间的努力,我发现了以下内容。

就我而言,主报告中的默认数据适配器是 JDBC。对于从 SQL 查询返回的每一行,一个特定的列值用作 Web 服务数据适配器或 WebServiceQuery 的 GET 参数。

我无法使用子报表来实现此功能。但是,我可以让它与与表关联的数据集一起使用。

必须创建使用 Web 服务数据适配器的数据集。需要在数据集中定义 GET 参数所需的参数。

创建数据集后,使用该数据集创建表或其他元素。在表属性的数据集选项卡下,定义应具有相关字段值的参数(例如,$F{field1})。

Web 服务数据集还需要连接到主数据集。这一切都是在主报告中定义 Web 服务参数:uriKey、authTypeKey、authParametersKey、languageKey、verbKey。

完成此操作后,预览主报告还将呈现包含从 Web 服务数据适配器获取的结果的表格。

关于java - 如何在 Jasper Reports 中制作使用 Web 服务作为数据源的子报表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35909581/

相关文章:

java - 目标列表迭代映射结构

java - 将数据从 Jtable 传递到 Ireport

java - 图表和自定义字体

java - 是否可以在 JasperReports 的 jrxml 文件中的 queryString 标记中使用参数?

java - JTS/Geotools 修正多个几何体的并集/差集

java - 是否可以使用Java更改不同操作系统的桌面背景?

java - 如何验证struts2 Action 中表单的输入

java - 如何将测试覆盖率添加到私有(private)构造函数?

reporting-services - ColdFusion 报告选项

java - JasperReports 是否可以很好地替代基于 CGI 的 Web 报告框架