2013-02-18 15 views
5

Jasper/iReportを使用して、メインレポートの同じデータをテーブルに取り込もうとしています。どのように私はJsonを引き継ぐことができますか?コンパイルJasperreports - JSONでサブレポートを作成する方法

((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}) 

new ((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}) 

$P{REPORT_DATA_SOURCE} 

$P{REPORT_CONNECTION} 

すべてが、しかしいずれも、実際にテーブルを生成します。編集テーブルのデータソースで

は、私が試してみました。何か案は? JSONのためのcloneDataSource()のようなメソッドはありませんので、代替は何ですか?

究極の目標はJSONデータを渡してチャートを生成してから、同じ情報を表示するテーブルを作成することです。私はこれについて数日間働いていますが、ジャスパーは私に苦労しています。助けてください!

答えて

7

サブレポートを使用しているときも同様の問題が発生しました。 JSONデータソースはメインレポートで消費されているようですので、サブレポートやテーブル用の新しいデータソースを取得するにはsubDataSource()を呼び出す必要があります。まだテストしていません...

データソース式:誰もが(バージョンで利用可能6+)JasperReportsの新しいブックのレポート機能を使用しているとあなたがJsonDataSourceを使用したい場合は((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource()

+0

はいああそれは私の問題でした。私はまだ試していないが、今はそうするだろう。 –

+1

'<![CDATA((net.sf.jasperreports.engine.data.JsonDataSource)$ P {REPORT_DATA_SOURCE})。subDataSource()]>'私はすべて –

+0

を修正しました。私のために働いていない。エラーが発生しましたnet.sf.jasperreports.engine.data.JsonDataSourc解決できないか、タイプではありません – Yebach

1

、これはサブレポートにJSONペイロードを渡す方法です:

<p:subreportPart xmlns:p="http://jasperreports.sourceforge.net/jasperreports/parts" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/parts http://jasperreports.sourceforge.net/xsd/parts.xsd"> 
    <subreportParameter name="REPORT_DATA_SOURCE"> 
    <subreportParameterExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource()]]></subreportParameterExpression> 
    </subreportParameter> 
    <subreportExpression><![CDATA["PROFILES_cover.jasper"]]></subreportExpression> 
</p:subreportPart> 

また、jsonペイロードのサブセットを渡すには、n odo locationをsubDataSource(java.lang.String selectExpression)メソッドのパラメータとして使用します。例:

.subDataSource("Northwind.Customers") 

または

.subDataSource("Northwind.Customers(Country == USA)") 
関連する問題