如何编译jrxml以获取jasper?


Answers:


70

有三种方法可以将jrxml编译为jasper。

  1. 您可以通过iReport设计器上的“编译”按钮(锤子徽标)进行直接编译。

  2. 您可以使用Ant进行编译,如Ant Compile Sample中所示

    <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>
    

    以下是我当前项目的报告编译任务。

    替代文字

    另外从丹尼尔Rikowski

  3. 您还可以使用JasperCompileManager类从Java代码进行编译。

    JasperCompileManager.compileReportToFile(
                    "our_jasper_template.jrxml", // the path to the jrxml file to compile
                    "our_compiled_template.jasper"); // the path and name we want to save the compiled file to
    

您可以添加如何将数据源链接到示例#3吗?
Daniel W.

我建议您为#1添加图像-“ hammer”徽标...图片使其显而易见。
Don Cheadle

不再支持iReport Designer。最好现在使用Jaspersoft Studio。
Pierre

请以文本形式而不是图像形式发布您的ant build.xml文件。它被截断了,人们无法复制和粘贴它。
罗伯特

30

对于使用Jaspersoft Studio(我认为它正在替换iReports;它非常相似,仍然是免费软件,仅基于eclipse)遇到此问题的任何人,请在的编辑器区域顶部查找“ Compile Report”图标。 jrxml文件。其图标位于该图标行的最前面,是一个带有二进制数字的文件(至少在版本5.6.2中):

Jaspersoft Studio-编译报告

单击此图标将在与.jrxml文件相同的目录中生成.jasper文件。


14

使用Maven是自动的:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>jasperreports-maven-plugin</artifactId>
  <configuration>
    <outputDirectory>target/${project.artifactId}/WEB-INF/reports</outputDirectory>
  </configuration>
  <executions>
    <execution>
      <phase>prepare-package</phase>
      <inherited>false</inherited>
      <goals>
         <goal>compile-reports</goal>
      </goals>
    </execution>
  </executions>
  <dependencies>
    <dependency>
       <groupId>net.sf.jasperreports</groupId>
       <artifactId>jasperreports</artifactId>
       <version>3.7.6</version> 
    </dependency>
    <dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
       <version>1.2.16</version>
       <type>jar</type>
     </dependency>
  </dependencies>
</plugin>

如果使用sping boot jar,<phase> prepare-package </ phase>非常重要。
阿伦杰夫

9

我正在使用iReport 2.0.2生成jasper文件。

我没有找到锤子徽标,但是我create > compile在菜单栏中有一个菜单,该菜单在iReport程序文件文件夹中创建jasper文件:

IReport日志:“正在编译...。\ SalesOrderItemsSubreportA4.jasper-> C:\ Program Files \ JasperSoft \ iReport-2.0.2 \ SalesOrderItemsSubreportA4.java”


1
如果您有新问题,请单击“提问”按钮提问。如果它有助于提供上下文,请包括指向该问题的链接。
user35443

1
@ user35443,这不是一个新问题,实际上提供了原始问题的答案。
DB5 2015年

5

如果要在不预览的情况下编译多个jrxml文件,请使用iReport Designer 5.6.0-转到“工具”->“大量处理工具”。选择“详细说明类型”作为“编译文件”,选择存储所有jrxml报告的文件夹,然后批量编译它们。


4

如果您使用的是iReport,则可以轻松实现。

  1. 当您单击预览时,它将自动编译。
  2. 有一个使其符合的选项。您可以通过选择页面进行编译,然后右键单击将获得编译选项。

4

在日食中

  • 安装Jaspersoft Studio进行蚀。
  • 右键单击该.jrxml文件,然后选择Open with JasperReports Book Editor
  • 打开文件的Design标签.jrxml
  • 在窗口顶部,您可以看到该Compile Report图标。

3

使用5.1.0版:

只需单击预览,它将在同一工作目录中为您创建YourReportName.jasper。


2
  1. 在iReport设计器中打开.jrxml文件。
  2. 打开报告检查器(窗口->报告检查器)。
  3. 右键单击检查器顶部的报告名称,然后单击“编译报告”。

您也可以预览报告,以便自动进行编译。


0
 **A full example of POM file**.

Command to Build All **Jrxml** to **Jasper File** in maven
If you used eclipse then right click on the project and Run as maven Build and add goals antrun:run@compile-jasper-reports 


compile-jasper-reports is the id you gave in the pom file.
**<id>compile-jasper-reports</id>**




<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.test.jasper</groupId>
  <artifactId>testJasper</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>TestJasper</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>6.3.0</version>
    </dependency>
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports-fonts</artifactId>
        <version>6.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>2.4.6</version>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.6</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>


  </dependencies>
    <build>
    <pluginManagement>
    <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>       
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.8</version>
            <executions>
                <execution>
                    <id>compile-jasper-reports</id>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <phase>generate-sources</phase>
                    <configuration>
                        <target>
                            <echo message="Start compile of jasper reports" />
                            <mkdir dir="${project.build.directory}/classes/reports"/>
                            <echo message="${basedir}/src/main/resources/jasper/jasperreports" />
                            <taskdef name="jrc" classname="net.sf.jasperreports.ant.JRAntCompileTask"
                                classpathref="maven.compile.classpath" />
                                <jrc srcdir="${basedir}/src/main/resources/jasper/jasperreports" destdir="${basedir}/src/main/resources/jasper/jasperclassfile"
                                  xmlvalidation="true">
                                <classpath refid="maven.compile.classpath"/>
                                <include name="**/*.jrxml" />
                            </jrc>
                        </target>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
    </pluginManagement>
</build>
</project>

0

iReport 5.5.0中,只需在Report Inspector Bloc Window查看器中右键单击报表库层次结构,然后单击Compile Report。

在iReport中,只需在“报表”中右键单击报表库层次结构

现在,您可以在控制台中看到结果。如果没有错误,您可能会看到类似的信息。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.