jasperreprt jsp显示乱吗 高分
为题1
我做的报表在ireport里能显示可在jsp里显示乱吗。
好想他并没有调用AcroRd32.exe
jsp代码如下:<%@ page import="dori.jasper.engine.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%
File reportFile = new File("D:\\myreport\\emptyreport.jasper");
Map parameters = new HashMap();
parameters.put("name", "s");
Connection conn=null;
String dbURL="jdbc:oracle:thin:@J004:1521:oracle";
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection(dbURL,"weijian","weijian");
System.out.println("chenggong");
}catch(Exception e){
e.printStackTrace();
}
byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
conn
);
response.setContentType("application/pdf");
System.out.println("file length="+bytes.length);
response.setContentLength(bytes.length+22);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
//ouputStream.write(bytes)
ouputStream.flush();
ouputStream.close();
%>
问题2response.setContentLength(bytes.length+22);
设置ContentLength必须在得到的长度上加22
我用的是xp web服务器是weblogic8.1 数据库是orcal9
问题3
我在ireport里建了一个reportquery
内容如下
select productname from product where productname like '%$P{name}%'
reportparameters 是 name
运行run report using a connection
错误如下:
Error filling print... weijian $ weijian jdbc:oracle:thin:@J004:1521:oracle java.sql.SQLException: ORA-01006: 赋值变量不存在 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:830) at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527) at dori.jasper.engine.util.JRQueryExecuter.executeQuery(JRQueryExecuter.java:375) at dori.jasper.engine.util.JRQueryExecuter.executeQuery(JRQueryExecuter.java:142) at dori.jasper.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:423) at dori.jasper.engine.fill.JRFiller.fillReport(JRFiller.java:119) at dori.jasper.engine.JasperFillManager.fillReport(JasperFillManager.java:219) at dori.jasper.engine.JasperFillManager.fillReport(JasperFillManager.java:159) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:203) at java.lang.Thread.run(Thread.java:536) NESTED BY : java.sql.SQLException: ORA-01006: 赋值变量不存在 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:830) at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527) at dori.jasper.engine.util.JRQueryExecuter.executeQuery(JRQueryExecuter.java:375) at dori.jasper.engine.util.JRQueryExecuter.executeQuery(JRQueryExecuter.java:142) at dori.jasper.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:423) at dori.jasper.engine.fill.JRFiller.fillReport(JRFiller.java:119) at dori.jasper.engine.JasperFillManager.fillReport(JasperFillManager.java:219) at dori.jasper.engine.JasperFillManager.fillReport(JasperFillManager.java:159) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:203) at java.lang.Thread.run(Thread.java:536) NESTED BY : dori.jasper.engine.JRException: Error executing report query : select productname from product where productname like '%?%' at dori.jasper.engine.util.JRQueryExecuter.executeQuery(JRQueryExecuter.java:379) at dori.jasper.engine.util.JRQueryExecuter.executeQuery(JRQueryExecuter.java:142) at dori.jasper.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:423) at dori.jasper.engine.fill.JRFiller.fillReport(JRFiller.java:119) at dori.jasper.engine.JasperFillManager.fillReport(JasperFillManager.java:219) at dori.jasper.engine.JasperFillManager.fillReport(JasperFillManager.java:159) at it.businesslogic.ireport.IReportCompiler.run(IReportCompiler.java:203) at java.lang.Thread.run(Thread.java:536) Caused by: java.sql.SQLException: ORA-01006: 赋值变量不存在 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:830) at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527) at dori.jasper.engine.util.JRQueryExecuter.executeQuery(JRQueryExecuter.java:375) ... 7 more Print not filled. Try to use an EmptyDataSource...!
谢谢
我的qq是188014584
email yifan513@sohu.com