简体   繁体   English

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

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

I am working on a project in Java Swing and reporting in Jasper Report. 我正在Java Swing中进行项目开发,并在Jasper Report中进行报告。

I have designed the report using Jasper Report and I am calling that report from Java Class . 我已经使用Jasper Report设计了该报告,并且从Java Class调用了该报告。 Now I want to send the data in the form of TableModel to set value in report Table but jasper report table is not displaying the table data as set in the form of TableModel. 现在,我想以TableModel的形式发送数据以在报表Table中设置值,但是Jasper报表表未按TableModel的形式显示表数据。

Even the report file is not opening through JAR . 甚至报告文件也无法通过JAR打开。 If I am creating the jar The Jasper Report page is throwing the exception. 如果我正在创建jar,则“ Jasper报告”页面将引发异常。

I want to send the table model data in Report Table as in tableModelData in java code. 我想像使用Java代码中的tableModelData一样在Report Table中发送表模型数据。 I am using the following code. 我正在使用以下代码。

   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();
}
}

change this line: 更改此行:

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

to: 至:

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

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

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