您的位置:首页 > 编程语言 > ASP

Jasperreports+jaspersoft studio学习教程(六)- 分组显示数据

2018-01-27 14:27 501 查看
 
 接着上一篇的内容来看报表分组显示数据

6.1 设计报表模板(在DemoReport4.jrxml上修改)

6.1.1 模板右键 -> Create Group ,跳出Group Band的页面,命名并选中分组方式






点击Next ,只勾选 Group Header。






然后Finish。完成后模板中多出 Group2 Group Header1 的Band






6.1.2 将deptId 拖入 Group Header中 ,会跳出 TextField Wizard框,选中 NoCalculation Function 。






双击 $F{deptId} 会弹出Expression editor框






 

设计报表模板如下:






保存后,替换项目中的jrxml文件。

6.2 编写servlet注入数据源(在JasperServlet3上修改)




protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Map<String,Object> parameters = new HashMap<String,Object>(16);

String jrxmlPath = request.getServletContext().getRealPath("/")+"/jrxml/DemoReport4.jrxml";
//由jrxml文件编译后生产jasper文件的路径
String jasperPath = request.getServletContext().getRealPath("/")+"/jasper/DemoReport4.jasper";

FileInputStream isRef = null;
ServletOutputStream sosRef = null;

try {
//编译jrxml生产jasper文件
JasperCompileManager.compileReportToFile(jrxmlPath, jasperPath);

isRef = new FileInputStream(new File(jasperPath));
sosRef = response.getOutputStream();
//组装list数据源
List<User> list = new ArrayList<User>();
User user1 = new User(1,"小明",20,1);
User user2 = new User(2,"小虎",20,1);
User user3 = new User(3,"小风",20,2);
User user4 = new User(4,"小东",20,2);
User user5 = new User(5,"小南",20,3);
User user6 = new User(6,"小翔",20,3);
list.add(user1);
list.add(user2);
list.add(user3);
list.add(user4);
list.add(user5);
list.add(user6);

//new JRBeanCollectionDataSource(list) 以javaBean为数据源注入报表数据
JasperRunManager.runReportToPdfStream(isRef, sosRef, parameters, new JRBeanCollectionDataSource(list));
response.setContentType("application/pdf");
} catch (JRException e) {

e.printStackTrace();
}finally {
sosRef.flush();
sosRef.close();
}
}



启动tomcat,并访问。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