BIRT - 使用多个网络服务获取数据

BIRT - using multiple webservices to get the data

我正在尝试使用 Eclipse BIRT 报告设计器生成报告。

场景是这样的:

有 2 个 Web 服务数据源。 Web 服务有 2 个数据集 'WS1' 和 'WS2'。

一个网络服务 'WS1' 的输出元素 'COUNTRYID' 将作为另一个网络服务 'WS2' 的输入。

我做了什么:

但报告不显示 Web 服务响应的值 'WS2'

我的问题:

除非明确绑定到报表元素,否则不会触发 WS1。通常,为了实现这一点,我们采用以下步骤:

  • 在报表正文的开头插入一个数据元素
  • 将此新元素的 属性 可见性设置为 false(或让它在测试期间可见)
  • 绑定到第一个数据集WS1

它将强制静默执行 WS1,因此这将在 WS2 运行之前填充您的参数 COUNTRYID。

但是,如果出现以下情况,此方法将不起作用:

  • 必须使用 WS2 数据集来填充报告参数的选择项(这里似乎不是这种情况)
  • 如果在渲染时使用 COUNTRYID 参数。这一点更烦人,例如,如果您在图表表达式中需要此参数。如果是这样,我建议将 WS1 存储在报告变量中而不是(或者为什么不另外)报告参数中。请参阅 this topic 了解如何创建报表变量。

您可以在与报告参数相同的地方初始化它:

vars["COUNTRYID"]=row["COUNTRYID"];

并在任何地方使用

vars["COUNTRYID"];

报表变量可从表达式编辑器的调色板获得: