/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：DKW04201SFLogic
*   ソースファイル名：DKW04201SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年05月10日
*＜機能概要＞
*   発注一覧のビューロジックです。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/05/10   FJ）河野（拓）    新規作成
*
**********************************************************************/
package eo.web.webview.DKW04201SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;
import static eo.web.webview.common.JDKWebCommon.appendPrefix;
import static eo.web.webview.common.JDKWebCommon.getBean;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.fujitsu.futurity.web.x31.X31CMessageResult;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JDKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JDKCommonUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.DKW04202SF.DKW04202SFConst;
import eo.web.webview.common.JCCMessageCache;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JDKScreenConst;
import eo.web.webview.common.JDKWebCommon;
import eo.web.webview.mapping.DKSV0062_DKSV0062OPDBMapper;
import eo.web.webview.mapping.DKSV0064_DKSV0064OPDBMapper;



/**
 * DKW04201のビューロジック
 * <BR>
 * @author 富士通
 */
public class DKW04201SFLogic extends JCCWebBusinessLogic
{
	/**
	 * 生成シリアルバージョン
	 */
	private static final long serialVersionUID = 6317195145912278800L;
	
	/**
	 * サービスID（発注一覧初期表示）
	 */
	private static final String DKSV0062 = "DKSV0062";

	/**
	 * 画面表示区分（発注一覧情報取得）
	 */
	private static final String DKSV0064 = "DKSV0064";

	/**
	 * 画面表示区分（検索条件表示）
	 */
	private static final String SCREEN_DSP_DIV_SEARCH_COND = "1";
	
	/**
	 * 画面表示区分（一覧表示）
	 */
	private static final String SCREEN_DSP_DIV_ICHIRAN = "2";

	/**
	 * SCタイトル（発注一覧照会マップ）
	 */
	private static final String DKSV006401SC = "DKSV006401SC";

	/**
	 * 検索件数取得キー（最大検索件数）
	 */
	private static final String DKW04201_MAX_SHOW_CNT = "DKW04201_MAX_SHOW_CNT";
	/**
	 * 検索件数取得キー（表示件数）
	 */
	private static final String DKW04201_ROW_PER_PAGE = "DKW04201_ROW_PER_PAGE";

	/**
	 * ページング関連（表示ページ番号）
	 */
	private static final String DISPLAY_PAGE_NUM = "display_page_num";

	/**
	 * VARB
	 */
	private static final String L_PAG_ICRN = "L_PAG_ICRN";
	
	/**
	 * 発注一覧画面：表示桁数（メーカー名）
	 */
	private static final int DKW04201_DISPLENGTH_MAKKER_NM = 17;
	
	/**
	 * 発注一覧画面：表示桁数（入荷先）
	 */
	private static final int DKW04201_DISPLENGTH_NYUKA_SAKI = 17;

	/**
	 * イベント区分（訂正）
	 */
	private static final String EVENT_DIV_TEISE = "1";
	/**
	 * イベント区分（照会）
	 */
	private static final String EVENT_DIV_SHOKAI = "2";
	/**
	 * イベント区分（取消）
	 */
	private static final String EVENT_DIV_CANCEL = "3";

