亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? baseband.java

?? Excel Report是一款基于Excel的報表生成工具
?? JAVA
字號:
/***********************************************************************
 * Module:  BaseBand.java
 * Author:  juny
 * Created: 2006年7月13日 15:00:31
 * Purpose: Defines the Class BaseBand
 ***********************************************************************/

package net.excel.report.base;

import java.util.ArrayList;
import java.util.List;

import net.excel.report.base.element.Templet;
import net.excel.report.config.ReportConfig.SheetConfig;
import net.excel.report.util.AnalyseTempletTool;
import jxl.Range;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;

/**
 * 所有帶的基類(組也是屬于帶的一種). 帶表示報表中的一個可重復輸出的區域,
 * 該區域根據帶的不同類型會產生不同的輸出效果,如band它所對應的body區是根據band對應的數據源的記錄條數來進行輸出的,
 * 在band中假設對應的數據源為5條記錄那么該band對應的body區也會打印5次。
 * 
 * @author juny
 */
public abstract class BaseBand extends BaseElement implements ITempletContainer {
    /**
     * @param container 父容器對象。
     */
    public BaseBand(ITempletContainer container) {
        super(container);
    }
    
    /**
     * 設置當前報表配置文件信息。這個函數以后可能會移掉,當前配置文件信息對象應該放在
     * 參數對象中去給當前所有對象共享才比較合理,而無需要每個對象都去顯式的設置。
     * @param sheetConfig
     */
    public void setReportConfig(SheetConfig sheetConfig){
        this.sheetConfig = sheetConfig;
    }
    protected SheetConfig sheetConfig = null;
    
    /**
     * 取得當前band對象在報表寫入數據的起始行
     */
    public int getRealBeginRow(){
        return realBeginRow;
    }
    protected int realBeginRow = 0;
    
    /**
     * 取得當前band對象總共寫入了多少行數據
     */
    public int getRealRowCount(){
        return realRowCount;
    }
    protected int realRowCount = 0;

    /**
     * 設置頭容器。
     */
    public void setHearder() {
        this.headTemplet = new Templet(this.getParentContainer());
        curTemplet = this.headTemplet;
    }

    /**
     * 設置明細容器
     * @param beginCol
     * @param beginRow
     */
    public void setDetail(int beginCol, int beginRow) {
        this.detailTemplet = new Templet(this.getParentContainer());
        this.detailTemplet.setBegin(beginCol, beginRow);
        this.curTemplet.setEnd(beginCol, beginRow);
        this.curTemplet = this.detailTemplet;
    }

    /**
     * 設置當前帶的結束位置
     * @param beginCol
     * @param beginRow
     */
    public void setBottom(int beginCol, int beginRow) {
        this.bottomTemplet = new Templet(this.getParentContainer());
        this.bottomTemplet.setBegin(beginCol, beginRow);
        this.curTemplet.setEnd(beginCol, beginRow);
        this.curTemplet = this.bottomTemplet;
    }
    
    /* (non-Javadoc)
     * @see excel.report.util.ITempletContainer#setBegin(int, int)
     */
    public void setBegin(int beginCol, int beginRow) {
        curTemplet.setBegin(beginCol, beginRow);
    }

    /* (non-Javadoc)
     * @see excel.report.util.ITempletContainer#setEnd(int, int)
     */
    public void setEnd(int endCol, int endRow) {
        curTemplet.setEnd(endCol, endRow);
    }

    /**
     * 判斷傳入模板信息是否是當前容器對象的頭。
     * @param templet	模板定義內容
     * @return true 當前傳入模板是當前帶對象的頭 false 表示不是
     */
    public boolean isHead(String templet) {
        return isSameBand(templet);
    }

    /**
     * 判斷傳入模板信息是否是當前容器對象的body區。
     * @param templet	模板定義內容
     * @return true 當前傳入模板是當前帶對象的body區 false 表示不是
     */
    public boolean isDetail(String templet) {
        return isSameBand(templet);
    }

    /**
     * 判斷傳入模板信息是否是當前容器對象的foot區。
     * @param templet	模板定義內容
     * @return true 當前傳入模板是當前帶對象的foot區 false 表示不是
     */
    public boolean isBottom(String templet) {
        return isSameBand(templet);
    }

    /**
     * 判斷傳入模板信息是否是當前容器對象的結束位置。
     * @param templet	模板定義內容
     * @return true 當前傳入模板是當前帶對象的結束位置 false 表示不是
     */
    public boolean isEnd(String templet) {
        return isSameBand(templet);
    }
    
