【问题标题】:Change size/position of Jasper Reports columns更改 Jasper Reports 列的大小/位置
【发布时间】:2011-01-20 15:56:40
【问题描述】:

在 Jasper Reports 中,是否可以根据特定条件动态更改列的宽度或位置?

例如,我们有一个包含以下列的报告:

ID |姓名 |课程 |状态 |

现在,有一个选项可以让报告只显示一个人的 ID,而不是 ID 和姓名。如果我们将 name 列设为 null,我们最终会在 ID 和 Course 列之间产生一个巨大的空白:

ID |_____|课程 |状态

是否可以以编程方式重新定位剩余的列,以便它们都向上移动到 ID 列旁边的 be?

【问题讨论】:

  • 如何将设计传递给jasper?根据选择的选项有两种设计是否可行?
  • 可能有 2 个设计,但正如 yshalbar 在下面所说,如果将来添加新选项,我们需要为每个设计创建一个全新的报表设计。这不是最易于维护的解决方案。
  • 查看以下链接可能会有所帮助:) stackoverflow.com/questions/27181665/…

标签: java jasper-reports


【解决方案1】:

我们遇到了同样的问题,但没有找到解决方案,只有丑陋的解决方法。

当我们有两种选择时,我们从一个有两种设计的简单解决方案开始。

当更多选项出现时,这变得无法维持。我们现在使用动态结构:

$P{field_name1} | $P{field_name2} 
------
$F{value1} | $P{value2} ...

我们将字段名称作为参数传递,并使用动态数据源。如果存在,我们不会显示最后一个空列。请注意,我们需要在代码中动态查询和填充数据源,因此这可能不是一个可行的解决方案。

您的另一个选择是在代码中创建 Jasper 设计(在另一种情况下,我们也这样做) - 我们加载一个 jrxml 模板,然后根据需要动态添加带区和项目。

JasperDesign jasperDesign = JRXmlLoader.load(myJrxml);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多