org.jxstar.report.xls.ReportXlsForm.java Source code

Java tutorial

Introduction

Here is the source code for org.jxstar.report.xls.ReportXlsForm.java

Source

/*
 * ReportXlsForm.java 2010-11-11
 * 
 * Copyright 2010 Guangzhou Donghong Software Technology Inc.
 * Licensed under the www.jxstar.org
 */
package org.jxstar.report.xls;

import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.jxstar.report.ReportException;
import org.jxstar.report.util.ReportXlsUtil;

/**
 * Excel?
 *
 * @author TonyTan
 * @version 1.0, 2010-11-11
 */
public class ReportXlsForm extends ReportXls {

    public Object output() throws ReportException {
        _log.showDebug("excel form report output ...");
        //?ID?????
        String funId = _mpReptInfo.get("fun_id");
        //ID
        String areaId = _mpMainArea.get("area_id");

        //?
        HSSFWorkbook tmpwb = ReportXlsUtil.readWorkBook(_xlsFile);
        HSSFSheet tmpsheet = tmpwb.getSheetAt(0);

        HSSFSheet sheet = _hssfWB.getSheetAt(0);

        Map<String, String> mpValue = null;
        for (int i = 0; i < _lsMainRecord.size(); i++) {
            mpValue = _lsMainRecord.get(i);

            //?
            if (i == 0) {
                sheet = ReportXlsUtil.fillForm(funId, sheet, mpValue, _lsMainCol, _mpUser, i + 1,
                        _lsMainRecord.size());
                sheet = ReportXlsUtil.fillCheckInfo(funId, areaId, sheet, mpValue);
                sheet = ReportXlsUtil.fillHead(sheet, _lsHeadInfo, _mpUser);
            } else {
                tmpsheet = ReportXlsUtil.fillForm(funId, tmpsheet, mpValue, _lsMainCol, _mpUser, i + 1,
                        _lsMainRecord.size());
                tmpsheet = ReportXlsUtil.fillCheckInfo(funId, areaId, tmpsheet, mpValue);
                tmpsheet = ReportXlsUtil.fillHead(tmpsheet, _lsHeadInfo, _mpUser);

                sheet = ReportXlsUtil.appendSheet(sheet, tmpsheet);
                tmpwb = ReportXlsUtil.readWorkBook(_xlsFile);
                tmpsheet = tmpwb.getSheetAt(0);
            }
            //SHEET???
            if (i == 0)
                sheet.setForceFormulaRecalculation(true);

            //??
            if (!ReportXlsUtil.isAllowOut(sheet))
                break;
        }

        return _hssfWB;
    }

}