⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reportconfigmanager.java

📁 Excel Report是一款基于Excel的报表生成工具
💻 JAVA
字号:
/*
 * Created on 2006-6-2
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package net.excel.report.config;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import net.excel.report.Logger;

import org.dom4j.Element;




/**
 * 报表配置信息管理对象,该类管理整个配置文件的所有配置信息,包括数据源配置信息,报表定义配置信息等等。
 * 外部需要查询任何用户定义的配置信息都通过该对象来取得。
 * @author juny 
 */
public class ReportConfigManager {
    private static Logger log = Logger.getLogger(ReportConfigManager.class);
    /*private static ReportConfigManager config = null;
    
    public static ReportConfigManager getConfigManager(String configFileName){
        if(null == config){
            config = new ReportConfigManager(configFileName);
        }
        return config;
    }*/
    
    /**
     * 构造一个报表配置信息管理对象。
     */
    public  ReportConfigManager(String configFileName){
        dataSources = new HashMap();
        reports = new HashMap();
        List errors = new ArrayList();
        try{
            org.dom4j.Document doc = XMLHelper.createSAXReader(configFileName, errors).read( new File(configFileName) );
            if(errors.size() > 0){
                //reprot error infomation.
                log.error("Couldn't load xml file!" + errors.toString());
                return;
            }
            
            Element hmNode = doc.getRootElement();
            Iterator root = hmNode.elementIterator();
            String name = "";
            while (root.hasNext()){
                Element node = (Element)root.next();
                name = node.attributeValue("name");
                if(node.getName().equals(DataSourceConfig.DATASOURCE)){
                    DataSourceConfig source = new DataSourceConfig(name);
                    source.bindDataSource(node);
                    dataSources.put(name, source);
                }else if(node.getName().equals(ReportConfig.REPORT)){
                    ReportConfig report = new ReportConfig(this);
                    report.bindReport(node);
                    reports.put(name, report);
                }
            }
            
        }catch(Exception e){
           log.error(e.getMessage());
        }
    }
    
    /**
     * 根据传入的数据源名称获得该数据源对应的数据源配置信息对象。
     * @param dataSourceName	数据源名称
     * @return	数据源配置信息对象
     */
    public DataSourceConfig getDataSource(String dataSourceName){
        return (DataSourceConfig)dataSources.get(dataSourceName);
    }
    
    /**
     * 根据传入的报表名称获得该报表对应的配置信息对象。
     * @param reportName	报表名称
     * @return	非空 报表配置对象	<br>
     * 			否则 返回null
     */
    public ReportConfig getReport(String reportName){
        return (ReportConfig)reports.get(reportName);
    }
    
    /**
     * 设置报表模板文件的存放路径。
     * @param path
     */
    public void setTempletFilePath(String path){
        log.info("Templete file path: " + path);
        this.templetFilePath = path;
    }
    
    /**
     * 取得报表模板文件路径信息
     * @return
     */
    public String getTempletFilePath(){
        return this.templetFilePath;
    }
    
    public String toString(){
        StringBuffer ret = new StringBuffer();
        ret.append(" -----------Report system ----------------\n");
        ret.append(" dataSource: \n");
        ret.append(dataSources.toString());
        ret.append(" \n report: \n");
        ret.append(reports.toString());
        ret.append(" -------------end---------------------------");
        return ret.toString();
    }
    
    private Map dataSources = null;
    private Map reports = null;
    private String templetFilePath = "";
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -