2012-04-28 18 views
1

私はjsfを初めて使用しており、ホームページのレポートのリストを表示する基本的なレポートツール(SQLクエリ)を設定しています。私は、ホームページにエクスポートコマンドボタンを置いて、ユーザーが選択したレポートをエクスポートしたり、別の実行ページにユーザーを誘導したりして、選択したレポートのデータテーブルに結果を表示したい。それをどうすれば実現できますか?もちろん、クエリ結果を含むデータテーブルは、実行ページでのみ表示され、クエリ実行中に動的に作成されます(この部分は正常に動作します)。私は何のために夢中になっていますか?事前に感謝の意を表します。JSF exportingは別のページからデータを取得します

+0

私はprimefaces 3.2とdataexporterコンポーネントを使用していますが、問題を解決するのに役立つなら、他のコンポーネントを使用しても構いません!お返事ありがとうございました – jsfviky

答えて

0

データをExcelにエクスポートする場合は、サードパーティのライブラリを使用する必要があります。 JExcelApiApache POIのような無料のものがあります。また、Asposeのような商業ライブラリもあります。オープンソースライブラリを選択する場合は、Choosing an excel java apiというこの質問を確認してください。

Excelにデータをエクスポートするときは、Excelファイルを作成してクライアントのコンテンツをダウンロードする必要があります。あなたは@BalusC(JSFのエキスパート)によってdownload a file using JSFにどのようにチェックすることができます。

もう1つのアドバイスでは、ファイルをダウンロードするときにコマンドリンク/ボタンにajax機能を追加しないでください。

+0

答えた@luiggi、ありがとうございました。私の問題はアーキテクチャ上の問題に関連しています。データが実際に表示されているページとは異なるページからExcelをダウンロードすることができます。昨日私は回避策を見つけました。最初のページにレンダリングされていないデータテーブルを配置し、Excelのダウンロードに必要なときにデータを取り込みます。私はこれが進歩する最もクリーンな方法だとは思っていませんが、うまくいきます。 – jsfviky

+0

@ jsfviky71クエリを実行すると、データテーブルを使用してレポートが作成されます。別の要求を行わずにレポートに同じデータを使用すると、Excelファイルを作成してダウンロードすることができます。リクエストによってデータを渡すことができます。 IMHOあなたの問題は、マネージドBeanのスコープを定義することでした。私が間違っている場合私を訂正してください –

+0

こんにちは@luiggiと遅く答えて申し訳ありません、正確にはない、私の主な問題は、最初のページと別のページのデータテーブルでExcelのボタンを持っていた、実行ページは、ホームページにはレポートリストが表示されるため、ユーザーはクエリの結果を表示することなく、レポートのExcelバージョンをダウンロードすることができます。 – jsfviky

関連する問題