-
FEATURED COMPONENTS
First time here? Check out the FAQ!
tomcat6.0+zk3.6
code like this:
***************
<?xml version="1.0" encoding="GB2312"?>
<zk>
<zscript>
String mcs=arg.get("para");
String mrpno=arg.get("rpno");
String mrpname=arg.get("rpname");
String mls=arg.get("ls");
</zscript>
<window id="pwin" title="Print Report" border="normal" width="480px" closable="true" position="center" maximizable="true">
<borderlayout height="100%">
<north maxsize="24" size="24" border="0">
<button label="Report!" onClick="showReport()" />
</north>
<center border="none" flex="true">
<jasperreport id="report" />
</center>
</borderlayout>
<zscript>
import java.util.*;
import java.io.*;
import java.sql.*;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import my.DBPool;
void showReport() {
Connection conn = null;
CallableStatement cstmt=null;
ResultSet rs=null;
report.setDatasource(null);
Connection conn=DBPool.getPool().getConnection();
cstmt=conn.prepareCall("{call preport(?,?,?)}");
cstmt.setString(1,mrpno);
cstmt.setString(2,mls);
cstmt.setString(3,mcs);
rs=cstmt.executeQuery();
Map parameters = new HashMap();
parameters.put("date1", mcs.substring(0,mcs.indexOf(";")));
parameters.put("date2", mcs.substring(mcs.indexOf(";")+1));
report.setParameters(parameters);
report.setSrc(mrpname);
report.setDatasource( new JRResultSetDataSource(rs));
rs.close();
rs=null;
cstmt.close();
cstmt=null;
conn.close();
conn=null;
}
</zscript>
</window>
</zk>
****************
issue message:
type Status report
message 无法载入 /view/gr5e/z_r5_q3/0/D:/OpenSource/Tomcat 6.pdf。 原因: net.sf.jasperreports.engine.JRException: Unable to get next record.[SQL: 0, S1000]
description The requested resource (无法载入 /view/gr5e/z_r5_q3/0/D:/OpenSource/Tomcat 6.pdf。 原因: net.sf.jasperreports.engine.JRException: Unable to get next record.[SQL: 0, S1000] ) is no longer available, and no forwarding address is known.
--------------------------------------------------------------------------------
report.setSrc(mrpname); report.setDatasource( new JRResultSetDataSource(rs)); rs.close(); rs=null;
I'm not familiar with jasperreports, but you closed the "rs" which could be used by JRResultSetDataSource latter.
ianstai,thank for your reply.it's ok when it remark this code:
//rs.close();
//rs=null;
//cstmt.close();
//cstmt=null;
//conn.close();
//conn=null;
how can I close the 'conn'?
I want close 'conn' after ask jasperreport immediately. but it's wrong. like this:
*******************
<?xml version="1.0" encoding="GB2312"?>
<zk>
<zscript>
String mcs=arg.get("para");
String mrpno=arg.get("rpno");
String mrpname=arg.get("rpname");
String mls=arg.get("ls");
</zscript>
<window id="pwin" title="Print Report" border="normal" width="480px" closable="true" position="center" maximizable="true">
<borderlayout height="100%">
<north maxsize="24" size="24" border="0">
<button label="Report!" onClick="showReport()" />
</north>
<center border="none" flex="true">
<jasperreport id="report" />
</center>
</borderlayout>
<zscript>
import java.util.*;
import java.io.*;
import java.sql.*;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import my.DBPool;
void showReport() {
Connection conn = null;
CallableStatement cstmt=null;
ResultSet rs=null;
report.setDatasource(null);
Connection conn=DBPool.getPool().getConnection();
cstmt=conn.prepareCall("{call preport(?,?,?)}");
cstmt.setString(1,mrpno);
cstmt.setString(2,mls);
cstmt.setString(3,mcs);
rs=cstmt.executeQuery();
Map parameters = new HashMap();
parameters.put("date1", mcs.substring(0,mcs.indexOf(";")));
parameters.put("date2", mcs.substring(mcs.indexOf(";")+1));
report.setParameters(parameters);
report.setSrc(mrpname);
report.setDatasource( new JRResultSetDataSource(rs));
rs.close();
rs=null;
cstmt.close();
cstmt=null;
conn.close();
conn=null;
}
</zscript>
</window>
</zk>
****************
release "conn" in pwin "onClose()". it's ok. code like this:
**************
<?xml version="1.0" encoding="GB2312"?>
<zk>
<zscript>
String mcs=arg.get("para");
String mrpno=arg.get("rpno");
String mrpname=arg.get("rpname");
String mls=arg.get("ls");
</zscript>
<window id="pwin" title="Print" border="normal" width="480px" closable="true" position="center" maximizable="true" onClose="connrelease();">
<borderlayout height="100%">
<north maxsize="24" size="24" border="0">
<button label="Report!" onClick="showReport()" />
</north>
<center border="none" flex="true">
<jasperreport id="report" />
</center>
</borderlayout>
<zscript>
import java.util.*;
import java.io.*;
import java.sql.*;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import my.DBPool;
Connection conn = null;
CallableStatement cstmt=null;
ResultSet rs=null;
Connection conn=DBPool.getPool().getConnection();
void connrelease() {
rs.close();
rs=null;
cstmt.close();
cstmt=null;
conn.close();
conn=null;
}
void showReport() {
report.setDatasource(null);
cstmt=conn.prepareCall("{call preport(?,?,?)}");
cstmt.setString(1,mrpno);
cstmt.setString(2,mls);
cstmt.setString(3,mcs);
rs=cstmt.executeQuery();
Map parameters = new HashMap();
parameters.put("date1", mcs.substring(0,mcs.indexOf(";")));
parameters.put("date2", mcs.substring(mcs.indexOf(";")+1));
report.setParameters(parameters);
report.setSrc(mrpname);
report.setDatasource( new JRResultSetDataSource(rs));
}
</zscript>
</window>
</zk>
*****************
Asked: 2009-05-05 01:04:54 +0800
Seen: 449 times
Last updated: May 07 '09