我正在尝试学习JasperReports。到目前为止,我已经发现JasperReports可以与NetBeans集成,为此,我使用了几个教程,但无法获得正确的代码。我想手动创建报告。
我创建了示例应用程序,它包含代码:
import java.util.HashMap;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.view.JasperViewer;
public class JavaApplication7 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
String reportSource = "./report.temp.result/newXMLDocument.xml";
String reportDest = "./report.template/HelloReportWorld.html";
HashMap<String, Object> params = new HashMap<String, Object>();
try
{
JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
JasperPrint jasperPrint =
JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource());
JasperExportManager.exportReportToHtmlFile(jasperPrint, reportDest);
JasperViewer.viewReport(jasperPrint);
}
catch (JRException ex)
{
ex.printStackTrace();
}
我还为包含代码
的模板创建了示例文件<?xml version="1.0"?>
<!DOCTYPE jasperReport
PUBLIC "-//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="HelloReportWorld">
<detail>
<band height="200">
<staticText>
<reportElement x="0" y="0" width="500" height="20"/>
<text><![CDATA[Hello Report World!]]></text>
</staticText>
</band>
</detail>
</jasperReport>
这是我在教程中读到的xml文件,xml文件可用于创建jasper报告(它会减慢编译过程)----没关系
我使用空文件来创建.jrxml并使用相同的代码,但我认为我可能缺少XML设计文档,我无法弄清楚从哪里获得xml设计文档以及在netbeans中添加它的位置
我正在尝试运行主文件以获取输出但我得到以下错误列表
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at net.sf.jasperreports.engine.util.JRLoader.<clinit>(JRLoader.java:68)
at net.sf.jasperreports.engine.JRPropertiesUtil.loadProperties(JRPropertiesUtil.java:99)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.initProperties(DefaultJasperReportsContext.java:94)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.<init>(DefaultJasperReportsContext.java:71)
at net.sf.jasperreports.engine.DefaultJasperReportsContext.<clinit>(DefaultJasperReportsContext.java:59)
at net.sf.jasperreports.engine.JasperCompileManager.getDefaultInstance(JasperCompileManager.java:84)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:459)
at javaapplication7.JavaApplication7.main(JavaApplication7.java:39)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 8 more
Java Result: 1
这些是我在运行主文件时发现的错误列表 我面临的问题
1)我是否按照正确的方法创建了碧玉报告
2)我可以在jasper报告创建中使用xml文件作为格式规范吗
3)我如何创建.jrxml文件并在代码中用作jasper报告中的模板,如果我在代码中缺少那些我必须插入xml设计文档
4)我还想知道如何将jasper报告与手动邮寄等数据源集成
三江源..
答案 0 :(得分:0)
您需要在类路径中添加这些jar文件。
对于使用postgres或任何其他数据库,您需要使用ireport。它将为您提供更好的手动使用数据库的方法。
享受。