/**
 * Copyright (c) 2003-2006 System Integrator Corporation.
 *                 All Rights Reserved.
 */
package jp.co.sint.docs;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.ParseException;
import java.util.Collection;
import java.util.Iterator;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import jp.co.sint.basic.SISalesStatusData;
import jp.co.sint.beans.mallmgr.UIMarketingReport;
import jp.co.sint.beans.mallmgr.UISalesStatus;
import jp.co.sint.beans.mallmgr.UISegmentStatus;
import jp.co.sint.config.SIConfig;
import jp.co.sint.config.SIExcelConf;
import jp.co.sint.config.SIFlagConf;
import jp.co.sint.tools.SIDateTime;
import jp.co.sint.tools.SIFlagUtil;
import jp.co.sint.tools.SIUtil;
import org.apache.log4j.Category;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFHeader;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.hssf.util.CellReference;
import org.apache.poi.hssf.util.Region;

/**
 * @version $Id: SIExcelRWrite.java,v 1.0 2006/05/19 Exp $
 * @author  帳票を取り込んでデータを書き込みする
 * <br>Description:
 * <p>History</p>
 * <p>Author&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Date&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reason</p>
 *  ============&nbsp;&nbsp;&nbsp;==========&nbsp;&nbsp;===========================<br>
 * Hong.M.J        2006/05/19 12:20:42  Original
 */
public class SIExcelRWrite {

  //ログ用のインスタンスの生成
  private static Category log=Category.getInstance(SIConfig.SILOG4J_WEBSHOP_CATEGORY_NAME);
  
  private HSSFRow row = null;
  
  private HSSFRow motorow = null;
  
  private HSSFRow footerrow = null;
  
  private HSSFRow footerrow2 = null;
  
  private HSSFRow footerrow3 = null;
  
  private HSSFRow footerrow4 = null;
  
  private HSSFCell cell=null;
  
  private HSSFWorkbook workBook = null;
  
  private HSSFWorkbook motoworkBook = null;
  
  private int fileKind = 0;//帳票種類
  
  private int startRowIndex = 0;//明細開始ローインデックス 
  
  private int nowRowIndex = 0;//現在のローインデックス
  
  private int pageEndRowIndex = 0;//最終ローインデックス
  
  private String fileName = null;
  
  private int sheetNum = 0;
  
  private short rowheight = 0;
  
  private int endRowIndex = 0;
  
  private int allRowIndex = 0;
  
  public SIExcelRWrite(){}
  
  public SIExcelRWrite(int fileKind,String filePath){
    this.fileKind = fileKind;
    try{
      POIFSFileSystem fs = new POIFSFileSystem(new BufferedInputStream(new FileInputStream(filePath)));
      workBook = new HSSFWorkbook(fs);
      motoworkBook= new HSSFWorkbook(fs);//templateそのままセット
    }catch(IOException e){
      e.printStackTrace();
    }
  }
  
  public void makeSheet(int sheetNum){
    HSSFSheet workSheet = workBook.getSheetAt(sheetNum);
  }
  
  public void makeSheet(int sheetNum,String sheetName){
    makeSheet(sheetNum,sheetName,1);
  }
  
  public void makeSheet(int sheetNum,String sheetName,int footercount){
    makeSheet(sheetNum,sheetName,footercount,true);
  }
  
  public void cloneSheet(int sheetNum) {
    workBook.cloneSheet(sheetNum);
  }
  
  public void removeSheetAt(int sheetNum) {
    workBook.removeSheetAt(sheetNum);
  }
  
  public void setSheetName(int sheetNum,String name) {
    workBook.setSheetName(sheetNum,name,HSSFWorkbook.ENCODING_UTF_16);
  }
  
  public void setSheetNum(int sheetNum) {
    this.sheetNum = sheetNum;
    for (int i =0;i<workBook.getNumberOfSheets();i++){
      workBook.getSheetAt(i).setSelected(false);
    }
    workBook.getSheetAt(sheetNum).setSelected(true);
  }
  
  public void makeSheet(int sheetNum,String sheetName,int footercount,boolean headerFlg){
    //変数初期化
    nowRowIndex =0;
    startRowIndex = Integer.parseInt(SIExcelConf.getStartRowIndex(fileKind));
    endRowIndex = Integer.parseInt(SIExcelConf.getEndRowIndex(fileKind));
    pageEndRowIndex = endRowIndex;
    HSSFSheet workSheet = workBook.getSheetAt(sheetNum);
    workBook.setSheetName(sheetNum,sheetName,HSSFWorkbook.ENCODING_UTF_16);
    //ロー関連設定
    motorow = workSheet.getRow(startRowIndex);
    rowheight = motorow.getHeight();
    if(headerFlg) makeHeader(workSheet);
    this.sheetNum = sheetNum;
    //フッターを予めコピーしておく
    if(footercount == 1){
      footerrow = motoworkBook.getSheetAt(0).getRow(endRowIndex+1);
    }else if(footercount == 2){
      footerrow = motoworkBook.getSheetAt(0).getRow(endRowIndex+1);
      footerrow2 = motoworkBook.getSheetAt(0).getRow(endRowIndex+2);
    }else if(footercount == 3){
      footerrow = motoworkBook.getSheetAt(0).getRow(endRowIndex+1);
      footerrow2 = motoworkBook.getSheetAt(0).getRow(endRowIndex+2);
      footerrow3 = motoworkBook.getSheetAt(0).getRow(endRowIndex+3);
    }else if(footercount == 4){
      footerrow = motoworkBook.getSheetAt(0).getRow(endRowIndex+1);
      footerrow2 = motoworkBook.getSheetAt(0).getRow(endRowIndex+2);
      footerrow3 = motoworkBook.getSheetAt(0).getRow(endRowIndex+3);
      footerrow4 = motoworkBook.getSheetAt(0).getRow(endRowIndex+4);
    }
    allRowIndex =  footercount + endRowIndex;
  }
  
  public void makeFooter(int footercount,int rowindex){
    if(footercount == 1){
      footerrow = motoworkBook.getSheetAt(0).getRow(rowindex);
    }else if(footercount == 2){
      footerrow2 = motoworkBook.getSheetAt(0).getRow(rowindex);
    }else if(footercount == 3){
      footerrow3 = motoworkBook.getSheetAt(0).getRow(rowindex);
    }else if(footercount == 4){
      footerrow4 = motoworkBook.getSheetAt(0).getRow(rowindex);
    }
  }
  
  public void makeLine(int recordindex){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    nowRowIndex = recordindex+startRowIndex;
    if(nowRowIndex > pageEndRowIndex ){
      shiftRows(workSheet);
    }else{
      row = workSheet.getRow(nowRowIndex);
      if(row==null) row = workSheet.createRow(nowRowIndex);
    }
    row.setHeight(rowheight);
  }
  
  public void makePageSet(int startindex,int endindex,int detailindex){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    int endCellCount = Integer.parseInt(SIExcelConf.getEndColumnIndex(fileKind));
    for(int i = startindex;i<startindex+detailindex;i++){
      row = workSheet.createRow(i);
      row.setHeight(rowheight); 
      for(int j =0;j<endCellCount+1;j++){
        cell = row.createCell((short)j);
        cell.setCellStyle(motorow.getCell((short)j).getCellStyle());
      }
    }
    for(int i =startindex+detailindex;i<endindex;i++){
      row = workSheet.createRow(i);
      row.setHeight(rowheight);
    }
    pageEndRowIndex = endindex;
  }
  
  public void makeOverLine(int recordindex){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    nowRowIndex = recordindex+startRowIndex;
    if(nowRowIndex > pageEndRowIndex){
      shiftRows(workSheet);
    }else{
      row = workSheet.getRow(nowRowIndex);
      if(row==null) row = workSheet.createRow(nowRowIndex);
    }
    row.setHeight(rowheight);
    copyRows();
  }
  
  public void makeFooterLine(int recordindex){
    makeFooterLine(1,recordindex);
  }
  
  public void makeFooterLine(int footerindex,int recordindex){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    if(recordindex ==0){
      nowRowIndex = pageEndRowIndex;
      pageEndRowIndex = pageEndRowIndex+1;//フッター初期化
    }
    //ロー関連設定
    if(footerindex == 1){
      motorow = footerrow;
    }else if(footerindex == 2){
      motorow = footerrow2;
    }else if(footerindex == 3){
      motorow =footerrow3;
    }else if(footerindex == 4){
      motorow =footerrow4;
    }
    nowRowIndex = nowRowIndex + 1;
    if(nowRowIndex > pageEndRowIndex) shiftRows(workSheet);
    row = workSheet.getRow(nowRowIndex);
    if(row==null) row = workSheet.createRow(nowRowIndex);
    copyRows();
    row.setHeight(rowheight);
  }
  
  private void shiftRows(HSSFSheet workSheet){
    workSheet.shiftRows(nowRowIndex,nowRowIndex,1);
    row = workSheet.getRow(nowRowIndex);
    if(row==null) row = workSheet.createRow(nowRowIndex);
    row.setHeight(rowheight);
    pageEndRowIndex = pageEndRowIndex+1;
  }
  
  public void copyRows(int motoindex,int rowindex){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    row = workSheet.getRow(motoindex);
    if(row==null) row = workSheet.createRow(motoindex);
    motorow = row;
    workSheet.shiftRows(rowindex,workSheet.getPhysicalNumberOfRows(),1,true,false);
    row = workSheet.getRow(rowindex);
    if(row==null) row = workSheet.createRow(rowindex);
    for(int i =0;i<motorow.getPhysicalNumberOfCells();i++){
      cell = row.getCell((short)i);
      if(cell==null) cell = row.createCell((short)i);
      HSSFCell motoCell = motorow.getCell((short)i);
      if(motoCell==null) motoCell = motorow.createCell((short)i);
      cell.setCellStyle(motoCell.getCellStyle());
    }
  }
  
