1

I have a example for dynamic jasper report.

I am using NetBeans IDE.

I include library files as follows :

Dynamic-jasper-3.2.1.jar
Dynamic-jasper-3.2.1-test.jar
jasperreport-4.5.jar
commons-beanutils-1.8.2.jar 
commons-collections-3.2.1.jar 
commons-digester-1.7.jar 
commons-logging-1.1.jar 
junit-3.8.2.jar
import java.util.Date;
import net.sf.jasperreports.view.JasperDesignViewer;
import net.sf.jasperreports.view.JasperViewer;
import ar.com.fdvs.dj.domain.DynamicReport;
import ar.com.fdvs.dj.domain.builders.FastReportBuilder;
import ar.com.fdvs.dj.test.BaseDjReportTest;

public class FastReportTest extends BaseDjReportTest {
    public DynamicReport buildReport() throws Exception {

        FastReportBuilder drb = new FastReportBuilder();
        drb.addColumn("State", "state", String.class.getName(), 30)
                .addColumn("Branch", "branch", String.class.getName(), 30)
                .addColumn("Product Line", "productLine", String.class.getName(), 50)
                .addColumn("Item", "item", String.class.getName(), 50)
                .addColumn("Item Code", "id", Long.class.getName(), 30, true)
                .addColumn("Quantity", "quantity", Long.class.getName(), 60, true)
                .addColumn("Amount", "amount", Float.class.getName(), 70, true)
                .addGroups(2)
                .setTitle("November \"2006\" sales report")
                .setSubtitle("This report was generated at " + new Date())
                .setPrintBackgroundOnOddRows(true)
                .setUseFullPageWidth(true);

        DynamicReport dr = drb.build();
        return dr;
    }

    public static void main(String a[]) throws Exception {
        FastReportTest test = new FastReportTest();
        // test.
        test.testReport();
        test.exportToJRXML();
        JasperViewer.viewReport(test.jp);    //finally display the report report
        JasperDesignViewer.viewReportDesign(test.jr);
    }
}

I have Got error like this :

Feb 17, 2012 10:30:58 AM ar.com.fdvs.dj.core.DynamicJasperHelper generateJasperReport
INFO: generating JasperReport
Feb 17, 2012 10:30:58 AM ar.com.fdvs.dj.core.DynamicJasperHelper generateJasperReport
INFO: generating JasperReport
Feb 17, 2012 10:30:58 AM ar.com.fdvs.dj.core.DJJRDesignHelper getNewDesign
INFO: obtaining DynamicJasperDesign instance
Exception in thread "main" java.lang.NoSuchMethodError: ar.com.fdvs.dj.domain.DynamicJasperDesign.setPrintOrder(B)V
    at ar.com.fdvs.dj.core.DJJRDesignHelper.getNewDesign(DJJRDesignHelper.java:69)
    at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperDesign(DynamicJasperHelper.java:207)
    at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperReport(DynamicJasperHelper.java:535)
    at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperReport(DynamicJasperHelper.java:518)
    at ar.com.fdvs.dj.test.BaseDjReportTest.testReport(BaseDjReportTest.java:83)
    at FastReportTest.main(FastReportTest.java:34)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
Alex K
  • 22,315
  • 19
  • 108
  • 236
unknown
  • 4,859
  • 10
  • 44
  • 62

1 Answers1

3

In case you are using the DynamicJasper 3.2.1 you should use the externals libraries from the DJ's pom.xml.

The snippet of the pom.xml file:

<dependencies>
    <dependency>
        <groupId>jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>3.7.1</version>
        <exclusions>
            <exclusion>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
            </exclusion>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
            <exclusion>
                <groupId>bouncycastle</groupId>
                <artifactId>bcmail-jdk14</artifactId>
            </exclusion>
            <exclusion>
                <groupId>bouncycastle</groupId>
                <artifactId>bcprov-jdk14</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.1</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.7.0</version>
    </dependency>
    <dependency>
        <groupId>opensymphony</groupId>
        <artifactId>xwork</artifactId>
        <version>1.2.1</version>
        <scope>provided</scope>
       <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>opensymphony</groupId>
        <artifactId>webwork</artifactId>
        <version>2.2.4</version>
        <scope>provided</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.3</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>net.sourceforge</groupId>
        <artifactId>barbecue</artifactId>
        <version>1.1</version>
        <optional>true</optional>
    </dependency>
</dependencies>

As you can see this version (3.2.1) of DJ API is using jasperreports 3.7.1 and etc.

Alex K
  • 22,315
  • 19
  • 108
  • 236
  • its just a xml file or special type of file...?? how to add this file...?? – unknown Feb 17 '12 at 12:28
  • 1
    Did you hear about the [Maven](http://maven.apache.org/)? You should use the correct version of libraries (in module dependencies). – Alex K Feb 17 '12 at 12:41
  • i dont know nything about Maven...?? Is it related to DJ..?? i am using latest libraries, check the starting of my question... If it is nt latest thn tell me... – unknown Feb 17 '12 at 12:44
  • 1
    You should not use the latest version of libraries. You should use the same versions as in posted pom.xml file. For example, you should use `jasperreport-3.7.1.jar`. You can read about the `Apache Maven` - there are a lot of books and articles. – Alex K Feb 17 '12 at 12:47
  • got it... i ll try for it.. if any need thn tell u.... thnk u very much... – unknown Feb 17 '12 at 12:52
  • but how to open pom.xml file....!!! can i edit this file...?? – unknown Feb 17 '12 at 13:09
  • In your case (the `Maven` tool is unknown for you) you can use the pom.xml file as "a simple list" of libraries that you should include to classpath. You do not need to edit this file, it is just for information (in your case). In future you can create the maven based application. – Alex K Feb 17 '12 at 13:22
  • still i got the error : part 1 :Exception in thread "main" java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException at ar.com.fdvs.dj.test.ReportExporter.exportReport(ReportExporter.java:63) at ar.com.fdvs.dj.test.BaseDjReportTest.exportReport(BaseDjReportTest.java:108) at ar.com.fdvs.dj.test.BaseDjReportTest.testReport(BaseDjReportTest.java:97) at FastReportTest.main(FastReportTest.java:34) – unknown Feb 17 '12 at 14:02
  • part 2 :Caused by: java.lang.ClassNotFoundException: com.lowagie.text.DocumentException 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:423) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ... 4 more Java Result: 1 – unknown Feb 17 '12 at 14:02
  • You should add the `itext 2.1.7` library to the classpath – Alex K Feb 17 '12 at 14:37