【问题标题】:How to get same styles in DynamicReports and JasperReports [duplicate]如何在 DynamicReports 和 JasperReports 中获得相同的样式 [重复]
【发布时间】:2016-07-28 14:57:14
【问题描述】:

我想为 dynamicReports 和 jasperReports 找到相同样式的最佳解决方案。我开始使用 dynamicReports,但是我发现很难在那里创建不寻常的报告。在 iReport 图形生成器中执行此操作要容易得多。所以现在我有 50% 的报告在 Dynamic 上运行,50% 在 Jasper 上运行。

现在我无法解决样式问题。我在 Template 类中创建了样式、字体等,并将其用于 DynamicReports。经过一些魔术后:

.setName("cellCenterStyle");
template().setColumnStyle(cellStyle)

我可以将它们用于 jasper,但这不是一个完整的解决方案,因为某些选项仍然不起作用,例如:

.setDetailEvenRowStyle(Template.evenIntensivStyle)

正在处理动态,但 jasper 忽略了。

那么问题来了:

我可以为动态和碧玉使用相同的样式,结构清晰,没有不必要的“魔法”。 我更喜欢 *.css 样式之类的解决方案,但我们将不胜感激。

【问题讨论】:

  • 它不是完全相同的副本,但我认为它具有您正在寻找的东西,或者至少是一个很好的起点。
  • @DaveJarvis 在我看来,他似乎喜欢 css 风格的解决方案,那就是外部风格......他只需要弄清楚如何加载动态报告
  • @PetterFriberg:是的,这是问题的一部分。第二个问题是其中一半在 DynamicJasper 中,另一半在 iReport 中使用。另一个答案没有解决如何从两个不同的报表环境中引用同一组样式。

标签: java jasper-reports dynamic-reports


【解决方案1】:

使用参数来引用样式文件的相对(或绝对)路径。例如,主报告可能包含:

<template><![CDATA[$P{P_REPORT_STYLES_PATH} + "FontStyle.jrtx"]]></template>
<parameter name="P_REPORT_BASE" class="java.lang.String">
    <defaultValueExpression><![CDATA[""]]></defaultValueExpression>
</parameter>
<parameter name="P_REPORT_RESOURCES_PATH" class="java.lang.String">
    <defaultValueExpression><![CDATA[$P{P_REPORT_BASE} + "resources/"]]></defaultValueExpression>
</parameter>
<parameter name="P_REPORT_STYLES_PATH" class="java.lang.String">
    <defaultValueExpression><![CDATA[$P{P_REPORT_RESOURCES_PATH} + "styles/"]]></defaultValueExpression>
</parameter>

这允许 iReport(或 Jaspersoft Studio)中的报表引用报表样式的相对路径,例如:

resources/styles/FontStyle.jrtx

此路径相对于报告的 .jasper 文件位置。

然后,在 DynamicJasper 中,您可以传入一个报告参数。 DynamicJasper 中的 API 调用可能与以下 JasperReports 库调用的 API 调用不匹配,但它应该足够相似才能理解这个想法:

    reportParameters.put("P_REPORT_BASE", "/home/user/dev/reports/workspace");
    JasperFillManager.fillReport(..., reportParameters, dataSource);

假设/home/user/dev/reports/workspace.jasper 文件的位置以及iReport/Jaspersoft Studio 的工作区位置,那么DynamicJasper 和报表开发环境都会找到并使用相同的样式文件。

在本例中,样式文件的完整路径为:

/home/user/dev/reports/workspace/resources/styles/FontStyle.jrtx

当然,您的目录路径会有所不同。


此时,您可以在两种环境中引用相同的样式。另见:

【讨论】:

    猜你喜欢
    • 2017-01-31
    • 2021-12-10
    • 1970-01-01
    • 2017-10-03
    • 1970-01-01
    • 2012-09-02
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多