package com.yc.entity; import net.sf.jasperreports.engine.JasperReport; import javax.servlet.http.HttpSession; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.util.HashMap; public class ReportDetails { private int P;// 随机数 private int formId;// 功能号 private int reportId;// 报表序列号 private HashMap parameter = new HashMap();// 自定义参数集 private String reportName;// 报表名称 private JasperReport JasperReport;// 报表文件 public ReportDetails() { } public ReportDetails(int formId, int reportId) { super(); this.formId = formId; this.reportId = reportId; } public HashMap getParameter() { return parameter; } /** * 处理自定义字段集合 * * @param parameter * @throws UnsupportedEncodingException */ public void setParameter(String parameter) throws UnsupportedEncodingException { if (parameter != null && !"".equals(parameter)) { String[] par = parameter.split(";"); String[] field = null; for (int i = 0; i < par.length; i++) { field = par[i].split("="); if (field.length == 2) { field[1]=field[1].replace("~@#@~",";"); if(field[1]==null || "''".equals(field[1].trim())) { field[1]=""; } this.parameter.put(field[0], URLDecoder.decode(field[1],"UTF-8")); }else if(field.length == 1) { this.parameter.put(field[0],""); } } } } //添加自定义参数 public void setCustomParameters(String field,Object o) { try { this.parameter.put(field, o); } catch (Exception e) { throw e; } } /** * 把formId和reportId添加到parameter,并且处理自定义字段存在session会话 * * @param session */ public void setSession(HttpSession session) { try { if (this.parameter.isEmpty()) { return; } for (String key : this.parameter.keySet()) { String value = this.parameter.get(key) != null ? this.parameter.get(key).toString() : ""; if (value.indexOf("@") != -1) {// 处理会话值 this.parameter.put(key, session.getAttribute(value)); } if (value.indexOf("#p#") != -1) {//处理多个值 this.parameter.put(key, value.replaceAll("#p#", ";")); } } } catch (Exception e) { return; } } public int getP() { return P; } public void setP(int p) { P = p; this.parameter.put("P", p); } public int getFormId() { return formId; } public void setFormId(int formId) { this.formId = formId; this.parameter.put("formId", formId); } public int getReportId() { return reportId; } public void setReportId(int reportId) { this.reportId = reportId; this.parameter.put("reportId", reportId); } public String getReportName() { return reportName; } public void setReportName(String reportName) { this.reportName = reportName; } public JasperReport getJasperReport() { return JasperReport; } public void setJasperReport(JasperReport jasperReport) { JasperReport = jasperReport; } }