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;
}
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;
}