当前位置: 首页 > 知识库问答 >
问题:

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

拓拔泉
2023-03-14

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

我正在阅读以下内容:

http://community . jasper soft . com/project/we B- service-data-source

在“子报告和其他数据集”一节中,我需要考虑(2)的情况:

您有一个希望循环的主结果集,并且希望对每一行执行一个新的查询(webservice调用)

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

  • uriKeyauth
  • TypeKey
  • au th参数键
  • 语言键
  • 普通密钥

基于上述陈述,我无法理解在这里应该做什么。这些参数在web服务子报表中定义。我应该把它们传给主报告吗?如果是的话,我该如何在Jaspesoft Studio中做到这一点?我使用的是6.2版。即使在主报告中定义了这些参数,当我运行预览时,我也会收到错误:

引起:net.sf.jasperreports.engine.JRE:动词应该是POST或GET。不是一个有效的动词

共有2个答案

况明贤
2023-03-14

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

  1. 创建子报表将使用的web服务数据适配器
  2. 使用上下文菜单,将数据适配器导出到工作区中的文件
  3. 在用作子报表的报表属性中,将默认数据适配器设置为导出文件
  4. 将适当的参数从主报表传递到子报表
钦高峯
2023-03-14

在纠结了相当一段时间后,我发现了以下内容。

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

我无法使用子报表使其工作。但是,我可以让它与与表关联的数据集一起工作。

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

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

web服务数据集还需要连接到主数据集。所有这些都是在主报表中定义web服务参数:uriKey、authTypeKey、authParametersKey、languageKey和verbKey。

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

 类似资料:
  • 我的应用程序中有几个类似的报告,因此我创建了一个基本结构,在标题中有一个子报告,在页脚中有另一个子报告。 我不知道为什么我找不到解决这个问题的方法,如果有人能帮我...谢谢!

  • 我正在从. jasper文件加载jasper报告文件以提高性能,如下所示。 但是我现在有一个要求,动态形成的查询必须设置为. jasper(编译)文件。有没有办法做同样的事情?

  • 我正在使用Jaspersoft studio创建报告。我在我的Jasper主报告中有一个子报告。问题是,我无法做到这一点,因为如果我将子报告添加到主报告的< code>Detail band中,子报告会生成多次,有时是逐行生成,有时是整个子报告在若干页中重复。出于同样的原因,我不能把它放在< code > summer Band 中。 我无法将其放入或其他页脚中,因为它显示以下错误 由于以下错误,

  • 我有一个 json 数据源,数组中的数组,我正在使用使用子报表,这些子报表的数据源来自主数据源上的 datasourceExpression 和“subdata()”方法。 我现在的问题是将另一个列表传递给另一个子报表,我不想再次使用子数据,我需要做的是将包含json文本的字段作为字符串从当前子报表传递到下一个子报表作为json数据源。 有人知道这是如何实现的吗? 我正在使用iReport 5.6

  • 当简单报表不适用于子报表时,此操作有效...