    private boolean isSameBand(String templet){
        String name = AnalyseTempletTool.getPorperty(
                templet, 
				AnalyseTempletTool.PROPERTY_NAME
        		);
        if(this.getName().equals(name)){
            return true;
        }
        return false;
    }
    
    /*
     * @see excel.report.util.ITempletContainer#getContainElements()
     */
    public List getContainElements() {
        return null;
    }

    /*
     * @see excel.report.util.ITempletContainer#getElement(java.lang.String)
     */
    public BaseElement getElement(String name) {
        BaseElement element = null;
        if(null != headTemplet){
	        element = headTemplet.getElement(name);
	        if(null != element){
	            return element;
	        }
        }
        
        if(null != detailTemplet){
	        element = this.detailTemplet.getElement(name);
	        if(null != element){
	            return element;
	        }
        }
        
        if(null != bottomTemplet){
	        element = this.bottomTemplet.getElement(name);
	        if(null != element){
	            return element;
	        }
        }
        return null;
    }

    /*
     * @see excel.report.util.ITempletContainer#addElement(excel.report.util.BaseElement)
     */
    public void addElement(BaseElement element, int col, int row) {
        this.curTemplet.addElement(element, col, row);
    }

    /*
     * @see excel.report.util.ITempletContainer#getElement(int, int)
     */
    public BaseElement getElement(int col, int row) {
        BaseElement element = null;
        if(null != headTemplet){
	        element = headTemplet.getElement(col, row);
	        if(null != element){
	            return element;
	        }
        }
        
        if(null != this.detailTemplet){
	        element = this.detailTemplet.getElement(col, row);
	        if(null != element){
	            return element;
	        }
        }
        
        if(null != this.bottomTemplet){
	        element = this.bottomTemplet.getElement(col, row);
	        if(null != element){
	            return element;
	        }
        }
        return null;
    }

    /*
     * @see excel.report.util.ITempletContainer#getBeginCol()
     */
    public int getBeginCol() {
        return null == headTemplet ? 0 : headTemplet.getBeginCol();
    }

    /*
     * @see excel.report.util.ITempletContainer#getBeginRow()
     */
    public int getBeginRow() {
        return null == headTemplet ? 0 : headTemplet.getBeginRow();
    }

    /*
     * @see excel.report.util.ITempletContainer#getEndCol()
     */
    public int getEndCol() {
        return null == bottomTemplet ? 0 : bottomTemplet.getEndCol();
    }

    /* 
     * @see excel.report.util.ITempletContainer#getEndRow()
     */
    public int getEndRow() {
        return null == bottomTemplet ? 0 : bottomTemplet.getEndRow();
    }
    
    /* (non-Javadoc)
     * 添加一個合并單元格信息到容器中。
     */
    public boolean addMergedCell(Range range) {
        if(null != headTemplet){
            if(headTemplet.addMergedCell(range)){
                return true;
            }
        }
        
        if(null != detailTemplet){
            if(detailTemplet.addMergedCell(range)){
                return true;
            }
        }
        
        if(null != bottomTemplet){
            if(bottomTemplet.addMergedCell(range)){
                return true;
            }
        }
        
        return false;
    }

    /* (non-Javadoc)
     * @see excel.report.util.ITempletContainer#getMergedCells()
     */
    public List getMergedCells() {
    	//還未實現
        return null;
    }
    
    /*
     * (non-Javadoc)
     * @see excel.report.base.ITempletContainer#getImages()
     */
    public List getImages() {
    	if(images != null){
    		return images;
    	}
    	
    	images = new ArrayList();
    	List tImages = null;
    	
    	if(null != headTemplet){
    		tImages = headTemplet.getImages();
            if(null != tImages){
            	images.addAll(tImages);
            	tImages = null;
            }
        }
        
        if(null != detailTemplet){
        	tImages = detailTemplet.getImages();
            if(null != tImages){
            	images.addAll(tImages);
            	tImages = null;
            }
        }
        
        if(null != bottomTemplet){
        	tImages = bottomTemplet.getImages();
            if(null != tImages){
            	images.addAll(tImages);
            	tImages = null;
            }
        }
        
        return images;
	}
    private List images = null;