	/**
	 * サービスフォームBeanの初期化処理を行います。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean init() throws Exception
	{
		JCCWebCommon.getScreenInfo(this);

		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		String screenId = JCCWebCommon.getScreenId(this);
		
		// 運用日付を取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);

		// 運用日付を設定
		serviceFormBean.sendMessageString(DKW04201SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, opeDate);

		X31SDataBeanAccess[] paramBean = {serviceFormBean};
		
		// ユースケースID格納用マップを生成。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, DKSV0062);

		// マッピングクラスのインスタンスを生成
		DKSV0062_DKSV0062OPDBMapper mapper = new DKSV0062_DKSV0062OPDBMapper();
		HashMap dataMap = new HashMap();
		mapper.setDKSV006201SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// 検索結果格納用マップ
		HashMap outputMap = new HashMap();

		// 検索処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);

		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		JCCMessageCache.setMessageCache();

		mapper.getDKSV006201SC(paramBean, outputMap);
		mapper.getDKSV006202SC(paramBean, outputMap);

		pushEmptyToTopOfPulldown(DKW04201SFConst.SOKO_INFO, DKW04201SFConst.SOKO_CD_LIST_03, DKW04201SFConst.SOKO_NM_LIST_03);
		pushEmptyToTopOfPulldown(DKW04201SFConst.MAKER_INFO, DKW04201SFConst.MAKER_CD_LIST_02, DKW04201SFConst.MAKER_NM_LIST_02);

		// メニューからの遷移
		if (JDKCommonUtil.isNull(screenId))
		{
			serviceFormBean.sendMessageString(DKW04201SFConst.REFERID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW04201);
			serviceFormBean.sendMessageString(DKW04201SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_DSP_DIV_SEARCH_COND);
		}
		else
		{
			String sokoCd = serviceFormBean.sendMessageString(DKW04201SFConst.SOKO_CD, X31CWebConst.DATABEAN_GET_VALUE);
			int sokoIndex = this.getIndexFromCode(sokoCd, serviceFormBean, DKW04201SFConst.SOKO_INFO, DKW04201SFConst.SOKO_CD_LIST_03);
			X31SDataBeanAccessArray sokoArray = serviceFormBean.getDataBeanArray(DKW04201SFConst.SOKO_INFO);
			sokoArray.getDataBean(0).sendMessageString(DKW04201SFConst.SOKO_CD_03, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(sokoIndex));
			String makerCd = serviceFormBean.sendMessageString(DKW04201SFConst.MAKER_CD, X31CWebConst.DATABEAN_GET_VALUE);
			int makerIndex = this.getIndexFromCode(makerCd, serviceFormBean, DKW04201SFConst.MAKER_INFO, DKW04201SFConst.MAKER_CD_LIST_02);
			X31SDataBeanAccessArray makerArray = serviceFormBean.getDataBeanArray(DKW04201SFConst.MAKER_INFO);
			makerArray.getDataBean(0).sendMessageString(DKW04201SFConst.MAKER_CD_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(makerIndex));

			// 完了画面からの遷移
			if (JDKScreenConst.SCREEN_ID_DKW04204.equals(screenId))
			{
				// 検索ボタン押下処理呼出
				return search();
			}
		}

		// 画面遷移処理
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW04201);

		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW04201);

		return true;
	}

	
	/**
	 * 検索ボタン押下時にサービスを呼び出します。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean search() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		
		// 発注日（FROM）を取得します
		//データタイプを取得します。
		X31SDataBeanAccessArray hattchuYMDStaArray = serviceFormBean.getDataBeanArray(DKW04201SFConst.HATTCHU_YMD_STA);
		X31SDataBeanAccess hattchuYMDSta = hattchuYMDStaArray.getDataBean(0);
		
		String fromyear = hattchuYMDSta.sendMessageString(DKW04201SFConst.YEAR_01, X31CWebConst.DATABEAN_GET_VALUE);
		String frommon = hattchuYMDSta.sendMessageString(DKW04201SFConst.MON_01, X31CWebConst.DATABEAN_GET_VALUE);
		String fromday = hattchuYMDSta.sendMessageString(DKW04201SFConst.DAY_01, X31CWebConst.DATABEAN_GET_VALUE);

		if (!JDKCommonUtil.isNull(fromyear) || !JDKCommonUtil.isNull(frommon) || !JDKCommonUtil.isNull(fromday))
		{
			String fromymd = fromyear + frommon + fromday;
			serviceFormBean.sendMessageString(DKW04201SFConst.HATTCHU_YMD_STA_SAVE, X31CWebConst.DATABEAN_SET_VALUE, fromymd);
		}
		else
		{
			JDKWebCommon.setData(serviceFormBean, "", DKW04201SFConst.HATTCHU_YMD_STA_SAVE);
		}

		// 発注日（TO）を取得します
		//データタイプを取得します。
		X31SDataBeanAccessArray hattchuYMDEndArray = serviceFormBean.getDataBeanArray(DKW04201SFConst.HATTCHU_YMD_END);
		X31SDataBeanAccess hattchuYMDEnd = hattchuYMDEndArray.getDataBean(0);
		
		String toyear = hattchuYMDEnd.sendMessageString(DKW04201SFConst.YEAR_01, X31CWebConst.DATABEAN_GET_VALUE);
		String tomon = hattchuYMDEnd.sendMessageString(DKW04201SFConst.MON_01, X31CWebConst.DATABEAN_GET_VALUE);
		String today = hattchuYMDEnd.sendMessageString(DKW04201SFConst.DAY_01, X31CWebConst.DATABEAN_GET_VALUE);

		if (!JDKCommonUtil.isNull(toyear) || !JDKCommonUtil.isNull(tomon) || !JDKCommonUtil.isNull(today))
		{
			String toymd = toyear + tomon + today;
			serviceFormBean.sendMessageString(DKW04201SFConst.HATTCHU_YMD_END_SAVE, X31CWebConst.DATABEAN_SET_VALUE, toymd);
		}
		else
		{
			JDKWebCommon.setData(serviceFormBean, "", DKW04201SFConst.HATTCHU_YMD_END_SAVE);
		}

		// 検索用倉庫コードを設定
		X31SDataBeanAccessArray ttmArray = serviceFormBean.getDataBeanArray(DKW04201SFConst.SOKO_INFO);
		X31SDataBeanAccess ttm = ttmArray.getDataBean(0);
		String tIndex = ttm.sendMessageString(DKW04201SFConst.SOKO_CD_03, X31CWebConst.DATABEAN_GET_VALUE);
		String sokoCode = ttm.sendMessageString(DKW04201SFConst.SOKO_CD_LIST_03, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(tIndex));
		serviceFormBean.sendMessageString(DKW04201SFConst.SOKO_CD, X31CWebConst.DATABEAN_SET_VALUE, sokoCode);
		JDKWebCommon.setData(serviceFormBean, sokoCode, DKW04201SFConst.SOKO_CD_SAVE);
		
		// 倉庫が指定されていたら棚を設定
		String shelfCd = "";
		if (!JDKCommonUtil.isNull(sokoCode))
		{
			shelfCd = JDKStrConst.TUJYO_TANA;
		}
		JDKWebCommon.setData(serviceFormBean, shelfCd, DKW04201SFConst.SHELF_CD);
		JDKWebCommon.setData(serviceFormBean, shelfCd, DKW04201SFConst.SHELF_CD_SAVE);

		// メーカーを設定
		X31SDataBeanAccessArray makerArray = serviceFormBean.getDataBeanArray(DKW04201SFConst.MAKER_INFO);
		X31SDataBeanAccess maker = makerArray.getDataBean(0);
		String makerIndex = maker.sendMessageString(DKW04201SFConst.MAKER_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		String makerCode = maker.sendMessageString(DKW04201SFConst.MAKER_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(makerIndex));
		serviceFormBean.sendMessageString(DKW04201SFConst.MAKER_CD, X31CWebConst.DATABEAN_SET_VALUE, makerCode);
		JDKWebCommon.setData(serviceFormBean, makerCode, DKW04201SFConst.MAKER_CD_SAVE);

		// 発注番号を取得
		String hattchuNo = serviceFormBean.sendMessageString(DKW04201SFConst.HACHU_NO, X31CWebConst.DATABEAN_GET_VALUE);
		JDKWebCommon.setData(serviceFormBean, hattchuNo, DKW04201SFConst.HATTCHU_NO_SAVE);

		// 行番号を設定
		serviceFormBean.sendMessageLong(DKW04201SFConst.SELECTROW, X31CWebConst.DATABEAN_SET_VALUE, 0L);

		// ページング情報のクリア
		JCCWebCommon.clearPageLinkInfo(this, JDKScreenConst.SCREEN_ID_DKW04201);

		// 検索実行
		boolean ret = this.execServiceSearch(serviceFormBean);
		if (ret == false)
		{
			return true;
		}

		// 画面遷移処理
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW04201);

		// 遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW04201);

		return true;
	}

	/**
	 * 訂正ボタン押下時に遷移先の画面を決定します。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean showModify() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 検索条件を戻す
		this.restoreSearchCondition(serviceFormBean);

		// 選択行
		int selectRow = JDKWebCommon.getDataL(serviceFormBean, DKW04201SFConst.SELECTROW).intValue();

		// 発注情報
		X31SDataBeanAccessArray hattchuInfo = serviceFormBean.getDataBeanArray(DKW04201SFConst.HATTCHU_INFO);
		// 選択された発注データ
		X31SDataBeanAccess hattchuBean = hattchuInfo.getDataBean(selectRow);

		// 引き継ぎ情報を格納するMAP
		HashMap hikitsugiMap = new HashMap();

		hikitsugiMap.put(DKW04202SFConst.REFERID, JDKScreenConst.SCREEN_ID_DKW04201);
		hikitsugiMap.put(DKW04202SFConst.EVENT_DIV, EVENT_DIV_TEISE);
		hikitsugiMap.put(DKW04202SFConst.HATTCHU_LOT_NO, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.HATTCHU_NO_04));
		hikitsugiMap.put(DKW04202SFConst.HATTCHU_ADD_YMD, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.HATTCHU_YMD_04));
		hikitsugiMap.put(DKW04202SFConst.HATTCHU_MAKER_CD, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.MAKER_CD_04));
		hikitsugiMap.put(DKW04202SFConst.MAKER_NM, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.MAKER_NM_04));
		hikitsugiMap.put(DKW04202SFConst.SOKO_CD, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.SOKO_CD_04));
		hikitsugiMap.put(DKW04202SFConst.SOKO_NM, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.SOKO_NM_04));
		hikitsugiMap.put(DKW04202SFConst.SHELF_CD, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.SHELF_CD_04));
		hikitsugiMap.put(DKW04202SFConst.SHELF_NM, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.SHEL_NM_04));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW04202, hikitsugiMap);

		DEBUG_LOG.debug("引継ぎ情報の内容：");
		DEBUG_LOG.debug(hikitsugiMap);

		// 戻る際に必要な情報
		HashMap returnMap = this.getReturnMap(serviceFormBean);

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW04201, returnMap);

		JCCWebCommon.setScreenId(this, JDKScreenConst.SCREEN_ID_DKW04202, JDKScreenConst.SCREEN_ID_DKW04201);

		//遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
		X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW04202);

		//遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
		X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW04202);
		return true;
	}

	/**
	 * 取消確認ボタン押下時に遷移先の画面を決定します。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean showCancelConfirm() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 検索条件を戻す
		this.restoreSearchCondition(serviceFormBean);

		// 選択行
		int selectRow = JDKWebCommon.getDataL(serviceFormBean, DKW04201SFConst.SELECTROW).intValue();

		// 発注情報
		X31SDataBeanAccessArray hattchuInfo = serviceFormBean.getDataBeanArray(DKW04201SFConst.HATTCHU_INFO);
		// 選択された発注データ
		X31SDataBeanAccess hattchuBean = hattchuInfo.getDataBean(selectRow);

		// 引き継ぎ情報を格納するMAP
		HashMap hikitsugiMap = new HashMap();

		hikitsugiMap.put(DKW04202SFConst.REFERID, JDKScreenConst.SCREEN_ID_DKW04201);
		hikitsugiMap.put(DKW04202SFConst.EVENT_DIV, EVENT_DIV_CANCEL);
		hikitsugiMap.put(DKW04202SFConst.HATTCHU_LOT_NO, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.HATTCHU_NO_04));
		hikitsugiMap.put(DKW04202SFConst.HATTCHU_ADD_YMD, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.HATTCHU_YMD_04));
		hikitsugiMap.put(DKW04202SFConst.HATTCHU_MAKER_CD, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.MAKER_CD_04));
		hikitsugiMap.put(DKW04202SFConst.MAKER_NM, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.MAKER_NM_04));
		hikitsugiMap.put(DKW04202SFConst.SOKO_CD, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.SOKO_CD_04));
		hikitsugiMap.put(DKW04202SFConst.SOKO_NM, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.SOKO_NM_04));
		hikitsugiMap.put(DKW04202SFConst.SHELF_CD, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.SHELF_CD_04));
		hikitsugiMap.put(DKW04202SFConst.SHELF_NM, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.SHEL_NM_04));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW04202, hikitsugiMap);

		DEBUG_LOG.debug("引継ぎ情報の内容：");
		DEBUG_LOG.debug(hikitsugiMap);

		// 戻る際に必要な情報
		HashMap returnMap = this.getReturnMap(serviceFormBean);

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW04201, returnMap);

		JCCWebCommon.setScreenId(this, JDKScreenConst.SCREEN_ID_DKW04202, JDKScreenConst.SCREEN_ID_DKW04201);
		
		//遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
		X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW04202);

		//遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
		X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW04202);
		return true;
	}

	/**
	 * 照会ボタン押下時に遷移先の画面を決定します。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public boolean showShokai() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 検索条件を戻す
		this.restoreSearchCondition(serviceFormBean);

		// 選択行
		int selectRow = JDKWebCommon.getDataL(serviceFormBean, DKW04201SFConst.SELECTROW).intValue();

		// 発注情報
		X31SDataBeanAccessArray hattchuInfo = serviceFormBean.getDataBeanArray(DKW04201SFConst.HATTCHU_INFO);
		// 選択された発注データ
		X31SDataBeanAccess hattchuBean = hattchuInfo.getDataBean(selectRow);

		// 引き継ぎ情報を格納するMAP
		HashMap hikitsugiMap = new HashMap();

		hikitsugiMap.put(DKW04202SFConst.REFERID, JDKScreenConst.SCREEN_ID_DKW04201);
		hikitsugiMap.put(DKW04202SFConst.EVENT_DIV, EVENT_DIV_SHOKAI);
		hikitsugiMap.put(DKW04202SFConst.HATTCHU_LOT_NO, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.HATTCHU_NO_04));
		hikitsugiMap.put(DKW04202SFConst.HATTCHU_ADD_YMD, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.HATTCHU_YMD_04));
		hikitsugiMap.put(DKW04202SFConst.HATTCHU_MAKER_CD, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.MAKER_CD_04));
		hikitsugiMap.put(DKW04202SFConst.MAKER_NM, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.MAKER_NM_04));
		hikitsugiMap.put(DKW04202SFConst.SOKO_CD, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.SOKO_CD_04));
		hikitsugiMap.put(DKW04202SFConst.SOKO_NM, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.SOKO_NM_04));
		hikitsugiMap.put(DKW04202SFConst.SHELF_CD, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.SHELF_CD_04));
		hikitsugiMap.put(DKW04202SFConst.SHELF_NM, JDKWebCommon.getData(hattchuBean, DKW04201SFConst.SHEL_NM_04));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW04202, hikitsugiMap);

		DEBUG_LOG.debug("引継ぎ情報の内容：");
		DEBUG_LOG.debug(hikitsugiMap);

		// 戻る際に必要な情報
		HashMap returnMap = this.getReturnMap(serviceFormBean);

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW04201, returnMap);

		JCCWebCommon.setScreenId(this, JDKScreenConst.SCREEN_ID_DKW04202, JDKScreenConst.SCREEN_ID_DKW04201);

		//遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
		X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW04202);

		//遷移先の画面名を共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
		X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_NAME_DKW04202);
		return true;
	}

	/**
	 * クリアボタン押下時にメニューから遷移したときと同じ状態に戻します。
	 * <br>
	 * @return 処理の成否
	 * @throws Exception
	 */
	public boolean clear() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		serviceFormBean.sendMessageString(DKW04201SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_DSP_DIV_SEARCH_COND);
		serviceFormBean.sendMessageString(DKW04201SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
		serviceFormBean.sendMessageString(DKW04201SFConst.SOKO_CD, X31CWebConst.DATABEAN_SET_VALUE, "");

		serviceFormBean.sendMessageString(DKW04201SFConst.SEARCH_CNT, X31CWebConst.DATABEAN_SET_VALUE, "0");
		serviceFormBean.getDataBeanArray(DKW04201SFConst.SOKO_INFO).clearArray();
		
		//発注日(FROM)をクリア
		X31SDataBeanAccessArray hattchuYMDStaArray = serviceFormBean.getDataBeanArray(DKW04201SFConst.HATTCHU_YMD_STA);
		X31SDataBeanAccess hattchuYMDSta = hattchuYMDStaArray.getDataBean(0);
		JDKWebCommon.setData(hattchuYMDSta, "", DKW04201SFConst.YEAR_01);
		JDKWebCommon.setData(hattchuYMDSta, "", DKW04201SFConst.MON_01);
		JDKWebCommon.setData(hattchuYMDSta, "", DKW04201SFConst.DAY_01);

		//発注日(TO)をクリア
		X31SDataBeanAccessArray hattchuYMDEndArray = serviceFormBean.getDataBeanArray(DKW04201SFConst.HATTCHU_YMD_END);
		X31SDataBeanAccess hattchuYMDEnd = hattchuYMDEndArray.getDataBean(0);
		JDKWebCommon.setData(hattchuYMDEnd, "", DKW04201SFConst.YEAR_01);
		JDKWebCommon.setData(hattchuYMDEnd, "", DKW04201SFConst.MON_01);
		JDKWebCommon.setData(hattchuYMDEnd, "", DKW04201SFConst.DAY_01);

		JDKWebCommon.setData(serviceFormBean, "", DKW04201SFConst.HATTCHU_NO_04);
		JDKWebCommon.setData(serviceFormBean, "", DKW04201SFConst.MAKER_CD);
		serviceFormBean.getDataBeanArray(DKW04201SFConst.MAKER_INFO).clearArray();
		JDKWebCommon.setData(serviceFormBean, "", DKW04201SFConst.SOKO_CD);
		serviceFormBean.getDataBeanArray(DKW04201SFConst.SOKO_INFO).clearArray();
		JDKWebCommon.setData(serviceFormBean, "", DKW04201SFConst.SHELF_CD);

		JDKWebCommon.setData(serviceFormBean, "", DKW04201SFConst.HATTCHU_YMD_STA_SAVE);
		JDKWebCommon.setData(serviceFormBean, "", DKW04201SFConst.HATTCHU_YMD_END_SAVE);
		JDKWebCommon.setData(serviceFormBean, "", DKW04201SFConst.HATTCHU_NO_SAVE);
		JDKWebCommon.setData(serviceFormBean, "", DKW04201SFConst.MAKER_CD_SAVE);
		JDKWebCommon.setData(serviceFormBean, "", DKW04201SFConst.SOKO_CD_SAVE);
		JDKWebCommon.setData(serviceFormBean, "", DKW04201SFConst.SHELF_CD_SAVE);

		JCCWebCommon.setScreenId(this, JDKScreenConst.SCREEN_ID_DKW04201, null);

		// 初期表示処理を実行する
		init();

		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW04201);