  private void copyRows(){
    for(int i =0;i<motorow.getPhysicalNumberOfCells();i++){
      cell = row.getCell((short)i);
      if(cell==null) cell = row.createCell((short)i);
      cell.setCellStyle(motorow.getCell((short)i).getCellStyle());
    }
  }
  
  public void makePage(int pageEndIndex){
    workBook.setPrintArea(this.sheetNum, 0,Integer.parseInt(SIExcelConf.getEndColumnIndex(fileKind)),0,pageEndIndex);
  }
  
  public void makePage(){
    workBook.setPrintArea(this.sheetNum, 0,Integer.parseInt(SIExcelConf.getEndColumnIndex(fileKind)),0,pageEndRowIndex);
  }
  
  public void writeDetailItem(int cellindex){
    cell = row.getCell((short)cellindex);
    if(cell==null)cell = row.createCell((short)cellindex);
    cell.setCellStyle(motorow.getCell((short)cellindex).getCellStyle());
  }
  
  public void writeDetailItem(int cellindex,String lItemData){
    writeDetailItem(cellindex,lItemData,null);
  }
  
  public void writeDetailItem(int cellindex,String lItemData,String fieldType){
    writeDetailItem(cellindex,lItemData,fieldType,true);
  }
  
  public void writeDetailItem(int rowindex,int cellindex,String lItemData,String fieldType){
    writeDetailItem(rowindex,cellindex,lItemData,fieldType,true);
  }
  
  public void writeDetailItem(int cellindex,String lItemData,String fieldType,boolean copyflg){
    cell = row.getCell((short)cellindex);
    if(cell==null) cell = row.createCell((short)cellindex);
    if(copyflg){
      cell.setCellStyle(motorow.getCell((short)cellindex).getCellStyle());
    }
    writeItem(lItemData,fieldType);
  }
  
  public void writeDetailItem(int rowindex,int cellindex,String lItemData,String fieldType,boolean copyflg){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    row = workSheet.getRow(rowindex);
    if(row==null) row = workSheet.createRow(rowindex);
    cell = row.getCell((short)cellindex);
    if(cell==null) cell = row.createCell((short)cellindex);
    if(copyflg){
      cell.setCellStyle(motorow.getCell((short)cellindex).getCellStyle());
    }
    writeItem(lItemData,fieldType);
  }
  
  public void writeDetailItem(int rowindex,int cellindex,double lItemData){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    row = workSheet.getRow(rowindex);
    if(row==null) row = workSheet.createRow(rowindex);
    cell = row.getCell((short)cellindex);
    if(cell==null) cell = row.createCell((short)cellindex);
    cell.setCellValue(lItemData);
  }
  
  //数式は固定
  public void writeDetailFomulaItem(int cellindex,int cellStart, int cellEnd){
    cell = row.getCell((short)cellindex);
    if(cell==null) cell = row.createCell((short)cellindex);
    cell.setCellStyle(motorow.getCell((short)cellindex).getCellStyle());
    CellReference cellStartRef = new CellReference(nowRowIndex, cellStart);
    CellReference cellEndRef = new CellReference(nowRowIndex, cellEnd);
    cell.setCellFormula(cellEndRef+"-"+cellStartRef);
  }
  
  public void writeFooterItem(int rowindex,int cellindex,String lItemData,String fieldType,int footerindex){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    HSSFRow temprow = null;
    
    row = workSheet.getRow(rowindex);
    if(footerindex == 1){
      temprow = footerrow;
    }else if(footerindex == 2){
      temprow = footerrow2;
    }else if(footerindex == 3){
      temprow = footerrow3;
    }else if(footerindex == 4){
      temprow = footerrow4;
    }
    
    cell = row.getCell((short)(cellindex-1));
    if(cell==null) cell = row.createCell((short)(cellindex-1));
    cell.setCellStyle(temprow.getCell((short)(cellindex-1)).getCellStyle());
    cell.setCellValue(temprow.getCell((short)(cellindex-1)).getStringCellValue());
    
    cell = row.getCell((short)cellindex);
    if(cell==null)cell = row.createCell((short)cellindex);
    cell.setCellStyle(temprow.getCell((short)cellindex).getCellStyle());
    writeItem(lItemData,fieldType);
  }
  
  public void writeFooterItem(int sheetNum,int rowindex,int cellindex,boolean margeFlg){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    cell = row.getCell((short)cellindex);
    if(cell==null) cell = row.createCell((short)cellindex);
    cell.setCellStyle(motorow.getCell((short)cellindex).getCellStyle());
    if(margeFlg){
      Region region = new Region(nowRowIndex,(short)cellindex,nowRowIndex ,(short)(cellindex + 1));
      workSheet.addMergedRegion(region);//結合
    }
    if(cellindex==0&&rowindex==0){
      cell.setCellValue(motorow.getCell((short)cellindex).getStringCellValue());
    }
  }
  
  public void writeFooterItem(int cellindex,String lItemData,String fieldType){
    cell = row.getCell((short)cellindex);
    writeItem(lItemData,fieldType);
  }
  
  //数式固定
  public void writeFooterFomulaItem(int cellindex,int cellStart,int cellEnd){
    cell = row.getCell((short)cellindex);
    CellReference rowStartRef = new CellReference(startRowIndex, cellStart);
    CellReference rowEndRef = new CellReference(nowRowIndex-1, cellStart);
    CellReference rowStartRef2 = new CellReference(startRowIndex, cellEnd);
    CellReference rowEndRef2 = new CellReference(nowRowIndex-1, cellEnd);
    cell.setCellFormula("sum("+rowStartRef2+":"+rowEndRef2+")-sum("+rowStartRef+":"+rowEndRef+")");
  }
  
  public void writeFooterFomulaItem2(int rowindex,int cellindex,int rowStart,int rowEnd){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    row = workSheet.getRow(rowindex);
    cell = row.getCell((short)cellindex);
    CellReference rowStartRef = new CellReference(rowStart, cellindex);
    CellReference rowEndRef = new CellReference(rowEnd, cellindex);
    cell.setCellFormula("sum("+rowStartRef+":"+rowEndRef+")");
  }
  
  public void writeFooterFomulaTaxItem(int rowindex,int cellindex,int sumcellindex,String taxRate){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    row = workSheet.getRow(rowindex);
    cell = row.getCell((short)cellindex);
    CellReference rowRef = new CellReference(rowindex, sumcellindex);
    cell.setCellFormula("floor("+rowRef+" * "+taxRate+"/(1+"+taxRate+"),1)");
  }
  
  public void writeFooterFomulaItem(int cellindex){
    cell = row.getCell((short)cellindex); 
    CellReference rowStartRef = new CellReference(startRowIndex, cellindex);
    CellReference rowEndRef = new CellReference(nowRowIndex-1, cellindex);
    cell.setCellFormula("sum("+rowStartRef+":"+rowEndRef+")");
  }
  
  public void writeHeaderItem(int rowindex,int cellindex,String lItemData,String fieldType){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    row = workSheet.getRow(rowindex);
    if(row==null) row = workSheet.createRow(rowindex);
    cell = row.getCell((short)cellindex);
    if(cell==null) cell = row.createCell((short)cellindex);
    writeItem(lItemData,fieldType);
  }
  
  private void writeItem(String lItemData,String fieldType){
    if(SIUtil.isNull(fieldType)){//STRING TYPE
      cell.setEncoding(HSSFCell.ENCODING_UTF_16);
      cell.setCellValue(lItemData);
    }else if(fieldType.equals(SIExcelConf.FIELD_DATE_TYPE)){//DATE TYPE
      if(SIUtil.isNotNull(lItemData)){
        try{
          cell.setCellValue(new SIDateTime(lItemData).getFullDate());
        }catch(ParseException e){
          e.printStackTrace();
        }
      }
    }else if(fieldType.equals(SIExcelConf.FIELD_NUMERIC_TYPE)){//NUMERIC TYPE
      if(SIUtil.isNotNull(lItemData)){
        cell.setCellValue(Double.parseDouble(lItemData));
      }else{
        cell.setCellValue(0);
      }
    }else{//STRING TYPE
      cell.setEncoding(HSSFCell.ENCODING_UTF_16);
      cell.setCellValue(lItemData);
    }
  }
  
  public void removeDetail(){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    for(int i = nowRowIndex+1;i<pageEndRowIndex ;i++){
      workSheet.removeRow(workSheet.getRow(i));
    }
    pageEndRowIndex =nowRowIndex;
  }
  
  public void removeDetail(int footerRowCount,boolean detail){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    for(int i = startRowIndex+1;i<endRowIndex+footerRowCount+1 ;i++){
      workSheet.removeRow(workSheet.getRow(i));
    }
    pageEndRowIndex = startRowIndex-1;
  }
  
  public void removeDetail(int footerRowCount){
    if(nowRowIndex<pageEndRowIndex){
      HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
      for(int i = nowRowIndex+2;i<pageEndRowIndex + footerRowCount + 1;i++){
        workSheet.removeRow(workSheet.getRow(i));
      }
      pageEndRowIndex =nowRowIndex;
    }
  }
  
  public void setFileName(String season,String branchCode){
    String temp = "000"+ branchCode;
    branchCode = temp.substring(temp.length()-3,temp.length());
    fileName = season + branchCode;
  }
  
  /*
  public void drawImage(String filepath) throws IOException{
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    HSSFPatriarch patriarch =workSheet.createDrawingPatriarch();
    HSSFClientAnchor anchor =new HSSFClientAnchor(0,0,0,05,(short)0,0,(short)2,2);
    anchor.setAnchorType(2);
    patriarch.createPicture(anchor,loadPicture(filepath,workBook));
  }
  
  private int loadPicture( String path, HSSFWorkbook wb ) throws IOException {
    int pictureIndex;
    FileInputStream fis = null;
    ByteArrayOutputStream bos = null;
  
    try{
      fis = new FileInputStream( path);
      bos = new ByteArrayOutputStream( );
      int c;
      while((c = fis.read()) != -1){
        bos.write( c );
      }
      pictureIndex = wb.addPicture( bos.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG);
    }finally{
      if (fis != null) fis.close();
      if (bos != null) bos.close();
    }
    return pictureIndex;
  }
  */
  
