首页 > 代码库 > ireport报表应用:

ireport报表应用:

ireport报表:

 报表工具的应用:

注意:

技术分享

报表属性要选择这两个,否则不支持中文,显示出来时有问题。

java代码:

 1     @RequestMapping(params = "Abnormalreport")
 2     public String Abnormalreport(Model model, HttpServletRequest request) throws Exception {
 3         TSUser tsUser = ResourceUtil.getSessionUserName();
 4         String id = request.getParameter( "id" );
 5         //实现JRDataSource接口
 6         JRDataSource jrDataSource = null;        
 7         //创建list集合,存储PuddJasper对象        
 8         Collection<PuddJasper> sourceList = new ArrayList<PuddJasper>();
 9         //根据主键查询Pudd实体
10         Pudd pudd = puddService.get(Pudd.class, oConvertUtils.getInt(id));
11         //初始化Pudd表对应的Jasper实体对象(用来复制pudd表对象数据)
12         PuddJasper puddJasper = new PuddJasper();            
13         // 将对象1转换为对象2,并给相同属性字段复制
14         TargetUtils.moveObject1ToObject2(pudd, puddJasper);
15     
16         //把puddJasper放到list集合中
17         sourceList.add( puddJasper );        
18         jrDataSource = new JRBeanCollectionDataSource( sourceList );
19         
20         model.addAttribute( "url","/WEB-INF/jasper/pudd.jasper" );
21         model.addAttribute( "format", "pdf" ); // 报表格式
22         model.addAttribute( "jrMainDataSource", jrDataSource );        
23         return "iReportView";
24     }

Jsp页面:

 1     <t:dgToolBar title="打印" icon="icon-print" url="pudd.do?Abnormalreport" funname="export2"></t:dgToolBar>
 2 
 3 <script>    
 4     function export2(title,url, id) {
 5         var rowData = http://www.mamicode.com/$(‘#‘+id).datagrid(‘getSelected‘);
 6         if (!rowData) {
 7             tip(‘请选择编辑项目‘);
 8             return;
 9         }
10         url += ‘&id=‘+rowData.id;
11         createexportwindow(title,url);
12     }

注意:该Jsp界面的代码是jeecg框架自动封装的,可能不适用于一般的jsp界面。

附带关于ireport报表的链接,挺详细的:http://blog.csdn.net/liaodehong/article/details/51416325

 

 另:puddJasper其实就是一个实体类(Model),把报表中需要显示的字段全部从pudd中复制到puddJasper中,并生成get,set方法.所以可以puddJasper.setDish(pudd.getDish())下图:

puddJasper其实就是一个实体类(Model),把报表中
需要显示的字段全部从pudd中复制到puddJasper中,
并生成get,set方法.
所以可以puddJasper.setDish(pudd.getDish())取值。

如下图:

如果需要在报表中显示多行数据,如下。最笨且最麻烦的办法是把puddJasper对应的
字段(重复字段)命名为如:name1,name2,name3, 可通过判断后用
puddJasper.setName1(pudd.getName());
puddJasper.setName2(pudd.getName());
puddJasper.setName3(pudd.getName()); 一一赋值。

技术分享

 

ireport报表应用: