社区
Java EE
帖子详情
急:Hibernate+iReport
zyhowe
2004-07-01 01:27:52
JRDataSource怎么设置?及.jsp如何完成.
Thx!
...全文
176
3
打赏
收藏
急:Hibernate+iReport
JRDataSource怎么设置?及.jsp如何完成. Thx!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zyhowe
2004-07-01
打赏
举报
回复
chshzh2000(地皮) :
Thx!
还请帮帮忙!
偶现在用的是struts+hibernate
ireport的datasource用JRDataSource
public class HibernateQueryResultDataSource implements dori.jasper.engine.JRDataSource {
private String[] fields;
private Iterator iterator;
private Object currentValue;
public HibernateQueryResultDataSource(List list, String[] fields) {
this.fields = fields;
this.iterator = list.iterator();
}
public Object getFieldValue(JRField field) throws JRException {
Object value = null;
int index = getFieldIndex(field.getName());
if (index > -1) {
Object[] values = (Object[])currentValue;
value = values[index];
}
return value;
}
public boolean next() throws JRException {
currentValue = iterator.hasNext() ? iterator.next() : null;
return (currentValue != null);
}
private int getFieldIndex(String field) {
int index = -1;
for (int i = 0; i < fields.length; i++) {
if (fields[i].equals(field)) {
index = i;
break;
}
}
return index;
}
}
现在的问题就是下面的ds得不到正确的值!
HibernateQueryResultDataSource ds = new HibernateQueryResultDataSource(list, fields);
byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),parameters,ds);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
春秋2000
2004-07-01
打赏
举报
回复
进入iReport中的 Datasource/Connections/Datasources 菜单就可以进行可视化的数据源连接。
以下是JSP调用jasper文件:
JSP:
<%@ page contentType="text/html;charset=GBK" %>
<%@ page import="dori.jasper.engine.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%
//数据库连接
Connection conn=null;
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.10:1433;DatabaseName=am;user=sa;password=
sa");
//取到编译后的jasper文件
File reportFile = new File(application.getRealPath("test/iteminfo.jasper"));
//向报表中定义的参数赋值
Map parameters = new HashMap();
Integer i=new Integer(8);
parameters.put("pjId", i);
byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
conn
);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
%>
ecaol
2004-07-01
打赏
举报
回复
UP
学习资料分享:JasperReoprt+
Ireport
学习笔记
学习资料分享:JasperReoprt+
Ireport
学习笔记
struts+spriing+
hibernate
+
ireport
struts+spriing+
hibernate
+
ireport
Jasperreport+
ireport
实践操作及web应用
学习完jasperreports+
ireport
,给我感觉深刻,不仅掌握了报表开发技术,还掌握了如何在web中生成pdf,xls,rtf文件,以下是jasperreports+
ireport
开发知识点: 1.字段,变量,参数,传参 2.矢量图,位图 3.超链接,锚 4.数据源,自定义数据源 5.国际化(I18N) 6.脚本 7.子报表 8.图表(饼图,柱图,线图) 9.导出pdf,xls,html...
JasperReport+
iReport
报表开发手册.pdf
JasperReport+
iReport
报表开发手册.pdf
SpringMVC+
iReport
多张报表连续输出案例
SpringMVC+
iReport
多张报表连续输出案例
Java EE
67,512
社区成员
225,881
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章