一般来说是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>
有任何专业知识吗?
答案 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