0

我正在尝试创建可以在不同环境(测试、生产)和/或不同数据库中部署的报告,而无需更改 prpt 文件。

因此,我创建了一些 jndis,并将 jndi 名称作为参数传递给 xaction,该 xaction 依次执行查询并将结果传递给 prpt。效果很好。

直到我开始使用子报表。

我认为没有办法将结果集传递给主报告的每一行的子报告。

似乎如果您使用子报表,则必须在子报表内定义连接和查询。

我错了吗?有没有人试过这个?使用子报表部署多租户报表并将连接或 jndi 作为参数传递的“正确”方式是什么?(如果有其他方法,我愿意放弃使用 jndi)

谢谢!

更新: biserver 3.7 和 3.8链接中有一个与此相关的错误

4

2 回答 2

1

不,可以在父报告中定义连接。只需确保您在子报表本身的查询名称设置中指定它。

于 2011-02-17T16:51:35.060 回答
-1

XActions 在报告引擎有机会实际使用它们之前预先计算所有数据集。外部数据集是预先计算的,没有关于您的子报表的任何信息,因此它将失败(除非您使用一些丑陋的技巧来使用计算的查询名称作为预先计算的表模型的查找键)。

为什么不像其他人一样使用 JNDI?JDNI 旨在将连接信息抽象为一个逻辑名称。连接是在报表之外定义的,报表只引用名称。

在我的博客文章中阅读更多内容:“不要硬编码主机名,使用 JDNI ”(这可能描述了您问题的核心;))。

于 2012-07-07T11:48:25.313 回答