2011-09-30 17 views

回答

1

我已經在過去使用外部樣式模板實現了這一點。有一個sample on jasperforge說明如何做到這一點。

將樣式移至外部模板後,即可創建特定於語言環境的模板。模板機制允許您繼承並覆蓋特定的樣式,所以特定於語言環境的版本不會過度膨脹。上面鏈接的示例包括繼承和重寫基本樣式。

在您的報告中,您可以在渲染時加載適當的模板。

一個簡單的方法來做到這一點是:

  • 提供要作爲參數 使用報告

  • 包括在JRXML文件的模板標籤中的路徑模板引用 參數:

    <模板> < [CDATA [$ P {} TEMPLATE_PATH]]> < /模板>

然後,在呈現報表的代碼中,只需爲報表語言環境適當地設置TEMPLATE_PATH參數即可。

此外,鏈接的文檔提到了如何做到這一點。

+0

在報告中,您如何確定當前的報告區域設置? – Chewpers

+0

有一個名爲REPORT_LOCALE的內置參數,應該由報告的渲染器設置 - 如果從iReport運行,可以在報告執行選項下設置,如果您是從Java代碼進行渲染,則通常通過執行類似:metadata.put(JRParameter.REPORT_LOCALE,locale);其中元數據是發送到fillReport的參數映射 –