開発者はJasperReport-異なるデータソースのテーブルデータソースを使用
前言
前のいくつかの記事では、一般的な簡単なフォーマットのレポートについて説明していますが、テーブル形式であることが要求される場合があります.この場合、JRTableModelDataSourceを使用する必要があります.
本題
以前と同様に、レポートを生成するには、次の手順に従います.
1.jarパッケージを導入します.「静的テキストレポート」を参照してください.
2.新規レポートテンプレート:
前のAircraftReportレポートのテンプレートと同じですが、「異なるデータソースのMapデータソース」を参照してください.
3.レポートテンプレートをコンパイルするには、「静的テキストレポート」を参照してください.
4.servletの作成:
5.webを構成する.xmlはservletを構成することです
6.運行項目
私の運転結果を見てみましょう.
まとめ:
この表形式のレポートは、私たちの前のプレビューレポートに似ていますが、表のスタイルが表示され、印刷レポートの機能もプレビューされます.
前のいくつかの記事では、一般的な簡単なフォーマットのレポートについて説明していますが、テーブル形式であることが要求される場合があります.この場合、JRTableModelDataSourceを使用する必要があります.
本題
以前と同様に、レポートを生成するには、次の手順に従います.
1.jarパッケージを導入します.「静的テキストレポート」を参照してください.
2.新規レポートテンプレート:
前のAircraftReportレポートのテンプレートと同じですが、「異なるデータソースのMapデータソース」を参照してください.
3.レポートテンプレートをコンパイルするには、「静的テキストレポート」を参照してください.
4.servletの作成:
package com.dan.jasper;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRTableModelDataSource;
import net.sf.jasperreports.view.JasperViewer;
public class TableModelReport {
JFrame mainFrame;
BorderLayout borderLayout;
DefaultTableModel tableModel;
JTable table = new JTable();
JButton generateReportButton = new JButton("Generate Report");
public TableModelReport(){
mainFrame = new JFrame("Aircraft Data");
borderLayout = new BorderLayout();
generateReportButton.addActionListener(new ReportGenerator());
populateTableModel();
mainFrame.setSize(640, 150);
mainFrame.setVisible(true);
mainFrame.getContentPane().setLayout(borderLayout);
mainFrame.add(new JLabel("Aircraft Data"),BorderLayout.NORTH);
table.setModel(tableModel);
mainFrame.getContentPane().add(table,BorderLayout.CENTER);
mainFrame.getContentPane().add(generateReportButton, BorderLayout.SOUTH);
mainFrame.setVisible(true);
}
private void populateTableModel(){
String[] columnNames = {"ID","NAME","SEX"};
String[][] data = {
{"1","Rebecca1","female"},
{"2","Rebecca2","female"},
{"3","Rebecca3","female"},
{"4","Rebecca4","female"}
};
tableModel = new DefaultTableModel(data, columnNames);
}
private void displayReport(){
JasperPrint jasperPrint = generateReport();
JasperViewer jasperViewer = new JasperViewer(jasperPrint);
jasperViewer.setVisible(true);
}
private JasperPrint generateReport(){
JasperPrint jasperPrint = null;
try{
jasperPrint = JasperFillManager.fillReport("E:/Project/Work1/Report3/WebRoot/WEB-INF/classes/reports/AircraftReport.jasper", new HashMap(),new JRTableModelDataSource(tableModel));
}catch(JRException e){
e.printStackTrace();
}
return jasperPrint;
}
private class ReportGenerator implements ActionListener{
public void actionPerformed(ActionEvent e){
displayReport();
}
}
public static void main(String[] args){
new TableModelReport();
}
}
5.webを構成する.xmlはservletを構成することです
6.運行項目
私の運転結果を見てみましょう.
まとめ:
この表形式のレポートは、私たちの前のプレビューレポートに似ていますが、表のスタイルが表示され、印刷レポートの機能もプレビューされます.