项目准备用jasperreports动态报表

private JasperPrint fillReport(List dataList, TReportConfig config, HashMap paramMap, List filed)throws Exception{
String fileP[color=olive][/color]ath = request.getSession().getServletContext().getRealPath(config.getModelpath());
String compileFileName = filePath+File.separator+config.getModelname()+REPORT_COMPILE_SUFFIX;

File compileFile = new File(compileFileName);
JasperDesign design = JRXmlLoader.load(filePath + "/" + config.getName() + ".jrxml");
// JRDesignStaticText text=(JRDesignStaticText)(((JRDesignBand)design.getTitle()).getElementByKey("staticText"));

JRDesignBand columnband = (JRDesignBand)design.getColumnHeader();
JRElement[] colelement = columnband.getElements();
JRDesignBand detailBand = (JRDesignBand)design.getDetail();
JRElement[] detailElement = detailBand.getElements();
JRDesignBand colfband = (JRDesignBand)design.getGroups()[0].getGroupFooter();
JRElement[] colfElement = colfband.getElements();
int length = colelement.length;
int x = 0;
int temX = 0;
boolean isdel = false;
for(int j = 0; j < length; j++){
JRDesignStaticText text = (JRDesignStaticText)colelement[j];
JRDesignTextField detailText = (JRDesignTextField)detailElement[j];
JRDesignTextField colftext = (JRDesignTextField)colfElement[j];

if(isdel){
x = temX + text.getWidth();
text.setX(temX);
detailText.setX(temX);
colftext.setX(temX);
temX = x;
if(j + 1 < length){
x = colelement[j + 1].getX();
}
// System.out.println("text x =" + text.getX());
}
for(int i = 0; i < filed.size(); i++){
String fe = (String)filed.get(i);
if(fe.equalsIgnoreCase(text.getText())){
temX = text.getX();
// temWith = text.getWidth();
isdel = true;
columnband.removeElement(text);
detailBand.removeElement(detailText);
colfband.removeElement(colftext);
}


}


// String designFile = filePath+File.separator+config.getModelname() + REPORT_DESIGN_SUFFIX;

}
// 设置编译时用到的库和类路径
JRProperties.setProperty(JRProperties.COMPILER_CLASSPATH,jasperreportsLibFile
+ System.getProperty("path.separator")+"/WEB-INF/classes/");
//设置编译时的临时目录
JRProperties.setProperty(JRProperties.COMPILER_TEMP_DIR,
compileFile.getParentFile().getAbsolutePath());
//编译设计文件
JasperCompileManager.compileReportToFile(design, compileFileName);

// 形成报表类
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(compileFile);
//报表参数
Map reportParameter = getReportParameter(config, paramMap);

//用报表数据填充报表
JasperPrint print = JasperFillManager.fillReport(jasperReport,
reportParameter, new ReportDataSource(dataList,(config.getRemark()!=null&&config.getRemark().equals("dynamic"))?true:false));
return print;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值