Jump to content
Changes to the Jaspersoft community edition download ×

subreport using connectionExpression


Recommended Posts

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

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...