2016-07-28 19 views
0

dynamicReportsとjasperReportsに同じスタイルを使用するための最良のソリューションを探したいと思います。私はdynamicReportsを使い始めましたが、そこでは珍しいレポートを作成するのが難しいと感じました。 iReportのグラフィカルビルダーでそれを行う方がはるかに簡単でした。だから今はダイナミックで50%、ジャスパーで50%のレポートを持っています。DynamicReportsとJasperReportsで同じスタイルを取得する方法

スタイルの問題を解決できません。 Templateクラスでスタイルやフォントなどを作成し、DynamicReportsに使用しました。後にいくつかの魔法のような:

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

私は碧玉のためにそれらを使用することができたが、一部のオプションはまだ例えば、動作しないよう、これは完全な解決策ではありません。

.setDetailEvenRowStyle(Template.evenIntensivStyle) 

ダイナミックに取り組んでいますジャスパーは無視します。

だから、質問:

が、私は明確な構造とし、不必要な「魔法」せずにダイナミックで碧玉のために同じスタイルを使用することができます。 私は* .cssスタイルのようなソリューションを好むでしょうが、どんな助けもありがとうございます。

+0

が、私はそれはあなたが探しているものを持っているか、少なくとも良い出発点だと思う:も参照してください。 –

+0

@DaveJarvis私には彼はCSSスタイルのソリューションが好きだと思われます。それは外部スタイルです...彼は動的なレポートをロードする方法を理解する必要があります。 –

+0

@PetterFriberg:はい、それは問題の一部です。もう1つの問題は、その半分がDynamicJasperにあり、残りの半分がiReportで使用されていることです。もう1つの答えは、2つの異なるレポート環境から同じスタイルセットを参照する方法については言及していません。 –

答えて

2

パラメータを使用して、スタイルファイルへの相対(または絶対)パスを参照します。メインレポートは、例えば、含まれているかもしれない:

<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スタジオ)のレポートが可能など、レポートスタイルへの相対パスを参照する:

resources/styles/FontStyle.jrtx 

このパスレポートの.jasperファイルの場所に関連しています。

次に、DynamicJasperでは、レポートパラメータを渡すことができます。 DynamicJasperでのAPIコールは、次のJasperReportsライブラリの呼び出しのためのAPI呼び出しを一致しない場合がありますが、全体でアイデアを得るために十分に類似しているべきである:/home/user/dev/reports/workspaceはだけでなく、.jasperファイルの場所であると仮定すると

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

iReport/Jaspersoft Studioのワークスペースの場所を指定すると、DynamicJasperとレポート開発環境の両方が同じスタイルファイルを検索して使用します。

スタイルファイルへのフルパス、この例では、次のようになります。

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

あなたのディレクトリ・パスは、もちろん、異なります。


この時点で、両方の環境で同じスタイルを参照できます。正確な複製のない

+0

ありがとう、Dave、私はそれを使用します – quento

+0

それはあなたのために働く場合は、チェックマーク(承認ボタン)を押してください。 –

関連する問題