	/*
     * (non-Javadoc)
     * @see excel.report.base.ITempletContainer#addImage(jxl.write.WritableImage)
     */
    public boolean addImage(WritableImage image) {
    	if(null != headTemplet){
            if(headTemplet.addImage(image)){
                return true;
            }
        }
        
        if(null != detailTemplet){
            if(detailTemplet.addImage(image)){
                return true;
            }
        }
        
        if(null != bottomTemplet){
            if(bottomTemplet.addImage(image)){
                return true;
            }
        }
        
        return false;
	}

    /*
     * (non-Javadoc)
     * @see excel.report.base.ITempletContainer#removeAllTempletImages(jxl.write.WritableSheet)
     */
	public boolean removeAllTempletImages(WritableSheet sheet) {
        if(null != headTemplet){
            headTemplet.removeAllTempletImages(sheet);
        }
        
        if(null != detailTemplet){
            detailTemplet.removeAllTempletImages(sheet);
        }
        
        if(null != bottomTemplet){
            bottomTemplet.removeAllTempletImages(sheet);
        }
        return true;
    }

	/**
	 * 生成當前帶對象的頭部區的報表數據
	 * @param param		參數對象
	 * @throws Exception
	 */
    protected void writeHead(Parameter param) throws Exception{
        if(null != this.headTemplet){
            this.headTemplet.write(param);
        }
    }
    
    /**
	 * 生成當前帶對象的body區的報表數據
	 * @param param		參數對象
	 * @throws Exception
	 */
    protected void writeBody(Parameter param) throws Exception{
        if(null != this.detailTemplet){
            this.detailTemplet.write(param);
        }
    }
    
    /**
	 * 生成當前帶對象的foot區的報表數據
	 * @param param		參數對象
	 * @throws Exception
	 */
    protected void writeFoot(Parameter param) throws Exception{
        if(null != this.bottomTemplet){
            this.bottomTemplet.write(param);
        }
    }
    