		return true;
	}

	/**
	 * ページングを処理します。
	 * @author 富士通
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean paging() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 検索条件を戻す
		this.restoreSearchCondition(serviceFormBean);

		// 行番号を設定
		serviceFormBean.sendMessageLong(DKW04201SFConst.SELECTROW, X31CWebConst.DATABEAN_SET_VALUE, 0L);

		// 検索実行
		boolean ret = this.execServiceSearch(serviceFormBean);
		if (ret == false)
		{
			return true;
		}

		return true;
	}

	/**
	 * 検索処理を実行します。
	 * @param bean サービスフォームビーン
	 * @return true:エラーなし false:エラーあり
	 */
	@SuppressWarnings("unchecked")
	private boolean execServiceSearch(X31SDataBeanAccess bean)
	{
		bean.getDataBeanArray(DKW04201SFConst.HATTCHU_INFO).clearArray();

		X31SDataBeanAccess[] paramBean = {bean};
		
		// ユースケースID格納用マップを生成。
		HashMap paramMap = new HashMap();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, DKSV0064);
		
		// マッピングクラスのインスタンスを生成
		DKSV0064_DKSV0064OPDBMapper mapper = new DKSV0064_DKSV0064OPDBMapper();

		HashMap dataMap = new HashMap();
		mapper.setDKSV006401SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		
		//ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "0", DKSV006401SC, dataMap);

		// 検索結果格納用マップ
		HashMap outputMap = new HashMap();

		// 検索処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);

		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return false;
		}

		mapper.getDKSV006401SC(paramBean, outputMap);
		
		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg(DKSV006401SC, outputMap);

		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			// 検索結果が0件の場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			JDKWebCommon.setData(bean, SCREEN_DSP_DIV_SEARCH_COND, DKW04201SFConst.SCREEN_DSP_DIV);
			return false;
		}
		else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			String maxSearchCnt = JCCWebCommon.getSearchConst(DKW04201_MAX_SHOW_CNT);
			// 検索結果が最大検索件数超えの場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, new String[] {maxSearchCnt});
			JDKWebCommon.setData(bean, SCREEN_DSP_DIV_SEARCH_COND, DKW04201SFConst.SCREEN_DSP_DIV);
			return false;
		}

		//ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this, "0", DKSV006401SC, outputMap);
		
		//検索のコマンドIDを設定する
		JCCWebCommon.setSearchCommand(this, L_PAG_ICRN);

		// 表示ページ番号
		String displayPageNum = (String)((HashMap)outputMap.get(DKSV006401SC)).get(DISPLAY_PAGE_NUM);
		if (JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchErrFlg))
		{
			displayPageNum = "1";
		}
		JDKWebCommon.setData(bean, displayPageNum, DKW04201SFConst.PAGE_NO);
		int iDispPageNum = Integer.parseInt(displayPageNum, 10);
		// 表示件数
		String rowPerPage = JCCWebCommon.getSearchConst(DKW04201_ROW_PER_PAGE);
		int iRowPerPage = Integer.parseInt(rowPerPage, 10);
		// 開始行
		int start = (iDispPageNum - 1) * iRowPerPage;

		// 発注情報
		X31SDataBeanAccessArray hattchuInfoList = bean.getDataBeanArray(DKW04201SFConst.HATTCHU_INFO);

		int cnt = hattchuInfoList.getCount();

		bean.sendMessageString(DKW04201SFConst.SEARCH_CNT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(cnt));

		for (int i = 0; i < cnt; i++)
		{
			X31SDataBeanAccess subbean1 = hattchuInfoList.getDataBean(i);

			// 発注一覧照会明細リスト.項番
			subbean1.sendMessageString(DKW04201SFConst.NO_04, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(start + i + 1));
			
			// 発注一覧照会明細リスト.偶数行フラグ
			subbean1.sendMessageString(DKW04201SFConst.EVEN_ROW_FLG_04, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i % 2));
			
			// メーカー表示名
			String makerNm = subbean1.sendMessageString(DKW04201SFConst.MAKER_NM_04, X31CWebConst.DATABEAN_GET_VALUE);
			String makerDispNm = JDKWebCommon.substr(makerNm, 0, DKW04201_DISPLENGTH_MAKKER_NM);
			subbean1.sendMessageString(DKW04201SFConst.MAKER_DSP_NM_04, X31CWebConst.DATABEAN_SET_VALUE, makerDispNm);
			
			// 倉庫表示名
			String sokoNm = subbean1.sendMessageString(DKW04201SFConst.SOKO_NM_04, X31CWebConst.DATABEAN_GET_VALUE);
			String sokoDispNm = JDKWebCommon.substr(sokoNm, 0, DKW04201_DISPLENGTH_NYUKA_SAKI);
			subbean1.sendMessageString(DKW04201SFConst.SOKO_DSP_NM_04, X31CWebConst.DATABEAN_SET_VALUE, sokoDispNm);
		}

		bean.sendMessageString(DKW04201SFConst.SCREEN_DSP_DIV, X31CWebConst.DATABEAN_SET_VALUE, SCREEN_DSP_DIV_ICHIRAN);

		return true;
	}

	/**
	 * 検索条件の復元。
	 * @param bean サービスフォームビーン
	 */
	private void restoreSearchCondition(X31SDataBeanAccess bean)
	{
		String hattchuYmdFrom = JDKWebCommon.getData(bean, DKW04201SFConst.HATTCHU_YMD_STA_SAVE);
		String hattchuYmdFromYear = JDKWebCommon.substr(hattchuYmdFrom, 0, 4);
		String hattchuYmdFromMon = JDKWebCommon.substr(hattchuYmdFrom, 4, 6);
		String hattchuYmdFromDay = JDKWebCommon.substr(hattchuYmdFrom, 6, 8);
		this.setDataToArray(bean, DKW04201SFConst.HATTCHU_YMD_STA, 0, DKW04201SFConst.YEAR_01, hattchuYmdFromYear);
		this.setDataToArray(bean, DKW04201SFConst.HATTCHU_YMD_STA, 0, DKW04201SFConst.MON_01, hattchuYmdFromMon);
		this.setDataToArray(bean, DKW04201SFConst.HATTCHU_YMD_STA, 0, DKW04201SFConst.DAY_01, hattchuYmdFromDay);

		String hattchuYmdTo = JDKWebCommon.getData(bean, DKW04201SFConst.HATTCHU_YMD_END_SAVE);
		String hattchuYmdToYear = JDKWebCommon.substr(hattchuYmdTo, 0, 4);
		String hattchuYmdToMon = JDKWebCommon.substr(hattchuYmdTo, 4, 6);
		String hattchuYmdToDay = JDKWebCommon.substr(hattchuYmdTo, 6, 8);
		this.setDataToArray(bean, DKW04201SFConst.HATTCHU_YMD_END, 0, DKW04201SFConst.YEAR_01, hattchuYmdToYear);
		this.setDataToArray(bean, DKW04201SFConst.HATTCHU_YMD_END, 0, DKW04201SFConst.MON_01, hattchuYmdToMon);
		this.setDataToArray(bean, DKW04201SFConst.HATTCHU_YMD_END, 0, DKW04201SFConst.DAY_01, hattchuYmdToDay);

		// メーカー
		String makerCd = JDKWebCommon.getData(bean, DKW04201SFConst.MAKER_CD_SAVE);
		if (JDKCommonUtil.isNull(makerCd))
		{
			this.setDataToArray(bean, DKW04201SFConst.MAKER_INFO, 0, DKW04201SFConst.MAKER_CD_02, "0");
		}
		else
		{
			int index = this.getIndexFromCode(makerCd, bean, DKW04201SFConst.MAKER_INFO, DKW04201SFConst.MAKER_CD_LIST_02);
			this.setDataToArray(bean, DKW04201SFConst.MAKER_INFO, 0, DKW04201SFConst.MAKER_CD_02, String.valueOf(index));
		}

		// 発注番号
		JDKWebCommon.setData(bean, JDKWebCommon.getData(bean, DKW04201SFConst.HATTCHU_NO_SAVE), DKW04201SFConst.HACHU_NO);

		// 倉庫
		String sokoCd = JDKWebCommon.getData(bean, DKW04201SFConst.SOKO_CD_SAVE);
		if (JDKCommonUtil.isNull(sokoCd))
		{
			this.setDataToArray(bean, DKW04201SFConst.SOKO_INFO, 0, DKW04201SFConst.SOKO_CD_03, "0");
		}
		else
		{
			int index = this.getIndexFromCode(sokoCd, bean, DKW04201SFConst.SOKO_INFO, DKW04201SFConst.SOKO_CD_LIST_03);
			this.setDataToArray(bean, DKW04201SFConst.SOKO_INFO, 0, DKW04201SFConst.SOKO_CD_03, String.valueOf(index));
		}

		// 棚
		JDKWebCommon.setData(bean, JDKWebCommon.getData(bean, DKW04201SFConst.SHELF_CD_SAVE), DKW04201SFConst.SHELF_CD);
	}

	/**
	 * 次画面からの戻りの際に必要な情報をMAPで返す。
	 * @param bean サービスフォームビーン
	 * @return 戻る際に必要な情報
	 */
	@SuppressWarnings("unchecked")
	private HashMap getReturnMap(X31SDataBeanAccess bean)
	{
		// 戻る際に必要な情報を格納するMAP
		HashMap returnMap = new HashMap();

		returnMap.put(DKW04201SFConst.SCREEN_DSP_DIV, JDKWebCommon.getData(this, DKW04201SFConst.SCREEN_DSP_DIV));

		List returnHattchuYmdFromList = new ArrayList();
		HashMap hattchuYmdFromMap = new HashMap();
		hattchuYmdFromMap.put(DKW04201SFConst.YEAR_01, 
				this.getDataFromArray(bean, DKW04201SFConst.HATTCHU_YMD_STA, 0, DKW04201SFConst.YEAR_01));
		hattchuYmdFromMap.put(DKW04201SFConst.MON_01, 
				this.getDataFromArray(bean, DKW04201SFConst.HATTCHU_YMD_STA, 0, DKW04201SFConst.MON_01));
		hattchuYmdFromMap.put(DKW04201SFConst.DAY_01, 
				this.getDataFromArray(bean, DKW04201SFConst.HATTCHU_YMD_STA, 0, DKW04201SFConst.DAY_01));
		returnHattchuYmdFromList.add(hattchuYmdFromMap);
		returnMap.put(DKW04201SFConst.HATTCHU_YMD_STA, returnHattchuYmdFromList);

		List returnHattchuYmdToList = new ArrayList();
		HashMap hattchuYmdToMap = new HashMap();
		hattchuYmdToMap.put(DKW04201SFConst.YEAR_01, 
				this.getDataFromArray(bean, DKW04201SFConst.HATTCHU_YMD_END, 0, DKW04201SFConst.YEAR_01));
		hattchuYmdToMap.put(DKW04201SFConst.MON_01, 
				this.getDataFromArray(bean, DKW04201SFConst.HATTCHU_YMD_END, 0, DKW04201SFConst.MON_01));
		hattchuYmdToMap.put(DKW04201SFConst.DAY_01, 
				this.getDataFromArray(bean, DKW04201SFConst.HATTCHU_YMD_END, 0, DKW04201SFConst.DAY_01));
		returnHattchuYmdToList.add(hattchuYmdToMap);
		returnMap.put(DKW04201SFConst.HATTCHU_YMD_END, returnHattchuYmdToList);

		returnMap.put(DKW04201SFConst.MAKER_CD, JDKWebCommon.getData(this, DKW04201SFConst.MAKER_CD));
		returnMap.put(DKW04201SFConst.HACHU_NO, JDKWebCommon.getData(this, DKW04201SFConst.HACHU_NO));
		returnMap.put(DKW04201SFConst.SOKO_CD, JDKWebCommon.getData(this, DKW04201SFConst.SOKO_CD));
		returnMap.put(DKW04201SFConst.SHELF_CD, JDKWebCommon.getData(this, DKW04201SFConst.SHELF_CD));
		returnMap.put(DKW04201SFConst.SELECTROW, JDKWebCommon.getDataL(this, DKW04201SFConst.SELECTROW));
		returnMap.put(DKW04201SFConst.SEARCH_CNT, JDKWebCommon.getData(this, DKW04201SFConst.SEARCH_CNT));
		returnMap.put(DKW04201SFConst.PAGE_NO, JDKWebCommon.getData(this, DKW04201SFConst.PAGE_NO));
		returnMap.put(DKW04201SFConst.HATTCHU_YMD_STA_SAVE, JDKWebCommon.getData(this, DKW04201SFConst.HATTCHU_YMD_STA_SAVE));
		returnMap.put(DKW04201SFConst.HATTCHU_YMD_END_SAVE, JDKWebCommon.getData(this, DKW04201SFConst.HATTCHU_YMD_END_SAVE));
		returnMap.put(DKW04201SFConst.MAKER_CD_SAVE, JDKWebCommon.getData(this, DKW04201SFConst.MAKER_CD_SAVE));
		returnMap.put(DKW04201SFConst.HATTCHU_NO_SAVE, JDKWebCommon.getData(this, DKW04201SFConst.HATTCHU_NO_SAVE));
		returnMap.put(DKW04201SFConst.SOKO_CD_SAVE, JDKWebCommon.getData(this, DKW04201SFConst.SOKO_CD_SAVE));
		returnMap.put(DKW04201SFConst.SHELF_CD_SAVE, JDKWebCommon.getData(this, DKW04201SFConst.SHELF_CD_SAVE));

		List returnHattchuInfo = new ArrayList();
		X31SDataBeanAccessArray hattchuList = bean.getDataBeanArray(DKW04201SFConst.HATTCHU_INFO);
		for (int i = 0; i < hattchuList.getCount(); i++)
		{
			X31SDataBeanAccess subbean = hattchuList.getDataBean(i);
			HashMap map = new HashMap();

			map.put(DKW04201SFConst.NO_04, JDKWebCommon.getData(subbean, DKW04201SFConst.NO_04));
			map.put(DKW04201SFConst.EVEN_ROW_FLG_04, JDKWebCommon.getData(subbean, DKW04201SFConst.EVEN_ROW_FLG_04));
			map.put(DKW04201SFConst.HATTCHU_YMD_04, JDKWebCommon.getData(subbean, DKW04201SFConst.HATTCHU_YMD_04));
			map.put(DKW04201SFConst.MAKER_CD_04, JDKWebCommon.getData(subbean, DKW04201SFConst.MAKER_CD_04));
			map.put(DKW04201SFConst.MAKER_NM_04, JDKWebCommon.getData(subbean, DKW04201SFConst.MAKER_NM_04));
			map.put(DKW04201SFConst.MAKER_DSP_NM_04, JDKWebCommon.getData(subbean, DKW04201SFConst.MAKER_DSP_NM_04));
			map.put(DKW04201SFConst.HATTCHU_NO_04, JDKWebCommon.getData(subbean, DKW04201SFConst.HATTCHU_NO_04));
			map.put(DKW04201SFConst.SOKO_CD_04, JDKWebCommon.getData(subbean, DKW04201SFConst.SOKO_CD_04));
			map.put(DKW04201SFConst.SOKO_NM_04, JDKWebCommon.getData(subbean, DKW04201SFConst.SOKO_NM_04));
			map.put(DKW04201SFConst.SOKO_DSP_NM_04, JDKWebCommon.getData(subbean, DKW04201SFConst.SOKO_DSP_NM_04));
			map.put(DKW04201SFConst.SHELF_CD_04, JDKWebCommon.getData(subbean, DKW04201SFConst.SHELF_CD_04));
			map.put(DKW04201SFConst.SHEL_NM_04, JDKWebCommon.getData(subbean, DKW04201SFConst.SHEL_NM_04));

			returnHattchuInfo.add(map);
		}
		returnMap.put(DKW04201SFConst.HATTCHU_INFO, returnHattchuInfo);

		return returnMap;
	}

	/**
	 * リストにデータをセットします。
	 * @param serviceFormBean サービスフォームビーン
	 * @param listNm リスト項目名
	 * @param index インデックス
	 * @param key 項目ID
	 * @param value 値
	 */
	private void setDataToArray(X31SDataBeanAccess serviceFormBean, String listNm, int index, String key, String value)
	{
		// リストを取得
		X31SDataBeanAccessArray list = serviceFormBean.getDataBeanArray(listNm);
		int cnt = list.getCount();
		X31SDataBeanAccess subbean = null;
		if (cnt > index)
		{
			subbean = list.getDataBean(index);
		}
		else
		{
			subbean = list.addDataBean();
		}
		subbean.sendMessageString(key, X31CWebConst.DATABEAN_SET_VALUE, value);
	}

	/**
	 * リストからデータを取得します。
	 * @param serviceFormBean サービスフォームビーン
	 * @param listNm リスト項目名
	 * @param index インデックス
	 * @param key 項目ID
	 * @return 取得したデータ
	 */
	private String getDataFromArray(X31SDataBeanAccess serviceFormBean, String listNm, int index, String key)
	{
		String retStr = "";
		// リストを取得
		X31SDataBeanAccessArray list = serviceFormBean.getDataBeanArray(listNm);
		X31SDataBeanAccess subbean = list.getDataBean(index);
		retStr = subbean.sendMessageString(key, X31CWebConst.DATABEAN_GET_VALUE);
		return retStr;
	}


	/**
	 * コードを引数にプルダウンからインデックスを取得します。
	 * @param code コード
	 * @param serviceFormBean サービスフォームビーン
	 * @param listNm リスト項目名
	 * @param cdValueListNm コード値リスト項目名
	 * @return 取得したインデックス
	 */
	private int getIndexFromCode(String code, X31SDataBeanAccess serviceFormBean, String listNm, String cdValueListNm)
	{
		// リストを取得
		X31SDataBeanAccessArray beanArray = serviceFormBean.getDataBeanArray(listNm);
		X31SDataBeanAccess bean = beanArray.getDataBean(0);

		int retIndex = 0;

		for (int i = 0; i < Integer.valueOf(bean.sendMessage(cdValueListNm, X31CWebConst.DATABEAN_GET_COUNT).toString()); i++)
		{
			if (code.equals(bean.sendMessageString(cdValueListNm, X31CWebConst.DATABEAN_GET_VALUE, i)))
			{
				retIndex = i;
				break;
			}
		}

		return retIndex;
	}

	/**
	 * プルダウンの０番目の項目に空白を挿入します。
	 * @param pulldown プルダウンを指す項目ID
	 * @param cdList プルダウン中でコード一覧をさす項目ID
	 * @param nmList プルダウン中で名称一覧をさす項目ID
	 */
	private void pushEmptyToTopOfPulldown(String pulldown, String cdList, String nmList)
	{
		X31SDataBeanAccess pulldownBean = super.getServiceFormBean().getDataBeanArray(pulldown).getDataBean(0);

		appendPrefix(getBean(this, pulldown), nmList);
		
		slideArrayOnDatabean(pulldownBean, cdList);
		slideArrayOnDatabean(pulldownBean, nmList);
	}

	/**
	 * データビーンの配列要素をインデックスが増加する方向に１つずらす
	 * @param bean データビーン
	 * @param listName 対象項目ID
	 */
	private void slideArrayOnDatabean(X31SDataBeanAccess bean, String listName)
	{
		int size = (Integer)(bean.sendMessage(listName, X31CWebConst.DATABEAN_GET_COUNT));
		
		bean.sendMessageString(listName, X31CWebConst.DATABEAN_ADD_VALUE, "");
		
		for (int i = size ; i > 0 ; i--)
		{
			String target = bean.sendMessageString(listName, X31CWebConst.DATABEAN_GET_VALUE, i - 1);
			bean.sendMessageString(listName, X31CWebConst.DATABEAN_SET_VALUE, i, target);
		}
		
		bean.sendMessageString(listName, X31CWebConst.DATABEAN_SET_VALUE, 0, "");
	}
}
