Jump to content
We've recently updated our Privacy Statement, available here ×

zwseow

Members
  • Posts

    5
  • Joined

  • Last visited

 Content Type 

Profiles

Forum

Events

Featured Visualizations

Knowledge Base

Documentation (PDF Downloads)

Blog

Documentation (Test Area)

Documentation

Dr. Jaspersoft Webinar Series

Downloads

Posts posted by zwseow

  1. Ok this answer comes a bit late to all users of iReport 3.0.0 / all iReport versions without enhanced features.

     

    First create a parameter "pageLast" to be passed from the main report to the summary sub-report.

    Pass $V{PAGE_NUMBER} of the main report to the parameter.

     

    Then create 2 text field boxes just like you would for the normal page numbers in the sub-report.

    1st box: "Page "+new BigDecimal($P{pageLast}.doubleValue()+$V{PAGE_NUMBER}.doubleValue()-1)+" of"

    2nd box: " " + new BigDecimal($V{PAGE_NUMBER}.doubleValue() + $P{pageLast}.doubleValue()-1)

     

    Finally, in your main report, make the sub-report as big as it can go (i.e. until the program tells you it's too big).

    This ensures the sub-report's page numbers are correct, meaning it only works for single sub-reports.......i havent tried multiple sub reports yet.

     

  2. However I try to load my JRXML, I keep getting this error:

        net.sf.jasperreports.engine.JRException: org.xml.sax.SAXException: http://java.sun.com/xml/jaxp/properties/schemaSource

    Here is my code:

        public class DownloadService {
            public static final String TEMPLATE = "C:/reports/report.jrxml";
            protected static Logger logger = Logger.getLogger("service");
        
            Connection conn;
        
            public void download(String type, HashMap params, HttpServletResponse response) throws FileNotFoundException {
                try {
                    //conn =jspDAO.getSqlSession().getConnection();
        
                    try {
                        DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
                        conn = DriverManager.getConnection(
                                "jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:test", "test",
                                "test"); //censored
                        System.out.println("Getting connection.....");
                        System.out.println(conn);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
        
        
                    InputStream reportStream = new FileInputStream(TEMPLATE);
                    System.out.println("Retrieved template");
                    // 3. Convert template to JasperDesign
                    System.out.println("Loading jrxml");
                    System.out.println(reportStream.toString());
                    JasperDesign jd = JRXmlLoader.load(reportStream);
                    System.out.println("Loaded jrxml");
                    // 4. Compile design to JasperReport
                    System.out.println("Compiling JasperReport");
                    JasperReport jr = JasperCompileManager.compileReport(jd);
                    System.out.println("Compiled JasperReport");
                    // 5. Create the JasperPrint object
                    // Make sure to pass the JasperReport, report parameters, and data source
                    System.out.println("Creating JasperReport");
                    JasperPrint jp = JasperFillManager.fillReport(jr, params, conn);
                    System.out.println("Created JasperReport");
                    // 7. Export report
                    System.out.println("Exporting report");
                    JasperExportManager.exportReportToPdfFile(jp, "C:/reports/pdfOutput.pdf");
                } catch (JRException jre) {
                    logger.error("Unable to process download");
                    logger.error(jre);
                    throw new RuntimeException(jre);
                }
            }
        }


    I am unable to get past JasperDesign jd = JRXmlLoader.load(reportStream);

    Here is what my logger outputs:

        weblogic.servlet.internal.ServletResponseImpl@a4120d
        Getting connection.....
        oracle.jdbc.driver.T4CConnection@105036e
        Retrieved template
        Loading jrxml
        java.io.FileInputStream@8aed09
        106428815 [ExecuteThread: '14' for queue: 'weblogic.kernel.Default'] WARN component.ComponentsEnvironment  - Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components
        net.sf.jasperreports.engine.JRException: org.xml.sax.SAXException: http://java.sun.com/xml/jaxp/properties/schemaSource
            at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:243)
            at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:226)
            at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:214)
            at com.jasperreport.biz.DownloadService.download(DownloadService.java:97)
            at com.jasperreport.biz.JasperService.print(JasperService.java:29)
            at com.jasperreport.presentation.JasperController.printReport(JasperController.java:57)
            at com.jasperreport.presentation.JasperController.doPost(JasperController.java:35)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
            at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
            at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
            at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047)
            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
            at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
            at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
            at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
            at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
            at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
        Caused by: org.xml.sax.SAXException: http://java.sun.com/xml/jaxp/properties/schemaSource
            at weblogic.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1203)
            at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:135)
            at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:152)
            at org.apache.commons.digester.Digester.parse(Digester.java:1647)
            at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:239)
            ... 18 more

    Is there anything that I could try to solve this?

    EDIT

    I am unable to post my XML, but it was created with iReports 3.1.3. I am using JasperReport 3.5.3 due to compatibility issues with the latest versions.

     

×
×
  • Create New...