  /**
   * <b>makeHeader</b>
   * ページヘッダを設定する
   * @param  なし
   * @return なし
   * @throws なし
   */
  private void makeHeader(HSSFSheet workSheet){
    HSSFHeader header = workSheet.getHeader();
    header.setRight(HSSFHeader.font("Stencil-Normal", "ＭＳ 明朝") + HSSFHeader.fontSize((short) 10) + HSSFHeader.page() +"Page\r\n"+ HSSFHeader.date() + " " + HSSFHeader.time());
  }
  
  public void close(HttpServletResponse lResponse) throws IOException{
    ServletOutputStream lOutStream =null;
    lResponse.setHeader("Content-Disposition","attachment;filename= "+SIExcelConf.getExcelFileName(this.fileKind,this.fileName));
    lResponse.setContentType("application/vnd.ms-excel");
    try{
      lOutStream = lResponse.getOutputStream();
      workBook.write(lOutStream);
    }catch(IOException e1){
      throw new IOException();
    }finally{
      try{
        lOutStream.flush();
      }catch(IOException e1){
        //e1.printStackTrace();
      }
      if (lOutStream!=null){
        try{
          lOutStream.close();
          lOutStream =null;
        }catch(IOException e2){
          //e2.printStackTrace();
        }
      }
    }
  }
  
  /**
   * @return endRowIndex を戻します。
   */
  public int getEndRowIndex(){
    return endRowIndex;
  }
  
  /**
   * @param endRowIndex endRowIndex を設定。
   */
  public void setEndRowIndex(int endRowIndex){
    this.endRowIndex = endRowIndex;
  }
  
  //請求書用のページ
  public void makeBillPage(int pageNumber,int maxPageDetailCount){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    HSSFSheet motoWorkSheet = motoworkBook.getSheetAt(0);
    HSSFCell motoCell = null;
    HSSFRow motoRow = null;
    Region region = null;
    int endCellindex = Integer.parseInt(SIExcelConf.getEndColumnIndex(fileKind));
    int startrow = 0;
    startrow =  (maxPageDetailCount-1)*(pageNumber-1);
    for(int j=0;j<maxPageDetailCount-1;j++){
      row = workSheet.createRow(j+startrow);
      motoRow = motoWorkSheet.getRow(j);
      if(motoRow==null) continue;
      row.setHeight(motoRow.getHeight());
      for(int k=0;k<endCellindex;k++){
        cell = row.createCell((short)k);
        motoCell = motoRow.getCell((short)k);
        if(motoCell==null)continue;
        if(motoCell.getCellStyle()!=null){
          cell.setCellStyle(motoCell.getCellStyle());
        }
      }
    }
    //セール合併
    for(int jj=0;jj<7;jj++){
      region = new Region(11+startrow,(short)(1+jj*5),11+startrow,(short)(5+jj*5));
      workSheet.addMergedRegion(region);//結合
    }
    region = new Region(11+startrow,(short)36,11+startrow,(short)42);
    workSheet.addMergedRegion(region);//結合
    for(int jj=0;jj<7;jj++){
      region = new Region(12+startrow,(short)(1+jj*5),13+startrow,(short)(5+jj*5));
      workSheet.addMergedRegion(region);//結合
    }
    region = new Region(12+startrow,(short)36,13+startrow,(short)42);
    workSheet.addMergedRegion(region);//結合
    for(int ii=0;ii<26;ii++){
      region = new Region(15+startrow+ii,(short)1,15+startrow+ii,(short)4);
      workSheet.addMergedRegion(region);//結合
      region = new Region(15+startrow+ii,(short)5,15+startrow+ii,(short)16);
      workSheet.addMergedRegion(region);//結合
      region = new Region(15+startrow+ii,(short)17,15+startrow+ii,(short)21);
      workSheet.addMergedRegion(region);//結合
      region = new Region(15+startrow+ii,(short)22,15+startrow+ii,(short)23);
      workSheet.addMergedRegion(region);//結合
      region = new Region(15+startrow+ii,(short)24,15+startrow+ii,(short)28);
      workSheet.addMergedRegion(region);//結合
      region = new Region(15+startrow+ii,(short)29,15+startrow+ii,(short)32);
      workSheet.addMergedRegion(region);//結合
      region = new Region(15+startrow+ii,(short)33,15+startrow+ii,(short)36);
      workSheet.addMergedRegion(region);//結合
      region = new Region(15+startrow+ii,(short)37,15+startrow+ii,(short)42);
      workSheet.addMergedRegion(region);//結合
    }
    region = new Region(45+startrow,(short)1,46+startrow,(short)28);
    workSheet.addMergedRegion(region);//結合
    region = new Region(67+startrow,(short)1,69+startrow,(short)42);
    workSheet.addMergedRegion(region);//結合
    
    cell = workSheet.getRow(42+startrow).getCell((short)1);
    motoCell = motoWorkSheet.getRow(42).getCell((short)1);
    cell.setCellValue(motoCell.getStringCellValue());
    cell = workSheet.getRow(43+startrow).getCell((short)1);
    motoCell = motoWorkSheet.getRow(43).getCell((short)1);
    cell.setCellValue(motoCell.getStringCellValue());
    cell = workSheet.getRow(48+startrow).getCell((short)1);
    motoCell = motoWorkSheet.getRow(48).getCell((short)1);
    cell.setCellValue(motoCell.getStringCellValue());
    cell = workSheet.getRow(49+startrow).getCell((short)1);
    motoCell = motoWorkSheet.getRow(49).getCell((short)1);
    cell.setCellValue(motoCell.getStringCellValue());
    cell = workSheet.getRow(49+startrow).getCell((short)1);
    motoCell = motoWorkSheet.getRow(49).getCell((short)1);
    cell.setCellValue(motoCell.getStringCellValue());
    cell = workSheet.getRow(52+startrow).getCell((short)1);
    motoCell = motoWorkSheet.getRow(52).getCell((short)1);
    cell.setCellValue(motoCell.getStringCellValue());
    for(int ii=0;ii<12;ii++){
      cell = workSheet.getRow(54+startrow+ii).getCell((short)1);
      motoCell = motoWorkSheet.getRow(54+ii).getCell((short)1);
      cell.setCellValue(motoCell.getStringCellValue());
      if(ii<9){
        cell = workSheet.getRow(54+startrow+ii).getCell((short)13);
        motoCell = motoWorkSheet.getRow(54+ii).getCell((short)13);
        cell.setCellValue(motoCell.getStringCellValue());
        cell = workSheet.getRow(54+startrow+ii).getCell((short)25);
        motoCell = motoWorkSheet.getRow(54+ii).getCell((short)25);
        cell.setCellValue(motoCell.getStringCellValue());
        cell = workSheet.getRow(54+startrow+ii).getCell((short)35);
        motoCell = motoWorkSheet.getRow(54+ii).getCell((short)35);
        cell.setCellValue(motoCell.getStringCellValue());
      }
    }
  }
  
