线程:如何在多个环境中部署包含子报表的Pentaho报表

时间:2011-02-16 19:19:31

标签: pentaho

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

所以,我创建了一些jndis,并将jndi名称作为xaction的参数,然后执行查询并将结果传递给prpt。它运作得很好。

直到我开始使用子报告。

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

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

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

谢谢!

更新: biserver 3.7&中存在与此相关的错误3.8 link

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:-1)

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

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

在我的博客文章中阅读更多内容:“Dont hardcode host names, use JDNI”(可能描述了问题的核心;)。)