Как мне скомпилировать jrxml, чтобы получить яшму?

В ant, как мне скомпилировать файл .jrxml, чтобы получить .jasper?

12 ответов

Решение

Есть три способа скомпилировать jrxml в jasper.

  1. Вы можете сделать прямую компиляцию через кнопку компиляции (логотип молотка) в дизайнере iReport.

  2. Вы можете использовать ant для компиляции, как показано в примере Ant Compile.

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

    Ниже приведена задача составления отчета по моему текущему проекту.

    альтернативный текст

    дополнение от Daniel 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
    

Для любого, кто сталкивается с этим вопросом, кто использует Jaspersoft Studio (который, я думаю, заменяет iReports; он очень похож, но все еще бесплатен, основан только на затмении), поищите значок "Составить отчет" в верхней части области редактора. файл jrxml. Его значок, первый в этой строке значков, представляет собой файл с двоичными числами на нем (по крайней мере, в версии 5.6.2):

Jaspersoft Studio - составить отчет

Нажатие на этот значок создаст файл.jasper в том же каталоге, что и файл.jrxml.

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

Я использую iReport 2.0.2 для создания файла яшмы.

Я не нашел логотип молотка, но у меня есть меню create > compile в строке меню создайте файл jasper в папке программных файлов iReport:

Журналы IReport:"Компиляция по сравнению с другими... .\SalesOrderItemsSubreportA4.jasper -> C:\Program Files\JasperSoft\iReport-2.0.2\SalesOrderItemsSubreportA4.java"

В затмении,

  • Установите Jaspersoft Studio для затмения.
  • Щелкните правой кнопкой мыши .jrxml файл и выберите Open with JasperReports Book Editor
  • Открой Design вкладка для .jrxml файл.
  • В верхней части окна вы можете увидеть Compile Report значок.

Используя конструктор iReport 5.6.0, если вы хотите скомпилировать несколько файлов jrxml без предварительного просмотра - перейдите в Инструменты -> Инструмент массовой обработки. Выберите "Тип разработки" как "Компилировать файлы", выберите папку, в которой хранятся все ваши отчеты jrxml, и скомпилируйте их в пакете.

Если вы используете iReport, вы можете легко это сделать.

  1. При нажатии на предварительный просмотр он будет автоматически скомпилирован.
  2. Есть возможность сделать это полностью. Вы можете скомпилировать, выбрав страницу, затем щелкните правой кнопкой мыши, чтобы получить опцию компиляции.
  1. Откройте файл.jrxml в iReport Designer.
  2. Откройте Инспектор отчетов (Окно -> Инспектор отчетов).
  3. Щелкните правой кнопкой мыши имя вашего отчета в верхней части инспектора и выберите "Скомпилировать отчет".

Вы также можете просмотреть свой отчет, чтобы он автоматически компилировался.

Использование версии 5.1.0:

Просто нажмите на превью, и он создаст YourReportName.jasper для вас в том же рабочем каталоге.

если вы используете eclipse IDE, вы просто щелкаете правой кнопкой мыши в файле .jrxml, а затем выбираете параметр компиляции

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

В iReport 5.5.0 просто щелкните правой кнопкой мыши иерархию базы отчетов в средстве просмотра Report Inspector Bloc Window, затем выберитеCompile Report.

Теперь вы можете увидеть результат в консоли внизу. Если ошибок нет, вы можете увидеть что-то вроде этого.

Другие вопросы по тегам