  //売上伝票用のページ
  public void makeSalesBillPage(int pageindex,int maxPageDetailCount){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    HSSFSheet motoWorkSheet = motoworkBook.getSheetAt(0);
    HSSFCell motoCell = null;
    HSSFRow motoRow = null;
    Region region = null;
    int endCellindex = Integer.parseInt(SIExcelConf.getEndColumnIndex(fileKind));
    int startrow = 0;
    startrow = this.endRowIndex + (maxPageDetailCount-1)*(pageindex-1);
    for(int j=0;j<maxPageDetailCount-1;j++){
      row = workSheet.createRow(j+startrow);
      motoRow = motoWorkSheet.getRow(j);
      if(motoRow==null) continue;
      row.setHeight(motoRow.getHeight());
      for(int k=0;k<endCellindex;k++){
        cell = row.createCell((short)k);
        motoCell = motoRow.getCell((short)k);
        if(motoCell==null) continue;
        if(motoCell.getCellStyle()!=null){
          cell.setCellStyle(motoCell.getCellStyle());
        }
      }
    }
    for(int ii=0;ii<26;ii++){
      region = new Region(12+startrow+ii,(short)1,12+startrow+ii,(short)4);
      workSheet.addMergedRegion(region);//結合
      region = new Region(12+startrow+ii,(short)5,12+startrow+ii,(short)8);
      workSheet.addMergedRegion(region);//結合
      region = new Region(12+startrow+ii,(short)9,12+startrow+ii,(short)18);
      workSheet.addMergedRegion(region);//結合
      region = new Region(12+startrow+ii,(short)19,12+startrow+ii,(short)23);
      workSheet.addMergedRegion(region);//結合
      region = new Region(12+startrow+ii,(short)24,12+startrow+ii,(short)25);
      workSheet.addMergedRegion(region);//結合
      region = new Region(12+startrow+ii,(short)26,12+startrow+ii,(short)30);
      workSheet.addMergedRegion(region);//結合
      region = new Region(12+startrow+ii,(short)31,12+startrow+ii,(short)34);
      workSheet.addMergedRegion(region);//結合
      region = new Region(12+startrow+ii,(short)35,12+startrow+ii,(short)38);
      workSheet.addMergedRegion(region);//結合
      region = new Region(12+startrow+ii,(short)39,12+startrow+ii,(short)42);
      workSheet.addMergedRegion(region);//結合
    }
    region = new Region(39+startrow,(short)1,40+startrow,(short)5);
    workSheet.addMergedRegion(region);//結合
    region = new Region(39+startrow,(short)6,40+startrow,(short)17);
    workSheet.addMergedRegion(region);//結合
    region = new Region(39+startrow,(short)19,40+startrow,(short)25);
    workSheet.addMergedRegion(region);//結合
    region = new Region(39+startrow,(short)26,40+startrow,(short)30);
    workSheet.addMergedRegion(region);//結合
    region = new Region(39+startrow,(short)32,40+startrow,(short)37);
    workSheet.addMergedRegion(region);//結合
    region = new Region(39+startrow,(short)38,40+startrow,(short)42);
    workSheet.addMergedRegion(region);//結合
    
    //注文金額
    for(int jj=0;jj<7;jj++){
      region = new Region(42+startrow,(short)(1+jj*5),42+startrow,(short)(5+jj*5));
      workSheet.addMergedRegion(region);//結合
      region = new Region(43+startrow,(short)(1+jj*5),44+startrow,(short)(5+jj*5));
      workSheet.addMergedRegion(region);//結合
    }
    region = new Region(42+startrow,(short)36,42+startrow,(short)42);
    workSheet.addMergedRegion(region);//結合
    region = new Region(43+startrow,(short)36,44+startrow,(short)42);
    workSheet.addMergedRegion(region);//結合
    
    //入金明細
    for(int ii=0;ii<7;ii++){
      region = new Region(46+startrow+ii,(short)1,46+startrow+ii,(short)5);
      workSheet.addMergedRegion(region);//結合
      region = new Region(46+startrow+ii,(short)6,46+startrow+ii,(short)14);
      workSheet.addMergedRegion(region);//結合
      region = new Region(46+startrow+ii,(short)15,46+startrow+ii,(short)20);
      workSheet.addMergedRegion(region);//結合
    }
    
    for(int ii=0;ii<7;ii++){
      region = new Region(46+startrow+ii,(short)23,46+startrow+ii,(short)27);
      workSheet.addMergedRegion(region);//結合
      region = new Region(46+startrow+ii,(short)28,46+startrow+ii,(short)36);
      workSheet.addMergedRegion(region);//結合
      region = new Region(46+startrow+ii,(short)37,46+startrow+ii,(short)42);
      workSheet.addMergedRegion(region);//結合
    }
    
    cell = workSheet.getRow(53+startrow).getCell((short)1);
    motoCell = motoWorkSheet.getRow(53).getCell((short)1);
    cell.setCellValue(motoCell.getStringCellValue());
    for(int ii=0;ii<12;ii++){
      cell = workSheet.getRow(55+startrow+ii).getCell((short)1);
      motoCell = motoWorkSheet.getRow(55+ii).getCell((short)1);
      cell.setCellValue(motoCell.getStringCellValue());
      if (ii<9) {
        cell = workSheet.getRow(55+startrow+ii).getCell((short)13);
        motoCell = motoWorkSheet.getRow(55+ii).getCell((short)13);
        cell.setCellValue(motoCell.getStringCellValue());
        cell = workSheet.getRow(55+startrow+ii).getCell((short)25);
        motoCell = motoWorkSheet.getRow(55+ii).getCell((short)25);
        cell.setCellValue(motoCell.getStringCellValue());
        cell = workSheet.getRow(55+startrow+ii).getCell((short)35);
        motoCell = motoWorkSheet.getRow(55+ii).getCell((short)35);
        cell.setCellValue(motoCell.getStringCellValue());
      }
    }
  }
  
  //物品受領書
  public void makeCmdtyBillPage(int pageindex,int maxPageDetailCount){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    HSSFSheet motoWorkSheet = motoworkBook.getSheetAt(0);
    HSSFCell motoCell = null;
    HSSFRow motoRow = null;
    Region region = null;
    int endCellindex = Integer.parseInt(SIExcelConf.getEndColumnIndex(fileKind));
    int startrow = 0;
    startrow = this.endRowIndex + (maxPageDetailCount-1)*(pageindex-1);
    for(int j=0;j<maxPageDetailCount-1;j++){
      row = workSheet.createRow(j+startrow);
      motoRow = motoWorkSheet.getRow(j);
      if(motoRow==null) continue;
      row.setHeight(motoRow.getHeight());
      for(int k=0;k<endCellindex;k++){
        cell = row.createCell((short)k);
        motoCell = motoRow.getCell((short)k);
        if(motoCell==null) continue;
        if(motoCell.getCellStyle()!=null){
          cell.setCellStyle(motoCell.getCellStyle());
        }
      }
    }
    for(int ii=0;ii<26;ii++){
      region = new Region(11+startrow+ii,(short)1,11+startrow+ii,(short)4);
      workSheet.addMergedRegion(region);//結合
      region = new Region(11+startrow+ii,(short)5,11+startrow+ii,(short)23);
      workSheet.addMergedRegion(region);//結合
      region = new Region(11+startrow+ii,(short)24,11+startrow+ii,(short)29);
      workSheet.addMergedRegion(region);//結合
      region = new Region(11+startrow+ii,(short)30,11+startrow+ii,(short)42);
      workSheet.addMergedRegion(region);//結合
    }
    
    cell = workSheet.getRow(39+startrow).getCell((short)1);
    motoCell = motoWorkSheet.getRow(39).getCell((short)1);
    cell.setCellValue(motoCell.getStringCellValue());
    for(int ii=0;ii<9;ii++){
      cell = workSheet.getRow(41+startrow+ii).getCell((short)1);
      motoCell = motoWorkSheet.getRow(41+ii).getCell((short)1);
      cell.setCellValue(motoCell.getStringCellValue());
      cell = workSheet.getRow(41+startrow+ii).getCell((short)13);
      motoCell = motoWorkSheet.getRow(41+ii).getCell((short)13);
      cell.setCellValue(motoCell.getStringCellValue());
      cell = workSheet.getRow(41+startrow+ii).getCell((short)25);
      motoCell = motoWorkSheet.getRow(41+ii).getCell((short)25);
      cell.setCellValue(motoCell.getStringCellValue());
      cell = workSheet.getRow(41+startrow+ii).getCell((short)35);
      motoCell = motoWorkSheet.getRow(41+ii).getCell((short)35);
      cell.setCellValue(motoCell.getStringCellValue());
    }
    cell = workSheet.getRow(56+startrow).getCell((short)1);
    motoCell = motoWorkSheet.getRow(56).getCell((short)1);
    cell.setCellValue(motoCell.getStringCellValue());
    cell = workSheet.getRow(56+startrow).getCell((short)22);
    motoCell = motoWorkSheet.getRow(56).getCell((short)22);
    cell.setCellValue(motoCell.getStringCellValue());
    cell = workSheet.getRow(58+startrow).getCell((short)1);
    motoCell = motoWorkSheet.getRow(58).getCell((short)1);
    cell.setCellValue(motoCell.getStringCellValue());
    cell = workSheet.getRow(58+startrow).getCell((short)22);
    motoCell = motoWorkSheet.getRow(58).getCell((short)22);
    cell.setCellValue(motoCell.getStringCellValue());
  }
  
