LabelHandle上的canShrink属性不适用于使用BIRT的PDF和EXCEL报告

时间:2017-11-03 09:17:09

标签: java birt

我正在使用BIRT(4.6)和Eclipse mars2(4.5)。 我正在使用EngineConfig对象创建报告,并以HTML,PDF和EXCEL格式创建报告。

我动态填充的表格中的表格和数据的数量。

我正在为报表中的每一列创建CellHandle,并在其中添加LabelHandle。我根据我要设置它的字符串的大小来设置LabelHandle的宽度,并且所有三个报告(PDF,HTML和EXCEL)都正确显示。但是设置基于LabelHandle宽度的字符串大小不是一个好习惯,有时报告中缺少数据。 所以试着' canShrink' LabelHandle上的属性如下所示。

labelHandleObj.setProperty(" canShrink"," True");

上述语句会根据字符串大小自动调整LableHandle宽度,这样可以避免我根据字符串大小手动设置LableHandle大小。

使用canShrink属性,我的HTML报告正确生成,没有数据丢失,并且单元格中没有提取空间/填充。这就是我想要报告的方式。

但是当谈到PDF和EXCEL时,表格显示不正确,所有列都被推卸,数据无法正常显示。您可以点击以下链接查看PDF报告。

PDF Report after setting the canShrink property on LableHandle

任何人都可以建议我,如何在PDF和Excel报告中正确获取数据。但我想使用CanShrink属性,因为它正在创建正确的HTML报告。我尝试使用CanShrink的True和False值但不使用PDF和EXCEL。

有没有办法在不使用CanShrink的情况下正确获取三份报告。

先谢谢。

1 个答案:

答案 0 :(得分:0)

当发生类似这样的事情时,你应该尝试复制你的表并将其插入原始表格下,然后使用visibility选项卡从PDF中隐藏原始表格,然后隐藏除PDF之外的所有内容的副本。我已经做过很多次了,它确实解决了这个问题,但是这个问题的主要缺点是,如果你想在两个表中改变你需要做的事情。示例报告:

Example