gpt4 book ai didi

java - 如何显示从DefaultTableModel传递过来的Jasper报表中的数据

转载 作者:太空宇宙 更新时间:2023-11-04 13:37:46 24 4
gpt4 key购买 nike

我正在使用 Java Swing 开发一个项目,并使用 Jasper Report 进行报告。

我使用 Jasper Report 设计了该报告,并且我从以下位置调用该报告Java 类。现在我想以TableModel的形式发送数据以在报表表中设置值,但是jasper报表没有显示以TableModel的形式设置的表数据。

甚至报告文件也没有通过 JAR 打开。如果我正在创建 jar Jasper 报告页面会引发异常。

我想发送报表表中的表模型数据,就像java代码中的tableModelData一样。我正在使用以下代码。

   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");

关于java - 如何显示从DefaultTableModel传递过来的Jasper报表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31542051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com