  public void makeMarketingReport(UIMarketingReport MR){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    int currentRow = 0;
    
    currentRow = 1;
    writeItem(workSheet,currentRow,1,MR.getSeasonYearCbo(),SIExcelConf.FIELD_STRING_TYPE);//対象年月
    currentRow = 2;
    writeItem(workSheet,currentRow,1,MR.getBranchName(),SIExcelConf.FIELD_STRING_TYPE);//支店
    currentRow = 4;
    writeItem(workSheet,currentRow,2,MR.getSeasonYearCbo() + "年",SIExcelConf.FIELD_STRING_TYPE);
    writeItem(workSheet,currentRow,10,SIUtil.add(MR.getSeasonYearCbo(), "1") + "年",SIExcelConf.FIELD_STRING_TYPE);
    
    for (int index=0;index<13;index++) {
      currentRow = 6;
      
      /**【売上構成比】**/
      // 理美容器具カテゴリ別売上額
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][0],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// S
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][1],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// C
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][2],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// K
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][3],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// B
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][4],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// P
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][5],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// R
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][8],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// M
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][9],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// X
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][10],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// Z
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][11],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// J
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][7],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// E
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][6],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// D
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][18],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// A
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][21],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// Y
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][14],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// T
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][20],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// F
      
      // 理美容器具セグメント別売上額
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentSalesSum()[index][0],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 理美容合計
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentSales()[index][0],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 中古
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentSales()[index][1],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// アウトレット
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentSales()[index][2],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新品PB
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentSales()[index][3],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新品NB
      
      // エステ水物カテゴリ別売上額
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][12],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// V
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][19],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// H
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][15],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// L
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][13],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// N
      writeItem(workSheet,currentRow,2 + index,MR.getCtgrySales()[index][17],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// W
      
      // エステ水物セグメント別売上額
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentSalesSum()[index][1],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エステ合計
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentSales()[index][4],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エクステ・ヘア水物
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentSales()[index][5],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エステ水物
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentSales()[index][6],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// ネイル・まつ毛材料
      
      // 値引、手数料金額
      writeItem(workSheet,currentRow,2 + index,MR.getDiscountSum()[index],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 値引
      writeItem(workSheet,currentRow,2 + index,MR.getFeeSum()[index],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 代引手数料
      
      // 売上総合計
      String total = SIUtil.add(SIUtil.add(MR.getDiscountSum()[index], MR.getFeeSum()[index]), SIUtil.add(MR.getSegmentSalesSum()[index][0], MR.getSegmentSalesSum()[index][1]));
      writeItem(workSheet,currentRow,2 + index,total,SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      
      // カテゴリ別売上比率
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,0),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// S
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,1),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// C
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,2),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// K
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,3),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// B
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,4),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// P
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,5),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// R
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,8),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// M
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,9),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// X
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,10),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// Z
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,12),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// V
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,11),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// J
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,7),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// E
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,6),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// D
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,13),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// N
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,18),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// A
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,17),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// W
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,21),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// Y
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,14),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// T
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,15),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// L
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,19),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// H
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryRate(index,20),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// F
      
      // セグメント別売上比率
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentRate(index,0),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 中古
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentRate(index,1),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// アウトレット
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentRate(index,2),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新品PB
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentRate(index,3),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新品NB
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentRate(index,4),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エクステ・ヘア水物
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentRate(index,5),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エステ水物
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentRate(index,6),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// ネイル・まつげ材料
      
      /**【粗利構成比】**/
      // 理美容器具カテゴリ別粗利額
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][0],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// S
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][1],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// C
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][2],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// K
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][3],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// B
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][4],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// P
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][5],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// R
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][8],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// M
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][9],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// X
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][10],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// Z
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][11],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// J
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][7],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// E
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][6],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// D
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][18],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// A
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][21],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// Y
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][14],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// T
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][20],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// F
      
      // 理美容器具セグメント別粗利額
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGainSum()[index][0],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 理美容合計
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGain()[index][0],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 中古
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGain()[index][1],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// アウトレット
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGain()[index][2],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新品PB
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGain()[index][3],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新品NB
      
      // エステ水物カテゴリ別売上額
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][12],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// V
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][19],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// H
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][15],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// L
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][13],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// N
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGain()[index][17],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// W
      
      // エステ水物セグメント別売上額
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGainSum()[index][1],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エステ合計
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGain()[index][4],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エクステ・ヘア水物
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGain()[index][5],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エステ水物
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGain()[index][6],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// ネイル・まつ毛材料
      
      // 値引、手数料金額
      writeItem(workSheet,currentRow,2 + index,MR.getDiscountSum()[index],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 値引
      writeItem(workSheet,currentRow,2 + index,MR.getFeeSum()[index],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 代引手数料
      
      // 売上総合計
      String totalGain = SIUtil.add(SIUtil.add(MR.getDiscountSum()[index], MR.getFeeSum()[index]), SIUtil.add(MR.getSegmentGainSum()[index][0], MR.getSegmentGainSum()[index][1]));
      writeItem(workSheet,currentRow,2 + index,totalGain,SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      
      // カテゴリ別粗利比率
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,0),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// S
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,1),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// C
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,2),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// K
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,3),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// B
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,4),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// P
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,5),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// R
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,8),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// M
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,9),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// X
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,10),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// Z
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,12),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// V
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,11),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// J
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,7),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// E
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,6),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// D
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,13),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// N
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,18),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// A
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,17),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// W
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,21),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// Y
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,14),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// T
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,15),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// L
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,19),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// H
      writeItem(workSheet,currentRow,2 + index,MR.getCtgryGainRate(index,20),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// H
      
      // セグメント別売上比率
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGainRate(index,0),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 中古
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGainRate(index,1),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// アウトレット
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGainRate(index,2),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新品PB
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGainRate(index,3),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新品NB
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGainRate(index,4),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エクステ・ヘア水物
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGainRate(index,5),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エステ水物
      writeItem(workSheet,currentRow,2 + index,MR.getSegmentGainRate(index,6),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// ネイル・まつげ材料
      
      /**【基本データ】**/
      writeItem(workSheet,currentRow,2 + index,MR.getCustCount()[index],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 購入顧客件数
      writeItem(workSheet,currentRow,2 + index,MR.getCustUnitPrice(index),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 客単価
      writeItem(workSheet,currentRow,2 + index,MR.getCustUnitGain(index),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 客単価（粗利）
      
      /**【購入経路分析】**/
      // 受注経路別売上金額
      for (int ors=0;ors<MR.getOrderRouteSales()[index].length;ors++){
        writeItem(workSheet,currentRow,2 + index,MR.getOrderRouteSales()[index][ors],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      // 受注経路別売上比率
      for (int orsr=0;orsr<MR.getOrderRouteSales()[index].length;orsr++){
        writeItem(workSheet,currentRow,2 + index,MR.getOrderRouteSalesRate(index,orsr),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      // 受注経路別顧客数
      for (int orc=0;orc<MR.getOrderRouteCust()[index].length;orc++){
        writeItem(workSheet,currentRow,2 + index,MR.getOrderRouteCust()[index][orc],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      // 受注経路別顧客比率
      for (int orcr=0;orcr<MR.getOrderRouteCust()[index].length;orcr++){
        writeItem(workSheet,currentRow,2 + index,MR.getOrderRouteCustRate(index,orcr),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      // 受注経路別客単価
      for (int orcu=0;orcu<MR.getOrderRouteCust()[index].length;orcu++){
        writeItem(workSheet,currentRow,2 + index,MR.getOrderRouteCustUnitPrice(index,orcu),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      /**【営業形態分析】**/
      // 営業形態別売上金額
      for (int js=0;js<MR.getJobSales()[index].length;js++){
        writeItem(workSheet,currentRow,2 + index,MR.getJobSales()[index][js],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      // 営業形態別売上比率
      for (int jsr=0;jsr<MR.getJobSales()[index].length;jsr++){
        writeItem(workSheet,currentRow,2 + index,MR.getJobSalesRate(index,jsr),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      // 営業形態別顧客数
      for (int jc=0;jc<MR.getJobCust()[index].length;jc++){
        writeItem(workSheet,currentRow,2 + index,MR.getJobCust()[index][jc],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      // 営業形態別顧客比率
      for (int jcr=0;jcr<MR.getJobCust()[index].length;jcr++){
        writeItem(workSheet,currentRow,2 + index,MR.getJobCustRate(index,jcr),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      // 営業形態別客単価
      for (int jcu=0;jcu<MR.getJobCust()[index].length;jcu++){
        writeItem(workSheet,currentRow,2 + index,MR.getJobCustUnitPrice(index,jcu),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      /**【支払方法分析】**/
      // 営業形態別売上金額
      for (int ps=0;ps<MR.getPaymentSales()[index].length;ps++){
        writeItem(workSheet,currentRow,2 + index,MR.getPaymentSales()[index][ps],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      // 営業形態別売上比率
      for (int psr=0;psr<MR.getPaymentSales()[index].length;psr++){
        writeItem(workSheet,currentRow,2 + index,MR.getPaymentSalesRate(index,psr),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      // 営業形態別顧客数
      for (int pc=0;pc<MR.getPaymentCust()[index].length;pc++){
        writeItem(workSheet,currentRow,2 + index,MR.getPaymentCust()[index][pc],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      // 営業形態別顧客比率
      for (int pcr=0;pcr<MR.getPaymentCust()[index].length;pcr++){
        writeItem(workSheet,currentRow,2 + index,MR.getPaymentCustRate(index,pcr),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      // 営業形態別客単価
      for (int pcp=0;pcp<MR.getPaymentCust()[index].length;pcp++){
        writeItem(workSheet,currentRow,2 + index,MR.getPaymentCustUnitPrice(index,pcp),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      
      /**【新規VS既存顧客分析】**/
      writeItem(workSheet,currentRow,2 + index,MR.getNewCustSales()[index],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新規顧客購入額
      writeItem(workSheet,currentRow,2 + index,MR.getOldCustSales()[index],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 既存顧客購入額
      writeItem(workSheet,currentRow,2 + index,MR.getNewCustCount()[index],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新規顧客購入件数
      writeItem(workSheet,currentRow,2 + index,MR.getOldCustCount()[index],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 既存顧客購入件数
      writeItem(workSheet,currentRow,2 + index,MR.getRepeatRate(index),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// リピーター率
      writeItem(workSheet,currentRow,2 + index,MR.getNewCustUnitPrice(index),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新規顧客単価
      writeItem(workSheet,currentRow,2 + index,MR.getOldCustUnitPrice(index),SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 既存顧客単価
      
      /**【会員分析】**/
      writeItem(workSheet,currentRow,2 + index,MR.getMemberCount()[index],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 登録会員数
      for (int ac=0;ac<MR.getAttrCount()[index].length;ac++){
        writeItem(workSheet,currentRow,2 + index,MR.getAttrCount()[index][ac],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;
      }
      writeItem(workSheet,currentRow,2 + index,MR.getInfoMailCount()[index],SIExcelConf.FIELD_NUMERIC_TYPE);// 情報メール希望会員数
    }
    
    makePage(397);
  }
  
  public void makeTrendReport(UIMarketingReport MR){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    int currentRow = 0;
    int position = 1;
    
    currentRow = 1;
    writeItem(workSheet,currentRow,1,MR.getSeasonYearCbo(),SIExcelConf.FIELD_STRING_TYPE);//対象年月
    currentRow = 2;
    writeItem(workSheet,currentRow,1,MR.getBranchName(),SIExcelConf.FIELD_STRING_TYPE);//支店
    
    for (int index=0;index<12;index++) {
      currentRow = 8;
      if (index==6) position++;
      writeItem(workSheet,currentRow,position + index,MR.getSegmentSales()[index][0],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 中古
      writeItem(workSheet,currentRow,position + index,MR.getSegmentSales()[index][1],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// アウトレット
      writeItem(workSheet,currentRow,position + index,MR.getSegmentSales()[index][2],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新品NB
      writeItem(workSheet,currentRow,position + index,MR.getSegmentSales()[index][3],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新品PB
      currentRow++;
      writeItem(workSheet,currentRow,position + index,MR.getSegmentSales()[index][4],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エクステ・ヘア水物
      writeItem(workSheet,currentRow,position + index,MR.getSegmentSales()[index][5],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エステ水物
      writeItem(workSheet,currentRow,position + index,MR.getSegmentSales()[index][6],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// ネイル・まつ毛材料
      writeItem(workSheet,currentRow,position + index,MR.getDiscountSum()[index],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 値引
      writeItem(workSheet,currentRow,position + index,MR.getFeeSum()[index],SIExcelConf.FIELD_NUMERIC_TYPE);// 手数料
      currentRow=currentRow+18;
      writeItem(workSheet,currentRow,position + index,MR.getSegmentGain()[index][0],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 中古
      writeItem(workSheet,currentRow,position + index,MR.getSegmentGain()[index][1],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// アウトレット
      writeItem(workSheet,currentRow,position + index,MR.getSegmentGain()[index][2],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新品NB
      writeItem(workSheet,currentRow,position + index,MR.getSegmentGain()[index][3],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 新品PB
      currentRow++;
      writeItem(workSheet,currentRow,position + index,MR.getSegmentGain()[index][4],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エクステ・ヘア水物
      writeItem(workSheet,currentRow,position + index,MR.getSegmentGain()[index][5],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// エステ水物
      writeItem(workSheet,currentRow,position + index,MR.getSegmentGain()[index][6],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// ネイル・まつ毛材料
      writeItem(workSheet,currentRow,position + index,MR.getDiscountSum()[index],SIExcelConf.FIELD_NUMERIC_TYPE); currentRow++;// 値引
      writeItem(workSheet,currentRow,position + index,MR.getFeeSum()[index],SIExcelConf.FIELD_NUMERIC_TYPE);// 手数料
      currentRow=currentRow+18;
      writeItem(workSheet,currentRow,position + index,MR.getStoreHistoryData()[index],SIExcelConf.FIELD_NUMERIC_TYPE);// 買取データ
    }
    makePage(83);
  }
  
  public void makeSalesStatus(UISalesStatus SS){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    SISalesStatusData SSD;
    int currentRow = 0;
    
    //ヘッダー
    writeItem(workSheet,currentRow,26,new SIDateTime().getFullDateTime(),SIExcelConf.FIELD_STRING_TYPE);
    currentRow = 2;
    String dateStr = "";
    if (SIUtil.isNotNull(SS.getDayFrom())&&SIUtil.isNotNull(SS.getDayTo())){
      dateStr = "（" + SS.getDayFrom() + "〜" + SS.getDayTo() +"）";
    }else if (SIUtil.isNotNull(SS.getDayFrom())) {
      dateStr = "（" + SS.getDayFrom() + "〜）";
    }else if (SIUtil.isNotNull(SS.getDayTo())) {
      dateStr = "（〜" + SS.getDayTo() + "）";
    }
    writeItem(workSheet,currentRow,1,"：" + SS.getYear() + "年" + SS.getMonth() + "月" + dateStr,SIExcelConf.FIELD_STRING_TYPE);
    writeItem(workSheet,currentRow,4,"：" + SS.getBranchName(SS.getBranchCode()),SIExcelConf.FIELD_STRING_TYPE);
    currentRow++;
    String orderRouteStr = "すべて";
    String chargeName = "すべて";
    if (SIUtil.isNotNull(SS.getOrderRoute())) {
      orderRouteStr = SIFlagUtil.getFlagName(SIFlagConf.SIFLAG_ORDER_ROUTE_INX,SS.getOrderRoute());
    }
    if (SIUtil.isNotNull(SS.getChargeCode())) {
      chargeName = SS.getChargeName();
    }
    writeItem(workSheet,currentRow,1,"：" + orderRouteStr,SIExcelConf.FIELD_STRING_TYPE);
    writeItem(workSheet,currentRow,4,"：" + chargeName,SIExcelConf.FIELD_STRING_TYPE);
    
    //通常売上
    Collection col1 = SS.getCollection1();
    Iterator col1Ite = col1.iterator();
    int start1 = 8;
    int end1 = 13;
    int over1 = 0;
    
    currentRow = start1 - 1;
    while(col1Ite.hasNext()){
      currentRow++;
      if (currentRow >= end1) {
        copyRows(currentRow - 1,currentRow);
        over1++;
      }
      SSD = (SISalesStatusData) col1Ite.next();
      writeItem(workSheet,currentRow,0,SSD.getShippmentDate(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,1,SSD.getInitDateTime(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,2,SSD.getShipBranchName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,3,SSD.getOrderBranchName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,4,SSD.getChargeName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,5,SSD.getOrderCode(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,6,SSD.getCustName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,7,SSD.getIndividualCode(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,8,SSD.getCmdtyName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,9,SSD.getUsedNewFlg(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,10,SSD.getOrderType(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,11,SSD.getAmount(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,12,SSD.getUnitPriceIncTax(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,13,SSD.getTotalOfSellIncTax(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,14,SSD.getFeeIncTax(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,15,SSD.getSumOfDiscountIncTax(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,16,SSD.getTaxRate(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,17,SSD.getTotalOfPriceIncTax(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,18,SSD.getUnitCostIncTax(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,19,SSD.getTotalOfCostIncTax(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,20,SSD.getTotalOfGainIncTax(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,21,SSD.getTotalOfPrice(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,22,SSD.getTotalOfCost(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,23,SSD.getTotalOfGain(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,24,SSD.getGainRate(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,25,SSD.getDeliveryFee(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,26,SSD.getSumByPoint(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,27,SSD.getOrderRoute(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,28,SSD.getPaymethodName(),SIExcelConf.FIELD_STRING_TYPE);
      // writeItem(workSheet,currentRow,29,SSD.getRepeat(),SIExcelConf.FIELD_STRING_TYPE);
    }
    if(over1<1) currentRow=end1;
    else currentRow++;
    writeItem(workSheet,currentRow,11,SS.getSum1()[11],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,13,SS.getSum1()[0],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SS.getSum1()[1],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,15,SS.getSum1()[2],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,17,SS.getSum1()[3],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,19,SS.getSum1()[4],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,20,SS.getSum1()[5],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,21,SS.getSum1()[6],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,22,SS.getSum1()[7],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,23,SS.getSum1()[8],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,25,SS.getSum1()[9],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,26,SS.getSum1()[10],SIExcelConf.FIELD_NUMERIC_TYPE);
    String totalGainRate = "0";
    try {
      if (Double.parseDouble(SS.getSum1()[6])==0) throw new Exception();
      totalGainRate = String.valueOf(Double.parseDouble(SS.getSum1()[8]) / Double.parseDouble(SS.getSum1()[6]));
      totalGainRate = totalGainRate.substring(0,(totalGainRate.indexOf(".") + 4));
    } catch(Exception e) {
      totalGainRate = "0";
    }
    writeItem(workSheet,currentRow,24,totalGainRate,SIExcelConf.FIELD_NUMERIC_TYPE);
    
    //社内売上
    Collection col2 = SS.getCollection2();
    Iterator col2Ite = col2.iterator();
    int start2 = currentRow + 5;//初期値18
    int end2 = currentRow + 10;//初期値23
    int over2 = 0;
    
    currentRow = start2 - 1;
    while(col2Ite.hasNext()){
      currentRow++;
      if (currentRow >= end2) {
        copyRows(currentRow - 1,currentRow);
        over2++;
      }
      SSD = (SISalesStatusData) col2Ite.next();
      writeItem(workSheet,currentRow,0,SSD.getShippmentDate(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,1,SSD.getInitDateTime(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,2,SSD.getShipBranchName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,3,SSD.getOrderBranchName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,4,SSD.getChargeName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,5,SSD.getOrderCode(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,6,SSD.getCustName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,7,SSD.getIndividualCode(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,8,SSD.getCmdtyName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,9,SSD.getUsedNewFlg(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,10,SSD.getOrderType(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,11,SSD.getAmount(),SIExcelConf.FIELD_NUMERIC_TYPE);
      
      String price1 = SIUtil.multi(SSD.getTotalOfGainIncTax(), SSD.getDivideRate());
      String price2 = "0";
      String price3 = SIUtil.multi(SSD.getTotalOfGainIncTax(), SSD.getDivideRate());
      String price4 = SIUtil.multi(SSD.getTotalOfGain(), SSD.getDivideRate());
      String price5 = "0";
      String price6 = SIUtil.multi(SSD.getTotalOfGain(), SSD.getDivideRate());
      if (SSD.getOrderBranchCode().equals("17")) {
        try {
          price1 = SIUtil.div(SIUtil.multi(price1,"10"),"3");//EG補正（÷0.3）
          price3 = SIUtil.div(SIUtil.multi(price3,"10"),"3");//EG補正（÷0.3）
          price4 = SIUtil.div(SIUtil.multi(price4,"10"),"3");//EG補正（÷0.3）
          price6 = SIUtil.div(SIUtil.multi(price6,"10"),"3");//EG補正（÷0.3）
        }catch(Exception e){e.printStackTrace();}
      }
      
      writeItem(workSheet,currentRow,12,price1,SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,13,price2,SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,14,price3,SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,15,price4,SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,16,SSD.getTaxRate(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,17,price5,SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,18,price6,SIExcelConf.FIELD_NUMERIC_TYPE);
    }
    if(over2<1) currentRow=end2;
    else currentRow++;
    writeItem(workSheet,currentRow,11,SS.getSum2()[2],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum2()[0],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,13,"0",SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SS.getSum2()[0],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,15,SS.getSum2()[1],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,17,"0",SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,18,SS.getSum2()[1],SIExcelConf.FIELD_NUMERIC_TYPE);
    
    //社内仕入
    Collection col3 = SS.getCollection3();
    Iterator col3Ite = col3.iterator();
    int start3 = currentRow + 5;//初期値28
    int end3 = currentRow + 10;//初期値33
    int over3 = 0;
    
    currentRow = start3 - 1;
    while(col3Ite.hasNext()){
      currentRow++;
      if (currentRow >= end3) {
        copyRows(currentRow - 1,currentRow);
        over3++;
      }
      SSD = (SISalesStatusData) col3Ite.next();
      writeItem(workSheet,currentRow,0,SSD.getShippmentDate(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,1,SSD.getInitDateTime(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,2,SSD.getShipBranchName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,3,SSD.getOrderBranchName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,4,SSD.getChargeName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,5,SSD.getOrderCode(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,6,SSD.getCustName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,7,SSD.getIndividualCode(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,8,SSD.getCmdtyName(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,9,SSD.getUsedNewFlg(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,10,SSD.getOrderType(),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,11,SSD.getAmount(),SIExcelConf.FIELD_NUMERIC_TYPE);
      
      String price1 = "0";
      String price2 = SIUtil.multi(SSD.getTotalOfGainIncTax(), SSD.getDivideRate());
      String price3 = SIUtil.sub("0", SIUtil.multi(SSD.getTotalOfGainIncTax(), SSD.getDivideRate()));
      String price4 = "0";
      String price5 = SIUtil.multi(SSD.getTotalOfGain(), SSD.getDivideRate());
      String price6 = SIUtil.sub("0", SIUtil.multi(SSD.getTotalOfGain(), SSD.getDivideRate()));
      if (SSD.getOrderBranchCode().equals("17")) {
        try {
          price2 = SIUtil.div(SIUtil.multi(price2,"10"),"3");//EG補正（÷0.3）
          price3 = SIUtil.div(SIUtil.multi(price3,"10"),"3");//EG補正（÷0.3）
          price5 = SIUtil.div(SIUtil.multi(price5,"10"),"3");//EG補正（÷0.3）
          price6 = SIUtil.div(SIUtil.multi(price6,"10"),"3");//EG補正（÷0.3）
        }catch(Exception e){e.printStackTrace();}
      }
      
      writeItem(workSheet,currentRow,12,price1,SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,13,price2,SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,14,price3,SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,15,price4,SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,16,SSD.getTaxRate(),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,17,price5,SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,18,price6,SIExcelConf.FIELD_NUMERIC_TYPE);
    }
    if(over3<1) currentRow=end3;
    else currentRow++;
    writeItem(workSheet,currentRow,11,SS.getSum3()[2],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,"0",SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,13,SS.getSum3()[0],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub("0", SS.getSum3()[0]),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,15,"0",SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,17,SS.getSum3()[1],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,18,SIUtil.sub("0", SS.getSum3()[1]),SIExcelConf.FIELD_NUMERIC_TYPE);
    
    //内部取引支店別集計
    int start4 = currentRow + 5;//初期値38
    int end4 = currentRow + 19;//初期値52
    int over4 = 0;
    
    currentRow = start4 - 1;
    for (int i=0;i<SS.getSum4().length;i++){
      if (SS.getBRANCH()[i].equals(SS.getBranchCode())) continue;
      currentRow++;
      if (currentRow >= end4) {
        copyRows(currentRow -1,currentRow);
        over4++;
      }
      writeItem(workSheet,currentRow,0,SS.getBranchName(SS.getBRANCH()[i]),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,1,SS.getSum4()[i][0],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,2,SS.getSum4()[i][1],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,3,SIUtil.sub(SS.getSum4()[i][0], SS.getSum4()[i][1]),SIExcelConf.FIELD_NUMERIC_TYPE);
    }
    if(over4<1) currentRow=end4;
    else currentRow++;
    writeItem(workSheet,currentRow,1,SS.getTotalOfBranchSell(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,2,SS.getTotalOfBranchPurchase(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,3,SIUtil.sub(SS.getTotalOfBranchSell(), SS.getTotalOfBranchPurchase()),SIExcelConf.FIELD_NUMERIC_TYPE);
    
    //部門集計
    currentRow = start4;
    writeItem(workSheet,currentRow,9,SS.getSum5()[0][0],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum5()[1][0],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getSum5()[0][0], SS.getSum5()[2][0]), SS.getSum5()[1][0]),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getSum5()[2][0],SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getSum5()[0][1],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum5()[1][1],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getSum5()[0][1], SS.getSum5()[2][1]), SS.getSum5()[1][1]),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getSum5()[2][1],SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getSum5()[0][2],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum5()[1][2],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getSum5()[0][2], SS.getSum5()[2][2]), SS.getSum5()[1][2]),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getSum5()[2][2],SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getTotalOfBiyoSegment1(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getTotalOfBiyoSegment2(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getTotalOfBiyoSegment1(), SS.getTotalOfBiyoSegment3()), SS.getTotalOfBiyoSegment2()),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getTotalOfBiyoSegment3(),SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getSum5()[0][3],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum5()[1][3],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getSum5()[0][3], SS.getSum5()[2][3]), SS.getSum5()[1][3]),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getSum5()[2][3],SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getSum5()[0][4],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum5()[1][4],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getSum5()[0][4], SS.getSum5()[2][4]), SS.getSum5()[1][4]),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getSum5()[2][4],SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getSum5()[0][5],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum5()[1][5],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getSum5()[0][5], SS.getSum5()[2][5]), SS.getSum5()[1][5]),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getSum5()[2][5],SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getTotalOfEstheSegment1(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getTotalOfEstheSegment2(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getTotalOfEstheSegment1(), SS.getTotalOfEstheSegment3()), SS.getTotalOfEstheSegment2()),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getTotalOfEstheSegment3(),SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getFee(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,"0",SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SS.getFee(),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,"0",SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getDiscount(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,"0",SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SS.getDiscount(),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,"0",SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getTotalOfSegment1(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getTotalOfSegment2(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getTotalOfSegment1(), SS.getTotalOfSegment3()), SS.getTotalOfSegment2()),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getTotalOfSegment3(),SIExcelConf.FIELD_NUMERIC_TYPE);
    
    makePage(58 + over1 + over2 + over3 + over4);
  }
  
  public void makeSalesStatusAll(UISalesStatus SS){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    int currentRow = 0;
    
    //ヘッダー
    writeItem(workSheet,currentRow,26,new SIDateTime().getFullDateTime(),SIExcelConf.FIELD_STRING_TYPE);
    currentRow = 2;
    writeItem(workSheet,currentRow,1,"：" + SS.getYear() + "年" + SS.getMonth() + "月",SIExcelConf.FIELD_STRING_TYPE);
    currentRow++;
    String orderRouteStr = "すべて";
    if (SIUtil.isNotNull(SS.getOrderRoute())) {
      orderRouteStr = SIFlagUtil.getFlagName(SIFlagConf.SIFLAG_ORDER_ROUTE_INX,SS.getOrderRoute());
    }
    writeItem(workSheet,currentRow,1,"：" + orderRouteStr,SIExcelConf.FIELD_STRING_TYPE);
    
    int start1 = 8;
    int end1 = 21;
    int over1 = 0;
    
    currentRow = start1 - 1;
    for (int i=0;i<SS.getBRANCH().length;i++) {
      currentRow++;
      if (currentRow >= end1) {
        copyRows(currentRow - 1,currentRow);
        over1++;
        workSheet.addMergedRegion(new Region(currentRow,(short)15,currentRow,(short)16));
      }
      writeItem(workSheet,currentRow,3,SS.getBranchName(SS.getBRANCH()[i]),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,11,SS.getSumAll1()[i][11],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,13,SS.getSumAll1()[i][0],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,14,SS.getSumAll1()[i][1],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,15,SS.getSumAll1()[i][2],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,17,SS.getSumAll1()[i][3],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,19,SS.getSumAll1()[i][4],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,20,SS.getSumAll1()[i][5],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,21,SS.getSumAll1()[i][6],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,22,SS.getSumAll1()[i][7],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,23,SS.getSumAll1()[i][8],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,25,SS.getSumAll1()[i][9],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,26,SS.getSumAll1()[i][10],SIExcelConf.FIELD_NUMERIC_TYPE);
      String totalGainRate = "0";
      try {
        if (Double.parseDouble(SS.getSumAll1()[i][6])==0) throw new Exception();
        totalGainRate = String.valueOf(Double.parseDouble(SS.getSumAll1()[i][8]) / Double.parseDouble(SS.getSumAll1()[i][6]));
        totalGainRate = totalGainRate.substring(0,(totalGainRate.indexOf(".") + 4));
      } catch(Exception e) {
        totalGainRate = "0";
      }
      writeItem(workSheet,currentRow,24,totalGainRate,SIExcelConf.FIELD_NUMERIC_TYPE);
    }
    if(over1<1) currentRow=end1;
    else currentRow++;
    
    //合計
    String[] totalOfSumAll1 = SS.getTotalOfSumAll1();
    writeItem(workSheet,currentRow,11,totalOfSumAll1[11],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,13,totalOfSumAll1[0],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,totalOfSumAll1[1],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,15,totalOfSumAll1[2],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,17,totalOfSumAll1[3],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,19,totalOfSumAll1[4],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,20,totalOfSumAll1[5],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,21,totalOfSumAll1[6],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,22,totalOfSumAll1[7],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,23,totalOfSumAll1[8],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,25,totalOfSumAll1[9],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,26,totalOfSumAll1[10],SIExcelConf.FIELD_NUMERIC_TYPE);
    String totalGainRate = "0";
    try {
      if (Double.parseDouble(totalOfSumAll1[6])==0) throw new Exception();
      totalGainRate = String.valueOf(Double.parseDouble(totalOfSumAll1[8]) / Double.parseDouble(totalOfSumAll1[6]));
      totalGainRate = totalGainRate.substring(0,(totalGainRate.indexOf(".") + 4));
    } catch(Exception e) {
      totalGainRate = "0";
    }
    writeItem(workSheet,currentRow,24,totalGainRate,SIExcelConf.FIELD_NUMERIC_TYPE);
    
    //社内売上
    int start2 = currentRow + 5;//初期値26
    int end2 = currentRow + 18;//初期値39
    int over2 = 0;
    
    currentRow = start2 - 1;
    
    for (int j=0;j<SS.getBRANCH().length;j++) {
      currentRow++;
      if (currentRow >= end2) {
        copyRows(currentRow - 1,currentRow);
        over2++;
        workSheet.addMergedRegion(new Region(currentRow,(short)15,currentRow,(short)16));
      }
      writeItem(workSheet,currentRow,2,SS.getBranchName(SS.getBRANCH()[j]),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,11,SS.getSumAll2()[j][2],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,12,SS.getSumAll2()[j][0],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,14,SS.getSumAll2()[j][0],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,15,SS.getSumAll2()[j][1],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,18,SS.getSumAll2()[j][1],SIExcelConf.FIELD_NUMERIC_TYPE);
    }
    if(over2<1) currentRow=end2;
    else currentRow++;
    //合計
    String[] totalOfSumAll2 = SS.getTotalOfSumAll2();
    writeItem(workSheet,currentRow,11,totalOfSumAll2[2],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,totalOfSumAll2[0],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,totalOfSumAll2[0],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,15,totalOfSumAll2[1],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,18,totalOfSumAll2[1],SIExcelConf.FIELD_NUMERIC_TYPE);
    
    //社内仕入
    int start3 = currentRow + 5;//初期値44
    int end3 = currentRow + 18;//初期値57
    int over3 = 0;
    
    currentRow = start3 - 1;
    for (int k=0;k<SS.getBRANCH().length;k++) {
      currentRow++;
      if (currentRow >= end3) {
        copyRows(currentRow - 1,currentRow);
        over3++;
        workSheet.addMergedRegion(new Region(currentRow,(short)15,currentRow,(short)16));
      }
      writeItem(workSheet,currentRow,3,SS.getBranchName(SS.getBRANCH()[k]),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,11,SS.getSumAll3()[k][2],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,13,SS.getSumAll3()[k][0],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,14,SIUtil.sub("0", SS.getSumAll3()[k][0]),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,17,SS.getSumAll3()[k][1],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,18,SIUtil.sub("0", SS.getSumAll3()[k][1]),SIExcelConf.FIELD_NUMERIC_TYPE);
    }
    if(over3<1) currentRow=end3;
    else currentRow++;
    //合計
    String[] totalOfSumAll3 = SS.getTotalOfSumAll3();
    writeItem(workSheet,currentRow,11,totalOfSumAll3[2],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,13,totalOfSumAll3[0],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub("0", totalOfSumAll3[0]),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,17,totalOfSumAll3[1],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,18,SIUtil.sub("0", totalOfSumAll3[1]),SIExcelConf.FIELD_NUMERIC_TYPE);
    
    //内部取引支店別集計
    int start4 = currentRow + 5;//初期値62
    int end4 = currentRow + 20;//初期値78
    int over4 = 0;
    
    currentRow = start4 - 1;
    for (int i=0;i<SS.getSum4().length;i++){
      currentRow++;
      if (currentRow >= end4) {
        copyRows(currentRow -1,currentRow);
        over4++;
        workSheet.addMergedRegion(new Region(currentRow,(short)15,currentRow,(short)16));
      }
      writeItem(workSheet,currentRow,0,SS.getBranchName(SS.getBRANCH()[i]),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,1,SS.getSum4()[i][0],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,2,SS.getSum4()[i][1],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,3,SIUtil.sub(SS.getSum4()[i][0], SS.getSum4()[i][1]),SIExcelConf.FIELD_NUMERIC_TYPE);
    }
    if(over4<1) currentRow=end4;
    else currentRow++;
    writeItem(workSheet,currentRow,1,SS.getTotalOfBranchSell(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,2,SS.getTotalOfBranchPurchase(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,3,SIUtil.sub(SS.getTotalOfBranchSell(), SS.getTotalOfBranchPurchase()),SIExcelConf.FIELD_NUMERIC_TYPE);
    
    //部門集計
    currentRow = start4;
    writeItem(workSheet,currentRow,9,SS.getSum5()[0][0],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum5()[1][0],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getSum5()[0][0], SS.getSum5()[2][0]), SS.getSum5()[1][0]),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getSum5()[2][0],SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getSum5()[0][1],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum5()[1][1],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getSum5()[0][1], SS.getSum5()[2][1]), SS.getSum5()[1][1]),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getSum5()[2][1],SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getSum5()[0][2],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum5()[1][2],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getSum5()[0][2], SS.getSum5()[2][2]), SS.getSum5()[1][2]),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getSum5()[2][2],SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getTotalOfBiyoSegment1(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getTotalOfBiyoSegment2(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getTotalOfBiyoSegment1(), SS.getTotalOfBiyoSegment3()), SS.getTotalOfBiyoSegment2()),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getTotalOfBiyoSegment3(),SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getSum5()[0][3],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum5()[1][3],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getSum5()[0][3], SS.getSum5()[2][3]), SS.getSum5()[1][3]),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getSum5()[2][3],SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getSum5()[0][4],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum5()[1][4],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getSum5()[0][4], SS.getSum5()[2][4]), SS.getSum5()[1][4]),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getSum5()[2][4],SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getSum5()[0][5],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getSum5()[1][5],SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getSum5()[0][5], SS.getSum5()[2][5]), SS.getSum5()[1][5]),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getSum5()[2][5],SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getTotalOfEstheSegment1(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getTotalOfEstheSegment2(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getTotalOfEstheSegment1(), SS.getTotalOfEstheSegment3()), SS.getTotalOfEstheSegment2()),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getTotalOfEstheSegment3(),SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getFee(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,"0",SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SS.getFee(),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,"0",SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getDiscount(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,"0",SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SS.getDiscount(),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,"0",SIExcelConf.FIELD_NUMERIC_TYPE);
    currentRow++;
    writeItem(workSheet,currentRow,9,SS.getTotalOfSegment1(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,12,SS.getTotalOfSegment2(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,14,SIUtil.sub(SIUtil.add(SS.getTotalOfSegment1(), SS.getTotalOfSegment3()), SS.getTotalOfSegment2()),SIExcelConf.FIELD_NUMERIC_TYPE);
    //writeItem(workSheet,currentRow,17,SS.getTotalOfSegment3(),SIExcelConf.FIELD_NUMERIC_TYPE);
    
    // 支店集計
    currentRow = start4 - 1;
    for (int i=0;i<SS.getSum4().length;i++){
      currentRow++;
      writeItem(workSheet,currentRow,18,SS.getBranchName(SS.getBRANCH()[i]),SIExcelConf.FIELD_STRING_TYPE);
      writeItem(workSheet,currentRow,19,SS.getSumAll1()[i][6],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,20,SIUtil.add(SS.getSumAll1()[i][7], SS.getSum4()[i][1]),SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,currentRow,21,SIUtil.add(SS.getSumAll1()[i][8], SIUtil.sub(SS.getSum4()[i][0], SS.getSum4()[i][1])),SIExcelConf.FIELD_NUMERIC_TYPE);
    }
    currentRow++;
    writeItem(workSheet,currentRow,19,SS.getTotalOfSegment1(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,20,SS.getTotalOfSegment2(),SIExcelConf.FIELD_NUMERIC_TYPE);
    writeItem(workSheet,currentRow,21,SIUtil.sub(SIUtil.add(SS.getTotalOfSegment1(), SS.getTotalOfSegment3()), SS.getTotalOfSegment2()),SIExcelConf.FIELD_NUMERIC_TYPE);
    
    makePage(78 + over1 + over2 + over3 + over4);
  }
  
  public void makeSegmentStatus(UISegmentStatus SE){
    HSSFSheet workSheet = workBook.getSheetAt(this.sheetNum);
    
    int[] vAxis = {10,11,12,14,15,16};
    
    //ヘッダー
    writeItem(workSheet,2,1,"：" + SE.getYear() + "年" + SE.getMonth() + "月",SIExcelConf.FIELD_STRING_TYPE);
    
    for (int inx=0;inx<vAxis.length;inx++){
      //売上高
      writeItem(workSheet,vAxis[inx],3,SE.getSalesTotal()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],4,SE.getFeeTotal()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],5,SE.getDiscountTotal()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      
      //期首棚卸高
      writeItem(workSheet,vAxis[inx],8,SE.getTotalStockHead1()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],9,SE.getTotalStockHead2()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],10,SE.getTotalStockHead3()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],11,SE.getTotalStockHead4()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],12,SE.getTotalStockHead5()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],13,SE.getTotalStockHead6()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      
      //期中仕入高（入庫）
      writeItem(workSheet,vAxis[inx],16,SE.getTotalStockMiddleIn1()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],19,SE.getTotalStockMiddleIn2()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],20,SE.getTotalStockMiddleIn3()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],21,SE.getTotalStockMiddleIn4()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],22,SE.getTotalStockMiddleIn8()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],23,SE.getTotalStockMiddleIn5()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],24,SE.getTotalStockMiddleIn6()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],25,SE.getTotalStockMiddleIn7()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      
      //期中仕入高（出庫）
      writeItem(workSheet,vAxis[inx],26,SE.getTotalStockMiddleOut1()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],27,SE.getTotalStockMiddleOut2()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],28,SE.getTotalStockMiddleOut3()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],29,SE.getTotalStockMiddleOut4()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],30,SE.getTotalStockMiddleOut5()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],31,SE.getTotalStockMiddleOut6()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],32,SE.getTotalStockMiddleOut7()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],33,SE.getTotalStockMiddleOut8()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],34,SE.getTotalStockMiddleOut9()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],35,SE.getTotalStockMiddleOut10()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      
      //期末棚卸高
      writeItem(workSheet,vAxis[inx],38,SE.getTotalStockTail1()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],39,SE.getTotalStockTail2()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],40,SE.getTotalStockTail3()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],41,SE.getTotalStockTail4()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      
      //スポット在庫調整
      writeItem(workSheet,vAxis[inx],48,SE.getStockAdjustmentIn()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],49,SE.getStockAdjustmentOut()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      
      //商品評価損
      writeItem(workSheet,vAxis[inx],51,SE.getChangeRatingIn()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
      writeItem(workSheet,vAxis[inx],52,SE.getChangeRatingOut()[inx],SIExcelConf.FIELD_NUMERIC_TYPE);
    }
    makePage(33);
  }
  
  private void writeItem(HSSFSheet workSheet,int rownum,int cellnum,String value,String type){
    row = workSheet.getRow(rownum);
    if(row==null) row = workSheet.createRow(rownum);
    cell = row.getCell((short)cellnum);
    if(cell==null) cell = row.createCell((short)cellnum);
    writeItem(value,type);
  }
}