繁体   English   中英

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

[英]How to make a subreport that uses web service as the data source work in Jasper Reports

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

我正在阅读:

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

在“子报表和其他数据集”部分下,我需要满足(2)的情况:

您有一个希望循环的主要结果集,并且要为每一行执行一个新查询(Web服务调用)

在子报表配置(或数据集)中,指定完全不使用任何连接(将连接表达式和数据源表达式都留空。我们要做的唯一一件事情就是传递一些强制性参数,以使内部Webservice数据源正常工作:

  • uriKeyauth
  • TypeKey
  • authParametersKey
  • languageKey
  • verbKey

基于以上陈述,我无法理解该怎么做。 这些参数在Web服务子报告中定义。 我应该把它们传回主要报告吗? 如果是这样,我应该如何在Jaspersoft Studio中进行操作? 我正在使用6.2版。 即使在主报表中定义了这些参数之后,在运行预览时,也会收到错误消息:

引起原因:net.sf.jasperreports.engine.JRException:动词应为POST或GET。 不是有效的动词

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

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

我无法通过子报表来完成这项工作。 但是,我可以将其与与表关联的数据集一起使用。

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

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

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

完成此操作后,预览主报表还将使用从Web服务数据适配器获得的结果来呈现表。

我在Jasper Studio 6.3中使用的步骤是:

  1. 创建您的子报表将使用的Web服务数据适配器。
  2. 使用上下文菜单,将数据适配器导出到工作空间中的文件。
  3. 在用作子报表的报表的属性中,将默认数据适配器设置为导出的文件。
  4. 将适当的参数从主报表传递到子报表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM