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

📄 basefield.java

📁 Excel Report是一款基于Excel的报表生成工具
💻 JAVA
字号:
/***********************************************************************
 * Module:  BaseMetaData.java
 * Author:  juny
 * Created: 2006年7月13日 13:44:38
 * Purpose: 所有元数据模板变量的基类
 ***********************************************************************/

package net.excel.report.base;

import java.util.List;


import jxl.CellType;
import jxl.write.Label;
import jxl.write.WritableCell;

/**
 * 元素类模板变量基类
 * @author juny
 */
public abstract class BaseField extends BaseElement {
    /**
     * @param container 包含本模板变量得容器
     */
    public BaseField(ITempletContainer container) {
        super(container);
    }
    
    /**
     * 拷贝默认的单元格。
     * @param param
     * @param value
     * @return
     */
    protected WritableCell copyDefaultCell(Parameter param, Object value){
        WritableCell retCell = param.wc.copyTo(param.destCol, param.destRow);
        if (retCell.getType() == CellType.LABEL){
            Label l = (Label) retCell;
            l.setString(value.toString());
        }
        return retCell;
    }
    
    /**
     * 具体写数据实现方法,继承类重载该函数来实现具体的数据写入操作。<br>
     * 注意:之所以这样设计是为了防止所有继承至BaseField的类都去重载write(),
     * 因为如果直接重载write那么重载的客户write函数必须调用super.write()
     * 来执行如触发监听字段等一些写数据过程中必须触发的额外动作,
     * 如果重载writeImple那么客户程序只需关系自己writeImpl()的实现,而无需
     * 关心在执行完writeImpl()之后还需要去通知其监听域字段等细节。这种实现更安全。
     */
    public abstract boolean writeImpl(Parameter param) throws Exception;
    
    /**
     * @see net.excel.report.base.IElementWriter#write()
     */
    public final boolean write(Parameter param) throws Exception {
        if(writeImpl(param)){
            List formulateListeners = getFormulateListeners();
            if(null != formulateListeners){
                int col = param.wc.getColumn();
                int row = param.wc.getRow();
                String content = param.wc.getContents();
                for(int i=0; i<formulateListeners.size(); i++){
                    ((IFormulateListener)formulateListeners.get(i)).setValue(
                            this.getName(),
                            content,
                            col,
                            row
                    );
                }
                    
            }
            return true;
        }
        return false;
    }
}

⌨️ 快捷键说明

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