项目准备用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;
    }

你可能感兴趣的:(Web,J#)