我想根据特定条件在运行时显示/隐藏列。我正在使用“表达式时打印”在报表中有条件地显示/隐藏此列(及其标题)。当隐藏该列时,它本应占用的空间留为空白,这并不是特别吸引人。我希望如果以更有效的方式使用多余的空间,则可能包括:报告的宽度减去隐藏列的宽度多余的空间分布在其余列之间从理论上讲,我可以通过将列(和标题)的宽度设置为0来实现第一个目标,但是还可以指示该列应调整大小以适合其内容。但是JasperReports没有提供“调整宽度以适合内容”选项。另一种可能性是使用Jasper API生成报告,而不是用XML定义报告模板。但这对于这样一个简单的要求似乎需要付出很多努力。
3 回答
慕森王
TA贡献1777条经验 获得超3个赞
空白时删除行:如果看不见对象,则此选项将占用对象占据的垂直空间;元素可见性由“表达式时打印”属性中包含的表达式的值确定。可以将页面视为放置元素的网格,其中一行是元素所占据的空间。图4-17突出显示了元素A线;为了真正删除该行,共享该行一部分的所有元素必须为空(即,将不会打印它们)。
四季花海
TA贡献1811条经验 获得超5个赞
如果只是一列,则可以将此列放在最右边,然后在表达式时使用print。这样,中间没有孔。我知道这是不理想的,因为我过去曾尝试做您当前要完成的事情,却找不到我所谓的好解决方案。
第二个想法是在第一个报告的基础上创建第二个报告,但不包含该列,然后在调用报告时检查条件,以决定要调用哪个报告。再次不理想,但会起作用。
我知道这并不是您要找的答案,但是其中一些建议可能对您有用。
添加回答
举报
0/150
提交
取消