    protected ITempletContainer headTemplet = null; //頭部模板容器
    protected ITempletContainer detailTemplet = null;//明細信息模板容器
    protected ITempletContainer bottomTemplet = null;//尾部模板容器信息
    protected ITempletContainer curTemplet = null;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久久久久久 | 国产精品欧美一区喷水| 亚洲少妇屁股交4| 丝袜国产日韩另类美女| av中文一区二区三区| 日韩精品中文字幕在线一区| 亚洲人快播电影网| 国产盗摄一区二区三区| 日韩一区二区在线观看视频 | 精品国产一二三区| 亚洲妇女屁股眼交7| 波多野结衣欧美| 久久久久久久久99精品| 日韩精品一级中文字幕精品视频免费观看 | 国产成人精品亚洲日本在线桃色| 欧美日韩视频一区二区| 亚洲欧美综合另类在线卡通| 国产一区二区三区观看| 555www色欧美视频| 亚洲综合久久久| 91视视频在线观看入口直接观看www | 激情深爱一区二区| 欧美一级一区二区| 婷婷久久综合九色综合伊人色| 91在线一区二区| 国产精品久久久久久久久久久免费看| 久久精品国产成人一区二区三区| 欧美二区三区91| 亚洲在线视频网站| 欧美性色黄大片手机版| 亚洲欧美视频在线观看视频| fc2成人免费人成在线观看播放| 久久人人超碰精品| 国产精品91一区二区| 久久精品在线免费观看| 狠狠色丁香九九婷婷综合五月| 精品久久久久久久一区二区蜜臀| 免费看欧美美女黄的网站| 91.com视频| 男男gaygay亚洲| 欧美va日韩va| 国产一区二区免费在线| 中文字幕第一区第二区| 成人18视频在线播放| 一区二区在线观看免费| 欧美亚洲国产一区在线观看网站| 亚洲综合激情网| 51精品视频一区二区三区| 另类小说色综合网站| 国产三级精品三级| 99久久久免费精品国产一区二区| ...av二区三区久久精品| 色综合天天做天天爱| 亚洲综合区在线| 欧美一卡二卡三卡| 国产成人综合精品三级| 亚洲欧美在线aaa| 欧美日韩黄色一区二区| 免费人成精品欧美精品| 欧美激情一区二区三区全黄| 色综合av在线| 免费观看久久久4p| 日本一区二区高清| 欧美体内she精高潮| 麻豆精品久久精品色综合| 欧美国产精品久久| 欧美猛男超大videosgay| 国产在线精品免费av| 亚洲人亚洲人成电影网站色| 这里只有精品电影| 成人在线视频首页| 婷婷丁香激情综合| 国产精品人成在线观看免费| 欧美日韩国产片| 国产高清视频一区| 偷拍与自拍一区| 国产精品免费视频观看| 91精品国产综合久久婷婷香蕉| 床上的激情91.| 日韩福利电影在线观看| 中文字幕中文字幕一区| 欧美精品一区二区三区四区| 色综合婷婷久久| 国产精品18久久久久久久网站| 一区二区三区电影在线播| 日韩精品中文字幕一区| 91久久精品午夜一区二区| 国产乱码一区二区三区| 三级影片在线观看欧美日韩一区二区 | 中文字幕成人av| 欧美tk—视频vk| 欧美久久久一区| 在线免费观看视频一区| 丁香激情综合国产| 久久av中文字幕片| 五月激情综合网| 亚洲激情第一区| 国产精品国产三级国产aⅴ中文| 欧美军同video69gay| 91免费看视频| 99视频精品在线| 成人免费观看av| 国产精品1区2区| 精品亚洲porn| 免费观看在线色综合| 天涯成人国产亚洲精品一区av| 亚洲欧洲精品一区二区三区| 久久精品在这里| 久久久精品2019中文字幕之3| 69堂国产成人免费视频| 91久久一区二区| 色老汉av一区二区三区| aaa亚洲精品| 国产99精品在线观看| 国产成人精品三级| 国产99一区视频免费| 国产a级毛片一区| 成人久久视频在线观看| 成人99免费视频| 91色.com| 欧美日韩一二三| 欧美久久久久久久久| 91麻豆精品久久久久蜜臀| 69久久夜色精品国产69蝌蚪网| 91精品中文字幕一区二区三区| 欧美猛男男办公室激情| 欧美一区二区三区免费观看视频 | 不卡视频免费播放| 99久久国产综合精品女不卡| 一本一道久久a久久精品| 97se亚洲国产综合自在线不卡| 色婷婷精品大在线视频| 欧美精品少妇一区二区三区| 91精品国产美女浴室洗澡无遮挡| 欧美成人三级电影在线| 久久久蜜臀国产一区二区| 国产精品乱码人人做人人爱| 亚洲视频在线观看一区| 香蕉久久夜色精品国产使用方法| 日韩精品五月天| 国产成人在线免费| 色婷婷精品大视频在线蜜桃视频| 欧美人与禽zozo性伦| 精品三级av在线| 中文字幕日韩欧美一区二区三区| 亚洲午夜久久久久久久久久久| 日本欧美久久久久免费播放网| 国产精品综合av一区二区国产馆| 99精品在线免费| 日韩午夜小视频| 国产精品久久久久aaaa| 午夜久久电影网| 色屁屁一区二区| 欧美高清一级片在线| 中文文精品字幕一区二区| 亚洲二区在线观看| 国产又粗又猛又爽又黄91精品| 91影视在线播放| 精品国产乱码久久久久久闺蜜| 亚洲三级免费电影| 久久99久久久久| 色噜噜久久综合| 久久欧美一区二区| 亚洲成年人影院| av一二三不卡影片| 日韩欧美国产系列| 亚洲综合免费观看高清完整版| 国产精品18久久久久久vr| 欧美三级电影网站| 国产日韩欧美一区二区三区综合| 亚洲高清不卡在线| 99久久99久久精品免费看蜜桃| 精品少妇一区二区三区视频免付费| 亚洲欧洲av色图| 国产东北露脸精品视频| 日韩欧美中文字幕制服| 一个色在线综合| 99re8在线精品视频免费播放| 精品久久久久久久久久久久久久久久久| 樱花影视一区二区| 成人少妇影院yyyy| 久久青草国产手机看片福利盒子 | 日本一区二区动态图| 免费看精品久久片| 欧美系列亚洲系列| |精品福利一区二区三区| 国产高清视频一区| 久久久久久久久97黄色工厂| 蜜桃精品在线观看| 欧美一级日韩免费不卡| 亚洲国产毛片aaaaa无费看 | 99精品欧美一区| 国产午夜精品一区二区| 国产成人综合亚洲网站| 精品电影一区二区三区 | 欧美变态tickle挠乳网站| 日韩有码一区二区三区| 欧美女孩性生活视频| 日日夜夜精品视频免费| 这里只有精品电影|