繁体   English   中英

如何显示从DefaultTableModel传递的Jasper报告表中的数据

[英]How to display the data in Jasper report table passed from DefaultTableModel

我正在Java Swing中进行项目开发,并在Jasper Report中进行报告。

我已经使用Jasper Report设计了该报告,并且从Java Class调用了该报告。 现在,我想以TableModel的形式发送数据以在报表Table中设置值,但是Jasper报表表未按TableModel的形式显示表数据。

甚至报告文件也无法通过JAR打开。 如果我正在创建jar,则“ Jasper报告”页面将引发异常。

我想像使用Java代码中的tableModelData一样在Report Table中发送表模型数据。 我正在使用以下代码。

   package pmc;
   import java.util.HashMap;
   import javax.swing.table.DefaultTableModel;
   import net.sf.jasperreports.engine.JRException;
   import net.sf.jasperreports.engine.JasperCompileManager;
   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 SimpleReport1 {

   DefaultTableModel tableModel;

   public SimpleReport1() {
     JasperPrint jasperPrint = null;
      TableModelData();
       try {
            JasperCompileManager.compileReportToFile("src/reports/report1.jrxml");
        jasperPrint = JasperFillManager.fillReport("src/reports/report1.jasper", new HashMap(),
                new JRTableModelDataSource(tableModel));
        JasperViewer jasperViewer = new JasperViewer(jasperPrint);
        jasperViewer.setVisible(true);
    } catch (JRException ex) {
        ex.printStackTrace();

}}

private void TableModelData() {
    String[] columnNames = {"Id", "Name", "Department", "Email"};
    String[][] data = {
        {"111", "G Conger", " Orthopaedic", "jim@wheremail.com"},
        {"222", "A Date", "ENT", "adate@somemail.com"},
        {"333", "R Linz", "Paedriatics", "rlinz@heremail.com"},
        {"444", "V Sethi", "Nephrology", "vsethi@whomail.com"},
        {"555", "K Rao", "Orthopaedics", "krao@whatmail.com"},
        {"666", "V Santana", "Nephrology", "vsan@whenmail.com"},
        {"777", "J Pollock", "Nephrology", "jpol@domail.com"},
        {"888", "H David", "Nephrology", "hdavid@donemail.com"},
        {"999", "P Patel", "Nephrology", "ppatel@gomail.com"},
        {"101", "C Comer", "Nephrology", "ccomer@whymail.com"}
    };
    tableModel = new DefaultTableModel(data, columnNames);
}
public static void main(String[] args) {
    new SimpleReport1();
}
}

更改此行:

JasperCompileManager.compileReportToFile("src/reports/report1.jrxml");

至:

JasperCompileManager.compileReportToFile("src/reports/report1.jrxml","src/reports/report1.jasper");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM