iReport學習二:javabean作為資料來源
阿新 • • 發佈:2019-01-28
在IReport中是Javabean作為資料來源 因為在專案中用到報表功能學習了這個Ireport做為報表設計,期初遇到很多問題,最後還是出來了
8、效果圖效果圖如下:
初次研究 網上也看了很多文章雜七雜八 來點簡單的 關注重點一些基本操作就不在描述了
1、看看實體類 getXXX() setXXX()就濾過了
2、開啟軟體 將javabean所在class新增到工具中的classpath中,我這裡用的是maven 選擇後點擊儲存package org.share.domain.tree.entity; import java.io.Serializable; import java.util.ArrayList; import java.util.List; public class UserInfo implements Serializable { private static final long serialVersionUID = -7171469571123003370L; private String user_id; private String user_name; private String age; private String phone; private String address; public static List<UserInfo> getListUserInfo(){ UserInfo u= new UserInfo(); u.setAddress("aaaaaaaaaaaaa"); u.setAge("2"); u.setPhone("1232423423"); u.setUser_name("aaaaa"); List<UserInfo> user=new ArrayList<UserInfo>(); user.add(u); user.add(u); return user; } }
3、我用了個list控制元件 加上一個矩形控制元件 如圖
4、把Javabean中的欄位新增到list控制元件中的資料來源中 如圖
5、將欄位新增到控制元件上 如圖
6、給元件list設定資料來源 connection/datasource expression 表示式:$P{REPORT_PARAMETERS_MAP}.get("beans") 因為我後臺map中設定的名就叫beans
7、後臺程式碼 我用的是spingmvn 只有來生成pdf檔案 沒其他操作:
@RequestMapping(value="/csd",method=RequestMethod.GET) public void createFilePdfsd(HttpServletRequest request){ //路徑動態錄入需要生產的pdf檔案位置 String fileepath=request.getSession().getServletContext().getRealPath("template/repConReport.pdf"); try{ //判斷檔案是否存在 File f=new File(fileepath); if(!f.exists()){ f.createNewFile(); } //自定義資料來源 Map<String, Object> parameters=new HashMap<String, Object>(); //獲取Javabean list List<UserInfo> userList= UserInfo.getListUserInfo(); //資料來源為javabean JRDataSource data= new JRBeanCollectionDataSource(userList); //設定資料 parameters.put("beans", data); //模板檔案 String ctxpathIreport=request.getSession().getServletContext().getRealPath("jasper/report5.jasper"); File reportFile=new File(ctxpathIreport); //實際中編譯報表很耗時,採用Ireport編譯好的報表 JasperReport jasperReport=(JasperReport)JRLoader.loadObject(reportFile); //填充資料 JasperPrint jasperPrint=JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource()); //匯出pdf檔案 JasperExportManager.exportReportToPdfFile(jasperPrint,fileepath); }catch (Exception e) { e.printStackTrace(); } }
8、效果圖效果圖如下: