を使用して1つのジャスパーレポートをiReport 3.7.4 version
作成しましたが、サーブレット、jsp、およびstrutsフレームワーク、サーバーとしてapache tomcatを使用しているJavaアプリケーションでそれを使用するか、そのレポートを呼び出す必要があります。
ジャスパーレポートを呼び出す方法に関する手順がいくつかの例で必要です。
を使用して1つのジャスパーレポートをiReport 3.7.4 version
作成しましたが、サーブレット、jsp、およびstrutsフレームワーク、サーバーとしてapache tomcatを使用しているJavaアプリケーションでそれを使用するか、そのレポートを呼び出す必要があります。
ジャスパーレポートを呼び出す方法に関する手順がいくつかの例で必要です。
でロードする
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(inputStream);
データを入力してください。dataSource
あなたが持っているDataSource
インスタンスです - 例えばBeanCollectionDataSource
JasperPrint jasperPrint =
JasperFillManager.fillReport(jasperReport, params, dataSource);
エクスポートする
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, outputStream);
exporter.exportReport();
上記は、クライアントに送信するか、ファイルとして保存するかによって、または のoutputStream
いずれかになります。クライアントに送信する場合は、ヘッダーなどを送信する必要がありますが、それは保存する形式によって異なります。クライアントで印刷したい場合は、まったく別の問題です。たとえば、アプレットなどのクライアント側のコードが必要です。response.getOutputStream()
FileOutputStream()
Content-Disposition
最善の解決策(パフォーマンスを向上させるためにも)は、コンパイルされたレポートを呼び出すことです。
以下の例を見ることができます
import java.io.IOException;
import java.util.HashMap;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
public class PdfFromJasperFile {
public static void main(String[] args) throws JRException, IOException {
JasperPrint jasperPrint = JasperFillManager.fillReport("report.jasper", new HashMap<String, Object>(),
new JREmptyDataSource());
JasperExportManager.exportReportToPdfFile(jasperPrint, "sample.pdf");
}
}
最初の回答で、ポイント5:後
JRPdfExporter exporter= new JRPdfExporter();
追加
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
このコードは、それを行う方法についてのアイデアを提供するはずです
JasperReport jr=JasperCompileManager.compileReport("yourJRXMLFilePath");
JasperPrint jrPrint = JasperFillManager.fillReport(jr,mapWithParameters,aJRDataSource);
JasperExportManager.chooseYourFavoriteMethod(jrPrint,"destinationFile");
それ以外の場合は、 APIを確認してください 。iReport でファイルを既にコンパイルしている場合は、最初の行を省略できます。この場合、JasperFillManager の正しいメソッドの API を確認してください。
これは、同じことを行う別の方法です。
JasperReport jasperReport;
JasperPrint jasperPrint;
Map<String, Object> param = new HashMap<String, Object>();
try{
String sourceFileName = ".jrxml";
jasperReport = JasperCompileManager.compileReport(sourceFileName);
jasperPrint = JasperFillManager.fillReport(jasperReport,param,new JRBeanCollectionDataSource(getDetails()));
JasperExportManager.exportReportToPdfFile(jasperPrint, ".pdf");
}
catch(Exception e){
}