Jave,报告不显示jasper报告



我的程序有问题,我想在"送货通知单上传"时生成此报告。按钮按下。我已经创建了我使用jasper报告的报告,它正在预览中工作但是当我尝试连接到我的java应用程序时,当我按下按钮时没有显示。

这是我的代码:

btnNewButton_1 = new JButton("Delivery Note Upload");
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/storge?autoReconnect=true&useSSL=true","root","");
JasperDesign jdesign = JRXmlLoader.load(null, "C:\Users\MAlasmari\eclipse-workspace\Test\src\MA\Blank_A41.jrxml");

String sqlC= "select *,max(location),max(Date) from itemdelivery";
JRDesignQuery upquery = new JRDesignQuery();
upquery.setText(sqlC);

jdesign.setQuery(upquery);

JasperReport jreport = JasperCompileManager.compileReport(jdesign);
JasperPrint jprint = JasperFillManager.fillReport(jreport, null, conn);
JasperViewer.viewReport(jprint, true);

} catch (JRException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "net.sf.jasperreports.engine.JasperReportsContext.getProperty(String)" because "this.jasperReportsContext" is null
at net.sf.jasperreports.engine.JRPropertiesUtil.getProperty(JRPropertiesUtil.java:150)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createParser(JRXmlDigesterFactory.java:1571)
at net.sf.jasperreports.engine.xml.JRXmlDigesterFactory.createDigester(JRXmlDigesterFactory.java:1549)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:263)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:219)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:194)
at MA.UserM$3.actionPerformed(UserM.java:131)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)

您在加载".jrxml"时传递了一个null作为上下文。文件。这导致了load方法实现中的NPE。

您需要构造一个报表上下文实例,或者调用DefaultJasperReportsContext.getInstance()来创建一个默认上下文。然后在load调用中传递它而不是null

我解决了这个问题,它来自数据库连接:

JasperPrint jprint = JasperFillManager.fillReport(jreport, null, conn);

上面连接代码中的是错误的因此,我创建了fileforsql连接,并在这里调用文件就像这样。

JasperPrint jprint = JasperFillManager.fillReport(jreport, null, connection);

最新更新