JasperReports jrxml到一个java文件

时间:2015-10-09 21:34:47

标签: jasper-reports

一般来说是JasperReports的新手,但我收到了几个jrxml文件。我看到这些可以转换为java文件,但我一直无法使它工作。这些示例似乎创建了一个build.xml文件,并针对jrxml文件运行了ant writeapi,但样本中没有内容

<target name="writeApi" description="Generates a .java version of the report by converting the .jrxml file.">
        <ant dir="../" target="writeApi"/>
    </target>

有任何专业知识吗?

1 个答案:

答案 0 :(得分:0)

  

具有* .jrxml文件扩展名的报告模板源文件被编译为具有* .jasper文件扩展名的序列化对象文件,就像具有* .java文件扩展名的Java源文件一样,转换为带有*的Java字节码二进制文件.class文件扩展名。

执行此jasper报告时会生成表示.jrxml的.java文件,然后创建.jasper文件。

我从未使用过target =“writeApi”,但很好的猜测它类似于

<taskdef name="jrc" classname="net.sf.jasperreports.ant.JRAntCompileTask"> 
  <classpath refid="classpath"/>
</taskdef>


<target name="compile1"> 
  <mkdir dir="./build/reports"/> 
  <jrc 
   srcdir="./reports"
   destdir="./build/reports"
   tempdir="./build/reports"
   keepjava="true"
   xmlvalidation="true">
  <classpath refid="runClasspath"/>
  <include name="**/*.jrxml"/>
  </jrc>
</target> 

注意:keepjava="true",但没有生成.jasper文件,因此它只生成.java文件。

如果您想使用

的特定JRAntApiWriteTask
  

用于批量生成Java源文件的Ant任务,该源文件使用JR API从已编译的报告模板文件或源JRXML文件创建报告设计。

请注意,如果您使用.jasper(已编译的文件)而不是jrxml文件,那么它可能很有用,

你会使用蚂蚁类似物:

<taskdef name="jrc" classname="net.sf.jasperreports.ant.JRAntApiWriteTask"> 
  <classpath refid="classpath"/>
</taskdef>


<target name="writeApi"> 
  <jrc 
   srcdir="./yourreports"
   destdir="./build/java"
   runApi="true"
   >
  <classpath refid="runClasspath"/>
  </jrc>
</target>

注意:我已设置runApi="true",因此也会生成jrxml文件(它们通常更有用。

有关任务的文档,请参阅:JRAntApiWriteTask