1

(これは Jasper とは何の関係もない可能性がありますが、通常の JasperServer インターフェイスではなく、Web サービスの実装でのみ発生します)

Web サービスを実装しましたが、XLS にエクスポートすると、非常に奇妙な動作が見られます (XLSX、CSV、PDF では問題ありません)。レポートが少数の結果を返す場合、レポートはエクスポートされません。代わりに、私のブラウザは「HTTP ステータス 404 - 結果 'null' が見つかりません」と表示します。多数の結果がある場合、正しくエクスポートされます。ヒントを与えるログ メッセージを見つけることができませんでした。

そのため、詳細を除くすべてのレポート バンドを削除し、43 行以上では XLS が正しくエクスポートされると判断できましたが、42 行以下ではエラーが発生します。クエリを「TOP 10 を選択 ...」から「TOP 20 を選択 ...」、「TOP 30 を選択 ...」などに変更する消去法でこれを理解しました。43 は奇妙な数字なので、ピクセルと関係があるかもしれないと思いました。詳細バンドとレポート全体のピクセル数を調整しましたが、42 対 43 行の問題は解決しませんでした。

この時点で、私のレポートには 3 つのフィールドが表示されていたので、そのうちの 2 つを削除してレポートを実行したところ、問題が再発しました。正確な行数を気にする必要はありませんでしたが、マジック ナンバーは 60 行から 80 行の間にありました。

ここで私のコードのスニペットを見ることができます: http://pastebin.com/MyPYMju4

        JasperPrint print; = client.runReport(rd, reportInputMap);
        response.setHeader("Content-Disposition", " inline; filename=report" + (new Date()).getTime() + "." + format.toLowerCase());
        JRAbstractExporter myExporter;

        /// ... if/else code to determine what file to export to ...

        myExporter = new JRXlsExporter();
        response.setContentType(FORMAT_CONTENTTYPE_MAP.get(format));
        myExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
        myExporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
        myExporter.exportReport();
4

0 に答える 0