2006 IR Open Discussion Posted August 20, 2006 Share Posted August 20, 2006 By: Basirudin Rachman - bsrd subreport using connectionExpression 2003-12-23 02:40 Hi, i'm newbie using jasperreport I tried to create report fill with subreport connected using connectionExpression. But the subreport didn't show. Here is my code : 1. Main report (spk.xml): ... <parameter name="title" isForPrompting="true" class="java.lang.String"> <defaultValueExpression><![CDATA[string.valueOf("Surat Perintah Kerja (SPK)")]]></defaultValueExpression> </parameter> <parameter name="woNbr" isForPrompting="false" class="java.lang.String"/> <parameter name="subHeader" isForPrompting="false" class="dori.jasper.engine.JasperReport"/> <parameter name="subreportConn" isForPrompting="false" class="java.sql.Connection"/> ... <subreport isUsingCache="true"> ... <subreportParameter name="woNbr"> <subreportParameterExpression><![CDATA[$P{woNbr}]]></subreportParameterExpression> </subreportParameter> <connectionExpression><![CDATA[$P{subreportConn}]]></connectionExpression> <subreportExpression class="dori.jasper.engine.JasperReport"> <![CDATA[$P{subHeader}]]> </subreportExpression> </subreport> ... 2. Sub report (spk_header.xml) ... <parameter name="title" isForPrompting="true" class="java.lang.String"/> <parameter name="woNbr" isForPrompting="true" class="java.lang.String"/> <queryString><![CDATA[select * from spk where WODWONBR = $P{woNbr} order by WOLLINENBR]]></queryString> <field name="WODWONBR" class="java.lang.String"/> <field name="VHCNOPOL" class="java.lang.String"/> <field name="DRVNAME" class="java.lang.String"/> <field name="CREATED_DATETIME" class="java.sql.Timestamp"/> <field name="WODSTARTDATETIME" class="java.sql.Timestamp"/> <field name="WODENDDATETIME" class="java.sql.Timestamp"/> <field name="WODNOTES" class="java.lang.String"/> <field name="WOLLINENBR" class="java.lang.String"/> <field name="SVTDESCR" class="java.lang.String"/> .... 3. jsp code (jasper_subreport.jsp), with 4 query string : title, woNbr, jasperFile, and jasperSubreportFile ... // parameters distinct for every page String title = request.getParameter("title"); String woNbr = request.getParameter("woNbr"); // jasper file parameter passed via query string String jasperFile = request.getParameter("jasperFile"); // jasper subreport file passed via guery string String jasperSubreportFile = request.getParameter("jasperSubreportFile"); File reportFile = new File(application.getRealPath("/reports/" + jasperFile + ".jasper")); File subreportFile = new File(application.getRealPath("/reports/" + jasperSubreportFile + ".jasper")); JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath()); JasperReport jasperSubreport = (JasperReport)JRLoader.loadObject(subreportFile.getPath()); // Third, get a database connection Class.forName ("com.sap.dbtech.jdbc.DriverSapDB"); java.sql.Connection conn = java.sql.DriverManager.getConnection ("jdbc:sapdb://basir/TST","dba", "dba"); Map parameters = new HashMap(); parameters.put("subHeader", jasperSubreport); parameters.put("title", title); parameters.put("woNbr", woNbr); parameters.put("subreportConn",conn); JasperPrint jasperReportPrint = JasperManager.fillReport(jasperReport,parameters, conn); JRHtmlExporter exporter = new JRHtmlExporter(); StringBuffer sbuffer = new StringBuffer(); Map imagesMap = new HashMap(); session.setAttribute("IMAGES_MAP", imagesMap); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperReportPrint); exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out); exporter.setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap); exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "image.jsp?image="); exporter.exportReport(); ... i'm trying to pass the woNbr parameter to the subreport woNbr parameter but it didn't work. FYI if only the spk_header.xml i try to show with other jsp without subreport it showed. so please give me an advice to solve this problem Basirudin Rachman Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now