Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在DynamicReports和JasperReports中获得相同的样式_Java_Jasper Reports_Dynamic Reports - Fatal编程技术网

Java 如何在DynamicReports和JasperReports中获得相同的样式

Java 如何在DynamicReports和JasperReports中获得相同的样式,java,jasper-reports,dynamic-reports,Java,Jasper Reports,Dynamic Reports,我想为dynamicReports和jasperReports找到相同样式的最佳解决方案。我开始使用dynamicReports,但是我发现很难在那里创建不寻常的报告。在iReport graphical builder中执行此操作要容易得多。现在我有50%的报告在Dynamic上运行,50%在Jasper上运行 现在我无法解决风格问题。我在Template类中创建了样式、字体等,并将其用于DynamicReports。经过一些魔术之后,比如: .setName("cellCenterStyle

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

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

.setName("cellCenterStyle");
template().setColumnStyle(cellStyle)
我可以将它们用于jasper,但这不是一个完整的解决方案,因为有些选项仍然不起作用,例如:

.setDetailEvenRowStyle(Template.evenIntensivStyle)
正在使用dynamic,但jasper忽略了它

因此,问题是:


我可以用同样的风格来表现动感和碧玉,结构清晰,没有不必要的“魔力”我更喜欢像*.css styles这样的解决方案,但如果有任何帮助,我将不胜感激。

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


这允许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
当然,您的目录路径会有所不同


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


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


这允许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
当然,您的目录路径会有所不同


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


这不是一个完全相同的版本,但我认为它符合您的要求,或者至少是一个很好的起点。@DaveJarvis对我来说,他似乎喜欢css样式的解决方案,这就是外部样式。。。他只需要弄清楚如何动态加载它们reports@PetterFriberg:是的,这是问题的一部分。第二个问题是,其中一半在DynamicAsper中,另一半在iReport中使用。另一个答案没有说明如何从两个不同的报表环境中引用同一组样式。它不是完全重复的,但我认为它符合您的要求,或者至少是一个很好的起点。@DaveJarvis对我来说,它似乎像一个css样式解决方案,这是外部样式。。。他只需要弄清楚如何动态加载它们reports@PetterFriberg:是的,这是问题的一部分。第二个问题是,其中一半在DynamicAsper中,另一半在iReport中使用。另一个答案没有说明如何从两个不同的报告环境中引用同一组样式。