有人可以发布一个如何使用Web服务作为数据源定义子报表的工作示例吗?
我正在读这个:
http://community.jaspersoft.com/project/web-service-data-source
在" SubReport和Additional Datasets"部分下,我需要满足(2)的情景:
你有一个你希望循环的主结果集,以及你想要执行新查询的每一行(webservice call)
在子报表配置(或数据集)中,指定根本不使用任何连接(保留空白连接表达式和数据源表达式。我们唯一要做的就是为内部传递一些必需参数webservice数据源正常工作:
- uriKeyauth
- TypeKey
- authParametersKey
- languageKey
- verbKey
根据以上陈述,我无法理解这里要做什么。这些参数在Web服务子报表中定义。我应该把它们传回主报告吗?如果是这样我怎么能在Jaspersoft Studio中做到这一点?我使用的是6.2版。即使我在主报表中定义了这些参数,当我运行预览时,我收到错误:
引起:net.sf.jasperreports.engine.JRException:动词应为POST或GET。不是有效的动词
答案 0 :(得分:1)
经过一段时间的努力,我找到了以下内容。
在我的例子中,主报表中的默认数据适配器是JDBC。对于从SQL查询返回的每一行,一个特定的列值用作Web服务数据适配器或WebServiceQuery的GET参数。
我无法使用子报表进行此操作。但是,我可以使用与表关联的数据集。
必须创建使用Web服务数据适配器的数据集。需要在数据集中定义GET参数所需的参数。
创建数据集后,使用此数据集创建表或其他元素。在表属性中的数据集选项卡下,定义应具有相关字段值的参数(例如,$ F {field1})。
Web服务数据集还需要连接到主数据集。所有这一切都是在主报告中定义Web服务参数:uriKey,authTypeKey,authParametersKey,languageKey,verbKey。
完成此操作后,预览主报表还将呈现包含从Web服务数据适配器获取的结果的表。
答案 1 :(得分:0)
我在Jasper Studio 6.3中使用的步骤是: