Jasper reports JasperReports中的图表本地化
我正在使用JasperReports 5.5.1从Java生成报告。我使用Jaspersoft Studio设计报告。该报表有几种不同类型的图表,我在尝试使用report\u RESOURCE\u BUNDLE参数中传递的ResourceBundle本地化报表时遇到了一些问题。除图表中的文本外,报告中的所有文本均翻译正确。我用$R{STRING_KEY}填充了keyExpression、labelExpression和SerieExpression,但报告中填充的是STRING_KEY,而不是属性文件中的值。但图表的标题已正确翻译 有人能帮我解决这个问题吗?我找到了解决办法 首先创建一个类,负责从特定的资源包中获取本地化字符串Jasper reports JasperReports中的图表本地化,jasper-reports,Jasper Reports,我正在使用JasperReports 5.5.1从Java生成报告。我使用Jaspersoft Studio设计报告。该报表有几种不同类型的图表,我在尝试使用report\u RESOURCE\u BUNDLE参数中传递的ResourceBundle本地化报表时遇到了一些问题。除图表中的文本外,报告中的所有文本均翻译正确。我用$R{STRING_KEY}填充了keyExpression、labelExpression和SerieExpression,但报告中填充的是STRING_KEY,而不是属
public class ReportLocalizer {
private static String resourceBundleBaseName = "com.company.package.boundle_name";
public static String getLocalizedString(Locale locale, String key) {
ResourceBundle resourceBundle = ResourceBundle.getBundle(resourceBundleBaseName, locale);
return resourceBundle.getString(key);
}
}
使用JasperReports的参数设置所需的区域设置:
Map<String, Object> parameters = new HashMap<String, Object>();
...
parameters.put(JRParameter.REPORT_LOCALE, locale);
...
final JasperPrint print = JasperFillManager.fillReport(report, parameters, datasource);
例如,我们可以通过以下方式定位显示男性和女性数量的饼图:
<pieChart>
<chart>
...
</chart>
<pieDataset>
<dataset>
...
</dataset>
<keyExpression><![CDATA[com.company.package.ReportLocalizer.getLocalizedString($P{REPORT_LOCALE}, $F{gender}.toString())]]></keyExpression>
<valueExpression><![CDATA[$F{amount}]]></valueExpression>
<labelExpression><![CDATA[String.valueOf($F{amount})]]></labelExpression>
</pieDataset>
<piePlot>
...
</piePlot>
</pieChart>
...
...
...
<pieChart>
<chart>
...
</chart>
<pieDataset>
<dataset>
...
</dataset>
<keyExpression><![CDATA[com.company.package.ReportLocalizer.getLocalizedString($P{REPORT_LOCALE}, $F{gender}.toString())]]></keyExpression>
<valueExpression><![CDATA[$F{amount}]]></valueExpression>
<labelExpression><![CDATA[String.valueOf($F{amount})]]></labelExpression>
</pieDataset>
<piePlot>
...
</piePlot>
</pieChart>