/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：物流管理システム
*   モジュール名    ：DKW01401SFLogic
*   ソースファイル名：DKW01401SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年08月05日
*＜機能概要＞
*   棚移動状況一覧照会画面です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/08/05   FJ）仁多見  新規作成
*
**********************************************************************/
package eo.web.webview.DKW01401SF;

import static com.fujitsu.futurity.web.x31.X31SWebLog.DEBUG_LOG;
import static eo.common.util.JDKCommonUtil.join;
import static eo.web.webview.DKW01402SF.DKW01402SFConst.*;
import static eo.web.webview.common.JDKScreenConst.SCREEN_ID_DKW01401;
import static eo.web.webview.common.JDKScreenConst.SCREEN_ID_DKW01402;
import static eo.web.webview.common.JDKScreenConst.SCREEN_NAME_DKW01402;
import static eo.web.webview.common.JDKWebCommon.appendPrefix;
import static eo.web.webview.common.JDKWebCommon.getBean;
import static eo.web.webview.common.JDKWebCommon.getData;

import java.util.HashMap;

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 com.fujitsu.futurity.web.x31.X31SWebLog;

import eo.common.constant.JDKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JDKCommonUtil;
import eo.common.util.JPCEditString;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.DKW01401SF.DKW01401SFConst;
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.common.JZMWebCommon;
import eo.web.webview.mapping.DKSV0003_DKSV0003OP_04DBMapper;
import eo.web.webview.mapping.DKSV0037_DKSV0037OPDBMapper;
import eo.web.webview.mapping.DKSV0093_DKSV0093OPDBMapper;

/**
 * 棚移動状況一覧照会画面のビューロジック処理を行います。
 * @author user
 */
public class DKW01401SFLogic extends JCCWebBusinessLogic
{
	/**
	 * シリアルバージョンＩＤ
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 検索有無フラグ：再検索あり
	 */
	private static final String SEACH_FLG_TRUE = "1";

	/**
	 * 検索有無フラグ：再検索なし
	 */
	private static final String SEACH_FLG_FALSE = "0";

	/**
	 * プルダウン判定コード：型番号
	 */
	private static final String JUDGECD_MDLNO = "1";

	/**
	 * プルダウン判定コード：状態
	 */
	private static final String JUDGECD_STAT = "2";

	/**
	 * プルダウン判定コード：指定方法
	 */
	private static final String JUDGECD_SHITEIWAY = "3";

	/**
	 * プルダウン判定コード：移動元
	 */
	private static final String JUDGECD_MVMT = "4";

	/**
	 * プルダウン判定コード：移動先
	 */
	private static final String JUDGECD_MVSK = "5";

	/**
	 * プルダウン判定コード：検索日付
	 */
	private static final String JUDGECD_SEARCHYMD = "6";

	/**
     * ダウンロードCSVファイル名（先頭文字）
     */
	private static final String CSV_FILE_NAME = "eo_tana4_";

	/**
     * ファイル拡張子 CSV
     */
	private static final String FILE_CSV = ".csv";

	/**
	 *  CSV 基本情報部
     */
	private static final String RECORD_KIHON = "7G";

	/**
	 *  CSV 詳細情報部
	 */
	private static final String RECORD_SHOSAI = "7H";

	/**
	 *  CSV トレーラ部
	 */
	private static final String RECORD_TRAILER = "7I";

	/**
	 *  CSV レコード数カウント用
	 */
	private int record_count = 0;

	/**
	 *  メッセージ用文言（詳細表示）
	 */
	private static final String MSG_SHOSAIHYOJI = "詳細表示";

	/**
	 *  CSV出力判定用（倉庫棚：移動済）
	 */
	private static final String SOKODNA_004 = "移動済";

	/**
	 *  CSV出力判定用（予備機器配送：出荷済）
	 */
	private static final String YOBIKIKI_004 = "出荷済";

	/**
	 *  CSV出力判定用（予備機器配送：完了済）
	 */
	private static final String YOBIKIKI_005 = "完了済";

	/**
	 * プルダウン取得用キー（状態１）
	 */
	private static final String PULLDOWN_KEY_STAT1 = "CD00335";

	/**
	 * プルダウン取得用キー（状態２）
	 */
	private static final String PULLDOWN_KEY_STAT2 = "CD00337";

	/**
	 * プルダウン取得用キー（指定方法）
	 */
	private static final String PULLDOWN_KEY_SHITEI = "CD00334";

	/**
	 * プルダウン取得用キー（検索日付区分）
	 */
	private static final String PULLDOWN_KEY_SEARCHYMD = "CD00393";

	/**
	 * 初期表示を処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean init() throws Exception
	{
		// 画面情報を取得し、サービスフォームBeanに設定
		JCCWebCommon.getScreenInfo(this);

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 運用日付を取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);

		// 運用日付を設定
		serviceFormBean.sendMessageString(DKW01401SFConst.UNYO_YMD, X31CWebConst.DATABEAN_SET_VALUE, opeDate);

		// プルダウン取得用キーを設定
		serviceFormBean.sendMessageString(DKW01401SFConst.STAT_KEY1, X31CWebConst.DATABEAN_SET_VALUE, PULLDOWN_KEY_STAT1);
		serviceFormBean.sendMessageString(DKW01401SFConst.STAT_KEY2, X31CWebConst.DATABEAN_SET_VALUE, PULLDOWN_KEY_STAT2);
		serviceFormBean.sendMessageString(DKW01401SFConst.SHITEI_KEY, X31CWebConst.DATABEAN_SET_VALUE, PULLDOWN_KEY_SHITEI);
		serviceFormBean.sendMessageString(DKW01401SFConst.SEARCHYMD_KEY, X31CWebConst.DATABEAN_SET_VALUE, PULLDOWN_KEY_SEARCHYMD);

		// 一覧表示件数を初期化する
		serviceFormBean.sendMessageString(DKW01401SFConst.DISP_COUNT, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 検索有無フラグを取得する
		String umuFlg = serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_UM_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		String bkShelfMvLotNo = null;
		String bkTkkikiMdlCd = null;
		String bkTkkikiKbn = "0";
		String bkShelfMvStat = null;
		String bkShiteiWayCd = null;
		String bkMvMtCd = null;
		String bkMvMtKbn = null;
		String bkMvSkCd = null;
		String bkMvSkKbn = null;
		String bkYMDCd = null;
		String bkYMDKbn = "0";
		String bkYMDSta = null;
		String bkYMDEnd = null;
		String judgeCd = null;
		String func_code = JPCModelConstant.FUNC_CD_1;

		// 遷移元画面IDを取得
		String screenId = JCCWebCommon.getScreenId(this);
		
		// エラーで遷移してきた場合かつメニュー（null）以外から遷移してきた場合
		if (JZMWebCommon.hasMsgList(super.getCommonInfoBean()) && screenId != null)
		{
			// 検索有無フラグ：再検索あり
			umuFlg = SEACH_FLG_TRUE;
		}

		// メニュー（null）の場合
		if (JDKCommonUtil.isNull(umuFlg) || SEACH_FLG_FALSE.equals(umuFlg))
		{
			// 初期化
			// 検索有無フラグ
			serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");
			// 棚移動ロット番号
			serviceFormBean.sendMessageString(DKW01401SFConst.I_SDNAMV_LOT_NO, X31CWebConst.DATABEAN_SET_VALUE, bkShelfMvLotNo);
			// 型番号
			serviceFormBean.sendMessageString(DKW01401SFConst.MDL_NO, X31CWebConst.DATABEAN_SET_VALUE, bkTkkikiMdlCd);
			// 型番号区分
			serviceFormBean.sendMessageString(DKW01401SFConst.MDL_NO_KBN, X31CWebConst.DATABEAN_SET_VALUE, "0");
			// 状態
			serviceFormBean.sendMessageString(DKW01401SFConst.STAT, X31CWebConst.DATABEAN_SET_VALUE, bkShelfMvStat);
			// 指定方法
			serviceFormBean.sendMessageString(DKW01401SFConst.SHITEI_WAY, X31CWebConst.DATABEAN_SET_VALUE, bkShiteiWayCd);
			// 移動元
			serviceFormBean.sendMessageString(DKW01401SFConst.MV_MT, X31CWebConst.DATABEAN_SET_VALUE, bkMvMtCd);
			// 移動元建物区分
			serviceFormBean.sendMessageString(DKW01401SFConst.MV_MT_TTM_KBN, X31CWebConst.DATABEAN_SET_VALUE, "0");
			// 移動先
			serviceFormBean.sendMessageString(DKW01401SFConst.MV_SK, X31CWebConst.DATABEAN_SET_VALUE, bkMvSkCd);
			// 移動先建物区分
			serviceFormBean.sendMessageString(DKW01401SFConst.MV_SK_TTM_KBN, X31CWebConst.DATABEAN_SET_VALUE, "0");
			// 検索日付
			serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_YMD_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, bkYMDCd);
			// 検索日付区分
			serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_YMD_CHOICE_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkYMDKbn);
			// 開始日
			serviceFormBean.sendMessageString(DKW01401SFConst.DATE_STA, X31CWebConst.DATABEAN_SET_VALUE, bkYMDSta);
			// 終了日
			serviceFormBean.sendMessageString(DKW01401SFConst.DATE_END, X31CWebConst.DATABEAN_SET_VALUE, bkYMDEnd);
			// 行番号
			serviceFormBean.sendMessageString(DKW01401SFConst.ROW_NO, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
		// メニュー以外の場合
		else
		{
			// 画面表示データを設定
			// 棚移動ロット番号
			bkShelfMvLotNo = serviceFormBean.sendMessageString(DKW01401SFConst.BK_I_SDNAMV_LOT_NO , X31CWebConst.DATABEAN_GET_VALUE);
			// 型番号
			bkTkkikiMdlCd = serviceFormBean.sendMessageString(DKW01401SFConst.BK_MDL_NO , X31CWebConst.DATABEAN_GET_VALUE);

			// 型番号区分を設定
			bkTkkikiKbn = serviceFormBean.sendMessageString(DKW01401SFConst.BK_MDL_NO_KBN , X31CWebConst.DATABEAN_GET_VALUE);
			serviceFormBean.sendMessageString(DKW01401SFConst.MDL_NO_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkTkkikiKbn);
			
			// 状態
			bkShelfMvStat = serviceFormBean.sendMessageString(DKW01401SFConst.BK_STAT , X31CWebConst.DATABEAN_GET_VALUE);
			// 指定方法
			bkShiteiWayCd = serviceFormBean.sendMessageString(DKW01401SFConst.BK_SHITEI_WAY , X31CWebConst.DATABEAN_GET_VALUE);
			// 移動元
			bkMvMtCd = serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_MT , X31CWebConst.DATABEAN_GET_VALUE);

			// 移動元建物区分を設定
			bkMvMtKbn = serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_MT_TTM_KBN , X31CWebConst.DATABEAN_GET_VALUE);
			serviceFormBean.sendMessageString(DKW01401SFConst.MV_MT_TTM_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkMvMtKbn);

			// 移動先
			bkMvSkCd = serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_SK , X31CWebConst.DATABEAN_GET_VALUE);

			// 移動先建物区分を設定
			bkMvSkKbn = serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_SK_TTM_KBN , X31CWebConst.DATABEAN_GET_VALUE);
			serviceFormBean.sendMessageString(DKW01401SFConst.MV_SK_TTM_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkMvSkKbn);

			// 検索日付
			bkYMDCd = serviceFormBean.sendMessageString(DKW01401SFConst.BK_SEARCH_YMD_CHOICE , X31CWebConst.DATABEAN_GET_VALUE);
			// 検索日付区分
			bkYMDKbn = serviceFormBean.sendMessageString(DKW01401SFConst.BK_SEARCH_YMD_CHOICE_KBN , X31CWebConst.DATABEAN_GET_VALUE);

			// 日付（ＦＲＯＭ）
			X31SDataBeanAccessArray ymdStaArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_DATE_STA);
			X31SDataBeanAccess ymdSta = ymdStaArray.getDataBean(0);
			bkYMDSta = serviceFormBean.sendMessageString(DKW01401SFConst.BK_DATE_STA
									, X31CWebConst.DATABEAN_GET_VALUE);
			ymdSta.sendMessageString(DKW01401SFConst.YEAR_06
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(bkYMDSta));
			ymdSta.sendMessageString(DKW01401SFConst.MON_06
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(bkYMDSta));
			ymdSta.sendMessageString(DKW01401SFConst.DAY_06
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(bkYMDSta));

			// 日付（ＴＯ）
			X31SDataBeanAccessArray ymdEndArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_DATE_END);
			X31SDataBeanAccess ymdEnd = ymdEndArray.getDataBean(0);
			bkYMDEnd = serviceFormBean.sendMessageString(DKW01401SFConst.BK_DATE_END
									, X31CWebConst.DATABEAN_GET_VALUE);
			ymdEnd.sendMessageString(DKW01401SFConst.YEAR_06
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(bkYMDEnd));
			ymdEnd.sendMessageString(DKW01401SFConst.MON_06
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(bkYMDEnd));
			ymdEnd.sendMessageString(DKW01401SFConst.DAY_06
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(bkYMDEnd));

			// 検索用データを設定
			// 棚移動ロット番号
			serviceFormBean.sendMessageString(DKW01401SFConst.I_SDNAMV_LOT_NO, X31CWebConst.DATABEAN_SET_VALUE, bkShelfMvLotNo);
			// 型番号
			serviceFormBean.sendMessageString(DKW01401SFConst.MDL_NO, X31CWebConst.DATABEAN_SET_VALUE, bkTkkikiMdlCd);
			// 状態
			serviceFormBean.sendMessageString(DKW01401SFConst.STAT, X31CWebConst.DATABEAN_SET_VALUE, bkShelfMvStat);
			// 指定方法
			serviceFormBean.sendMessageString(DKW01401SFConst.SHITEI_WAY, X31CWebConst.DATABEAN_SET_VALUE, bkShiteiWayCd);
			// 移動元
			serviceFormBean.sendMessageString(DKW01401SFConst.MV_MT, X31CWebConst.DATABEAN_SET_VALUE, bkMvMtCd);
			// 移動先
			serviceFormBean.sendMessageString(DKW01401SFConst.MV_SK, X31CWebConst.DATABEAN_SET_VALUE, bkMvSkCd);
			// 検索日付
			serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_YMD_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, bkYMDCd);
			// 検索日付区分
			serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_YMD_CHOICE_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkYMDKbn);
			// 開始日
			serviceFormBean.sendMessageString(DKW01401SFConst.DATE_STA, X31CWebConst.DATABEAN_SET_VALUE, bkYMDSta);
			// 終了日
			serviceFormBean.sendMessageString(DKW01401SFConst.DATE_END, X31CWebConst.DATABEAN_SET_VALUE, bkYMDEnd);

			// 機能コードを設定
			// 移動元・先が指定されていない場合：１
			if (JDKCommonUtil.isNull(bkMvMtCd) || JDKCommonUtil.isNull(bkMvSkCd))
			{
				func_code = JPCModelConstant.FUNC_CD_1;
			}
			else if (!JDKCommonUtil.isNull(bkMvMtCd) && !JDKCommonUtil.isNull(bkMvSkCd))
			{
				// 移動元・先が指定済かつ同じ建物の場合：２
				if (bkMvMtCd.equals(bkMvSkCd))
				{
					func_code = JPCModelConstant.FUNC_CD_2;
				}
				else
				{
					// 移動元・先が指定済かつ建物が異なる場合：３
					func_code = JPCModelConstant.FUNC_CD_3;
				}
			}

			X31SDataBeanAccess[] paramBean = {serviceFormBean};

			// サービスの呼び出しを行う
			putServiceDKSV0037(paramBean, func_code);

			// 行番号を設定
			String rowNo = 
				serviceFormBean.sendMessageString(DKW01401SFConst.ROW_NO, X31CWebConst.DATABEAN_GET_VALUE);
			if (JDKCommonUtil.isNull(rowNo))
			{
				serviceFormBean.sendMessageString(DKW01401SFConst.ROW_NO, 
													X31CWebConst.DATABEAN_SET_VALUE, "0");
			}

			// 一覧表の表示設定を行う
			this.setList(paramBean[0], serviceFormBean);

			String flg = null;

			// 検索有無フラグを設定
			if (!"0".equals(serviceFormBean.sendMessageString(DKW01401SFConst.DISP_COUNT, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				flg = SEACH_FLG_TRUE;
			}
			else
			{
				flg = SEACH_FLG_FALSE;
			}
			serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, flg);
		}

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {serviceFormBean};

		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		HashMap<String, String> inputMap = new HashMap<String, String>();
		HashMap<String, String> outputMap = new HashMap<String, String>();

		// ユースケースIDを設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0003");

		// DataBean⇔BPの上りマッピングを行う
		DKSV0003_DKSV0003OP_04DBMapper mapper = new DKSV0003_DKSV0003OP_04DBMapper();
		mapper.setDKSV000301SC(paramBean, inputMap, "1");
		mapper.setDKSV000302SC(paramBean, inputMap, "1");
		mapper.setDKSV000303SC(paramBean, inputMap, "1");
		mapper.setDKSV000304SC(paramBean, inputMap, "1");
		mapper.setDKSV000305SC(paramBean, inputMap, "1");
		mapper.setDKSV000306SC(paramBean, inputMap, "1");

		// 検索結果格納用マップを生成
		// サービス呼出
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);

		// エラー処理
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		JCCMessageCache.setMessageCache();

		// DataBean⇔BPの下りマッピングを行う
		mapper.getDKSV000301SC(paramBean, outputMap);
		mapper.getDKSV000302SC(paramBean, outputMap);
		mapper.getDKSV000303SC(paramBean, outputMap);
		mapper.getDKSV000304SC(paramBean, outputMap);
		mapper.getDKSV000306SC(paramBean, outputMap);
		
		// プルダウンの要素にインデックスを付与する
		pushEmptyToTopOfPulldown(DKW01401SFConst.I_MDL_NO, DKW01401SFConst.MDL_NO_CD_LIST_01, DKW01401SFConst.MDL_NO_KBN_LIST_01);
		pushEmptyToTopOfPulldown(DKW01401SFConst.I_STAT, DKW01401SFConst.STAT_CD_LIST_02, DKW01401SFConst.STAT_NM_LIST_02);
		pushEmptyToTopOfPulldown(DKW01401SFConst.I_SHITEI_WAY, DKW01401SFConst.SHITEI_WAY_CD_LIST_03, DKW01401SFConst.SHITEI_WAY_NM_LIST_03);
		pushEmptyToTopOfPulldown(DKW01401SFConst.I_MV, DKW01401SFConst.MV_CD_LIST_04, DKW01401SFConst.MV_NM_LIST_04);
		// 検索日付プルダウンは初期表示の文言を設定の上、インデックスを付与する
		pushWordToTopOfPulldown(DKW01401SFConst.I_SEARCH_YMD_CHOICE, 
				DKW01401SFConst.SEARCH_YMD_CHOICE_CD_LIST_05, DKW01401SFConst.SEARCH_YMD_CHOICE_NM_LIST_05);

		// 遷移先画面IDの設定
		setNextScreen(JDKScreenConst.SCREEN_ID_DKW01401, JDKScreenConst.SCREEN_NAME_DKW01401);

		// メニュー以外の場合
		if (SEACH_FLG_TRUE.equals(umuFlg))
		{
			// 型番号プルダウンの選択値を設定
			judgeCd = JUDGECD_MDLNO;
			int mdlNoIndex = this.getCodeToIndexForDdl(bkTkkikiMdlCd, serviceFormBean, judgeCd);
			X31SDataBeanAccessArray mdlNoArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_MDL_NO);
			X31SDataBeanAccess mdlNo = mdlNoArray.getDataBean(0);
			mdlNo.sendMessageString(DKW01401SFConst.MDL_NO_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(mdlNoIndex));
			// 状態プルダウンの選択値を設定
			judgeCd = JUDGECD_STAT;
			int statIndex = this.getCodeToIndexForDdl(bkShelfMvStat, serviceFormBean, judgeCd);
			X31SDataBeanAccessArray statArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_STAT);
			X31SDataBeanAccess stat = statArray.getDataBean(0);
			stat.sendMessageString(DKW01401SFConst.STAT_INDEX_02, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(statIndex));
			// 指定方法プルダウンの選択値を設定
			judgeCd = JUDGECD_SHITEIWAY;
			int shiteiWayIndex = this.getCodeToIndexForDdl(bkShiteiWayCd, serviceFormBean, judgeCd);
			X31SDataBeanAccessArray shiteiWayArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_SHITEI_WAY);
			X31SDataBeanAccess shiteiWay = shiteiWayArray.getDataBean(0);
			shiteiWay.sendMessageString(DKW01401SFConst.SHITEI_WAY_INDEX_03, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(shiteiWayIndex));
			// 移動元プルダウンの選択値を設定
			judgeCd = JUDGECD_MVMT;
			int mvMtIndex = this.getCodeToIndexForDdl(bkMvMtCd, serviceFormBean, judgeCd);
			X31SDataBeanAccessArray mvMtArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_MV);
			X31SDataBeanAccess mvMt = mvMtArray.getDataBean(0);
			mvMt.sendMessageString(DKW01401SFConst.MV_MT_INDEX_04, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(mvMtIndex));
			// 移動先プルダウンの選択値を設定
			judgeCd = JUDGECD_MVSK;
			int mvSkIndex = this.getCodeToIndexForDdl(bkMvSkCd, serviceFormBean, judgeCd);
			X31SDataBeanAccessArray mvSkArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_MV);
			X31SDataBeanAccess mvSk = mvSkArray.getDataBean(0);
			mvSk.sendMessageString(DKW01401SFConst.MV_SK_INDEX_04, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(mvSkIndex));
			// 検索日付プルダウンの選択値を設定
			judgeCd = JUDGECD_SEARCHYMD;
			int ymdIndex = this.getCodeToIndexForDdl(bkYMDCd, serviceFormBean, judgeCd);
			X31SDataBeanAccessArray ymdArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_SEARCH_YMD_CHOICE);
			X31SDataBeanAccess ymd = ymdArray.getDataBean(0);
			ymd.sendMessageString(DKW01401SFConst.SEARCH_YMD_CHOICE_INDEX_05, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(ymdIndex));
		}
		return true;
	}

	/**
	 * 棚移動状況一覧照会画面の検索ボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean search() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		String bkShelfMvLotNo = null;
		String bkTkkikiMdlCd = null;
		String bkTkkikiKbn = "0";
		String bkShelfMvStat = null;
		String bkShiteiWayCd = null;
		String bkMvMtCd = null;
		String bkMvMtKbn = null;
		String bkMvSkCd = null;
		String bkMvSkKbn = null;
		String bkYMDCd = null;
		String bkYMDKbn = "0";
		String bkYMDSta = null;
		String bkYMDEnd = null;
		String func_code = JPCModelConstant.FUNC_CD_1;

		// 初期化
		// 一覧表示件数
		serviceFormBean.sendMessageString(DKW01401SFConst.DISP_COUNT, X31CWebConst.DATABEAN_SET_VALUE, "0");
		// 型番号
		serviceFormBean.sendMessage(DKW01401SFConst.MDL_NO, X31CWebConst.DATABEAN_CLEAR);
		// 型番号区分
		serviceFormBean.sendMessage(DKW01401SFConst.MDL_NO_KBN, X31CWebConst.DATABEAN_CLEAR);
		// 状態
		serviceFormBean.sendMessage(DKW01401SFConst.STAT, X31CWebConst.DATABEAN_CLEAR);
		// 指定方法
		serviceFormBean.sendMessage(DKW01401SFConst.SHITEI_WAY, X31CWebConst.DATABEAN_CLEAR);
		// 移動元
		serviceFormBean.sendMessage(DKW01401SFConst.MV_MT, X31CWebConst.DATABEAN_CLEAR);
		// 移動元建物区分
		serviceFormBean.sendMessage(DKW01401SFConst.MV_MT_TTM_KBN, X31CWebConst.DATABEAN_CLEAR);
		// 移動先
		serviceFormBean.sendMessage(DKW01401SFConst.MV_SK, X31CWebConst.DATABEAN_CLEAR);
		// 移動先建物区分
		serviceFormBean.sendMessage(DKW01401SFConst.MV_SK_TTM_KBN, X31CWebConst.DATABEAN_CLEAR);
		// 検索日付
		serviceFormBean.sendMessage(DKW01401SFConst.SEARCH_YMD_CHOICE, X31CWebConst.DATABEAN_CLEAR);
		// 検索日付区分
		serviceFormBean.sendMessage(DKW01401SFConst.SEARCH_YMD_CHOICE_KBN, X31CWebConst.DATABEAN_CLEAR);
		// 開始日
		serviceFormBean.sendMessage(DKW01401SFConst.DATE_STA, X31CWebConst.DATABEAN_CLEAR);
		// 終了日
		serviceFormBean.sendMessage(DKW01401SFConst.DATE_END, X31CWebConst.DATABEAN_CLEAR);
		// 棚移動状況一覧照会明細リスト
		serviceFormBean.getDataBeanArray(DKW01401SFConst.SHOKAI_LIST).clearArray();
		// 行番号
		serviceFormBean.sendMessage(DKW01401SFConst.ROW_NO, X31CWebConst.DATABEAN_CLEAR);
		// ページングキー
		serviceFormBean.sendMessage(DKW01401SFConst.PAGEING_KEY, X31CWebConst.DATABEAN_CLEAR);

		// 検索時棚移動ロット番号
		serviceFormBean.sendMessage(DKW01401SFConst.BK_I_SDNAMV_LOT_NO, X31CWebConst.DATABEAN_CLEAR);
		// 検索時型番号
		serviceFormBean.sendMessage(DKW01401SFConst.BK_MDL_NO, X31CWebConst.DATABEAN_CLEAR);
		// 検索時型番号区分
		serviceFormBean.sendMessage(DKW01401SFConst.BK_MDL_NO_KBN, X31CWebConst.DATABEAN_CLEAR);
		// 検索時状態
		serviceFormBean.sendMessage(DKW01401SFConst.BK_STAT, X31CWebConst.DATABEAN_CLEAR);
		// 検索時指定方法
		serviceFormBean.sendMessage(DKW01401SFConst.BK_SHITEI_WAY, X31CWebConst.DATABEAN_CLEAR);
		// 検索時移動元
		serviceFormBean.sendMessage(DKW01401SFConst.BK_MV_MT, X31CWebConst.DATABEAN_CLEAR);
		// 検索時移動元建物区分
		serviceFormBean.sendMessage(DKW01401SFConst.BK_MV_MT_TTM_KBN, X31CWebConst.DATABEAN_CLEAR);
		// 検索時移動先
		serviceFormBean.sendMessage(DKW01401SFConst.BK_MV_SK, X31CWebConst.DATABEAN_CLEAR);
		// 検索時移動先建物区分
		serviceFormBean.sendMessage(DKW01401SFConst.BK_MV_SK_TTM_KBN, X31CWebConst.DATABEAN_CLEAR);
		// 検索時検索日付
		serviceFormBean.sendMessage(DKW01401SFConst.BK_SEARCH_YMD_CHOICE, X31CWebConst.DATABEAN_CLEAR);
		// 検索時検索日付区分
		serviceFormBean.sendMessage(DKW01401SFConst.BK_SEARCH_YMD_CHOICE_KBN, X31CWebConst.DATABEAN_CLEAR);
		// 検索時開始日
		serviceFormBean.sendMessage(DKW01401SFConst.BK_DATE_STA, X31CWebConst.DATABEAN_CLEAR);
		// 検索時終了日
		serviceFormBean.sendMessage(DKW01401SFConst.BK_DATE_END, X31CWebConst.DATABEAN_CLEAR);

		// ページング情報の設定
		JCCWebCommon.clearPageLinkInfo(this, JDKScreenConst.SCREEN_ID_DKW01401);

		// 検索時棚移動ロット番号
		bkShelfMvLotNo = serviceFormBean.sendMessageString(DKW01401SFConst.I_SDNAMV_LOT_NO, X31CWebConst.DATABEAN_GET_VALUE);

		// 検索時型番号を設定
		X31SDataBeanAccessArray mdlNoArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_MDL_NO);
		String mdlNoIndex = mdlNoArray.getDataBean(0).sendMessageString(DKW01401SFConst.MDL_NO_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		bkTkkikiMdlCd = this.getIndexToCodeForDdl(Integer.valueOf(mdlNoIndex), serviceFormBean, DKW01401SFConst.I_MDL_NO, DKW01401SFConst.MDL_NO_CD_LIST_01);
		serviceFormBean.sendMessageString(DKW01401SFConst.MDL_NO, X31CWebConst.DATABEAN_SET_VALUE, bkTkkikiMdlCd);

		// 検索時型番号区分を設定
		if (!"".equals(bkTkkikiMdlCd) && null != bkTkkikiMdlCd)
		{
			bkTkkikiKbn = this.getIndexToCodeForDdl(Integer.valueOf(mdlNoIndex), serviceFormBean, DKW01401SFConst.I_MDL_NO, DKW01401SFConst.MDL_NO_KBN_LIST_01);
			int index = bkTkkikiKbn.indexOf(".");
			bkTkkikiKbn = bkTkkikiKbn.substring(index + 1);
			serviceFormBean.sendMessageString(DKW01401SFConst.MDL_NO_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkTkkikiKbn);
		}

		// 検索時状態を設定
		X31SDataBeanAccessArray statArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_STAT);
		String statIndex = statArray.getDataBean(0).sendMessageString(DKW01401SFConst.STAT_INDEX_02, X31CWebConst.DATABEAN_GET_VALUE);
		bkShelfMvStat = this.getIndexToCodeForDdl(Integer.valueOf(statIndex), serviceFormBean,  DKW01401SFConst.I_STAT, DKW01401SFConst.STAT_CD_LIST_02);
		serviceFormBean.sendMessageString(DKW01401SFConst.STAT, X31CWebConst.DATABEAN_SET_VALUE, bkShelfMvStat);

		// 検索用指定方法を設定
		X31SDataBeanAccessArray shiteiArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_SHITEI_WAY);
		String shiteiIndex = shiteiArray.getDataBean(0).sendMessageString(DKW01401SFConst.SHITEI_WAY_INDEX_03, X31CWebConst.DATABEAN_GET_VALUE);
		bkShiteiWayCd = this.getIndexToCodeForDdl(Integer.valueOf(shiteiIndex), serviceFormBean, DKW01401SFConst.I_SHITEI_WAY, DKW01401SFConst.SHITEI_WAY_CD_LIST_03);
		serviceFormBean.sendMessageString(DKW01401SFConst.SHITEI_WAY, X31CWebConst.DATABEAN_SET_VALUE, bkShiteiWayCd);

		// 検索用移動元を設定
		X31SDataBeanAccessArray mvMtArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_MV);
		String mvMtIndex = mvMtArray.getDataBean(0).sendMessageString(DKW01401SFConst.MV_MT_INDEX_04, X31CWebConst.DATABEAN_GET_VALUE);
		bkMvMtCd = this.getIndexToCodeForDdl(Integer.valueOf(mvMtIndex), serviceFormBean, DKW01401SFConst.I_MV, DKW01401SFConst.MV_CD_LIST_04);
		serviceFormBean.sendMessageString(DKW01401SFConst.MV_MT, X31CWebConst.DATABEAN_SET_VALUE, bkMvMtCd);

		// 移動元建物区分を設定
		if (!"0".equals(mvMtIndex))
		{
			bkMvMtKbn = this.getIndexToCodeForDdl(Integer.valueOf(mvMtIndex) -1, serviceFormBean, DKW01401SFConst.I_MV, DKW01401SFConst.TTM_KBN_LIST_04);
		}
		serviceFormBean.sendMessageString(DKW01401SFConst.MV_MT_TTM_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkMvMtKbn);

		// 検索用移動先を設定
		X31SDataBeanAccessArray mvSkArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_MV);
		String mvSkIndex = mvSkArray.getDataBean(0).sendMessageString(DKW01401SFConst.MV_SK_INDEX_04, X31CWebConst.DATABEAN_GET_VALUE);
		bkMvSkCd = this.getIndexToCodeForDdl(Integer.valueOf(mvSkIndex), serviceFormBean, DKW01401SFConst.I_MV, DKW01401SFConst.MV_CD_LIST_04);
		serviceFormBean.sendMessageString(DKW01401SFConst.MV_SK, X31CWebConst.DATABEAN_SET_VALUE, bkMvSkCd);

		// 移動先建物区分を設定
		if (!"0".equals(mvSkIndex))
		{
			bkMvSkKbn = this.getIndexToCodeForDdl(Integer.valueOf(mvSkIndex) -1, serviceFormBean, DKW01401SFConst.I_MV, DKW01401SFConst.TTM_KBN_LIST_04);
		}
		serviceFormBean.sendMessageString(DKW01401SFConst.MV_SK_TTM_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkMvSkKbn);

		// 検索用検索日付を設定
		X31SDataBeanAccessArray ymdArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_SEARCH_YMD_CHOICE);
		String ymdIndex = ymdArray.getDataBean(0).sendMessageString(DKW01401SFConst.SEARCH_YMD_CHOICE_INDEX_05, X31CWebConst.DATABEAN_GET_VALUE);
		bkYMDCd = this.getIndexToCodeForDdl(Integer.valueOf(ymdIndex), serviceFormBean, DKW01401SFConst.I_SEARCH_YMD_CHOICE, DKW01401SFConst.SEARCH_YMD_CHOICE_CD_LIST_05);
		serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_YMD_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, bkYMDCd);

		// 検索日付区分
		bkYMDKbn = ymdIndex;
		serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_YMD_CHOICE_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkYMDKbn);

		// 日付（ＦＲＯＭ）を設定する
		X31SDataBeanAccessArray ymdStaArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_DATE_STA);
		X31SDataBeanAccess ymdSta = ymdStaArray.getDataBean(0);
		// 年を取得
		String fromYear = ymdSta.sendMessageString(DKW01401SFConst.YEAR_06, X31CWebConst.DATABEAN_GET_VALUE);
		// 月を取得
		String fromMon = ymdSta.sendMessageString(DKW01401SFConst.MON_06, X31CWebConst.DATABEAN_GET_VALUE);
		// 日を取得
		String fromDay = ymdSta.sendMessageString(DKW01401SFConst.DAY_06, X31CWebConst.DATABEAN_GET_VALUE);

		if (!JDKCommonUtil.isNull(fromYear) || !JDKCommonUtil.isNull(fromMon) || !JDKCommonUtil.isNull(fromDay))
		{
			bkYMDSta = fromYear + fromMon + fromDay;
		}
		// 検索用開始日を設定
		serviceFormBean.sendMessageString(DKW01401SFConst.DATE_STA, X31CWebConst.DATABEAN_SET_VALUE, bkYMDSta);

		// 日付（ＴＯ）を設定する
		X31SDataBeanAccessArray ymdEndArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_DATE_END);
		X31SDataBeanAccess ymdEnd = ymdEndArray.getDataBean(0);
		// 年を取得
		String toYear = ymdEnd.sendMessageString(DKW01401SFConst.YEAR_06, X31CWebConst.DATABEAN_GET_VALUE);
		// 月を取得
		String toMon = ymdEnd.sendMessageString(DKW01401SFConst.MON_06, X31CWebConst.DATABEAN_GET_VALUE);
		// 日を取得
		String toDay = ymdEnd.sendMessageString(DKW01401SFConst.DAY_06, X31CWebConst.DATABEAN_GET_VALUE);

		if (!JDKCommonUtil.isNull(toYear) || !JDKCommonUtil.isNull(toMon) || !JDKCommonUtil.isNull(toDay))
		{
			bkYMDEnd = toYear + toMon + toDay;
		}
		// 検索用終了日を設定
		serviceFormBean.sendMessageString(DKW01401SFConst.DATE_END, X31CWebConst.DATABEAN_SET_VALUE, bkYMDEnd);

		X31SDataBeanAccess[] paramBean = {serviceFormBean};

		// 機能コードを設定
		// 移動元・先が指定されていない場合：１
		if (JDKCommonUtil.isNull(bkMvMtCd) || JDKCommonUtil.isNull(bkMvSkCd))
		{
			func_code = JPCModelConstant.FUNC_CD_1;
		}
		else if (!JDKCommonUtil.isNull(bkMvMtCd) && !JDKCommonUtil.isNull(bkMvSkCd))
		{
			// 移動元・先が指定済かつ同じ建物の場合：２
			if (bkMvMtCd.equals(bkMvSkCd))
			{
				func_code = JPCModelConstant.FUNC_CD_2;
			}
			else
			{
				// 移動元・先が指定済かつ建物が異なる場合：３
				func_code = JPCModelConstant.FUNC_CD_3;
			}
		}

		// 引継用項目にデータを格納
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_I_SDNAMV_LOT_NO, X31CWebConst.DATABEAN_SET_VALUE, bkShelfMvLotNo);
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_MDL_NO, X31CWebConst.DATABEAN_SET_VALUE, bkTkkikiMdlCd);
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_MDL_NO_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkTkkikiKbn);
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_STAT, X31CWebConst.DATABEAN_SET_VALUE, bkShelfMvStat);
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_SHITEI_WAY, X31CWebConst.DATABEAN_SET_VALUE, bkShiteiWayCd);
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_MT, X31CWebConst.DATABEAN_SET_VALUE, bkMvMtCd);
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_MT_TTM_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkMvMtKbn);
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_SK, X31CWebConst.DATABEAN_SET_VALUE, bkMvSkCd);
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_SK_TTM_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkMvSkKbn);
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_SEARCH_YMD_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, bkYMDCd);
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_SEARCH_YMD_CHOICE_KBN, X31CWebConst.DATABEAN_SET_VALUE, bkYMDKbn);
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_DATE_STA, X31CWebConst.DATABEAN_SET_VALUE, bkYMDSta);
		serviceFormBean.sendMessageString(DKW01401SFConst.BK_DATE_END, X31CWebConst.DATABEAN_SET_VALUE, bkYMDEnd);

		// サービスの呼び出しを行う
		putServiceDKSV0037(paramBean, func_code);

		// 行番号を設定
		String rowNo = 
			serviceFormBean.sendMessageString(DKW01401SFConst.ROW_NO, X31CWebConst.DATABEAN_GET_VALUE);
		if (JDKCommonUtil.isNull(rowNo))
		{
			serviceFormBean.sendMessageString(DKW01401SFConst.ROW_NO, 
												X31CWebConst.DATABEAN_SET_VALUE, "0");
		}

		// 一覧表の表示設定を行う
		this.setList(paramBean[0], serviceFormBean);

		String flg = null;

		// 検索有無フラグを設定
		if (!"0".equals(serviceFormBean.sendMessageString(DKW01401SFConst.DISP_COUNT, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			flg = SEACH_FLG_TRUE;
		}
		else
		{
			flg = SEACH_FLG_FALSE;
		}
		serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, flg);

		// 遷移先画面IDの設定
		setNextScreen(JDKScreenConst.SCREEN_ID_DKW01401, JDKScreenConst.SCREEN_NAME_DKW01401);

		return true;
	}

	/**
	 * ページングを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean paging() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 初期化
		serviceFormBean.sendMessage(DKW01401SFConst.MDL_NO, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.MDL_NO_KBN, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.STAT, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.SHITEI_WAY, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.MV_MT, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.MV_MT_TTM_KBN, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.MV_SK, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.MV_SK_TTM_KBN, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.SEARCH_YMD_CHOICE, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.SEARCH_YMD_CHOICE_KBN, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.DATE_STA, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.DATE_END, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.PAGEING_KEY, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.getDataBeanArray(DKW01401SFConst.SHOKAI_LIST).clearArray();

		// 退避データを設定
		serviceFormBean.sendMessageString(DKW01401SFConst.MDL_NO, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(DKW01401SFConst.BK_MDL_NO , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW01401SFConst.MDL_NO_KBN, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(DKW01401SFConst.BK_MDL_NO_KBN , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW01401SFConst.STAT, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(DKW01401SFConst.BK_STAT , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW01401SFConst.SHITEI_WAY, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(DKW01401SFConst.BK_SHITEI_WAY , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW01401SFConst.MV_MT, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_MT , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW01401SFConst.MV_MT_TTM_KBN, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_MT_TTM_KBN , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW01401SFConst.MV_SK, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_SK , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW01401SFConst.MV_SK_TTM_KBN, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_SK_TTM_KBN , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_YMD_CHOICE, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(DKW01401SFConst.BK_SEARCH_YMD_CHOICE , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_YMD_CHOICE_KBN, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(DKW01401SFConst.BK_SEARCH_YMD_CHOICE_KBN , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW01401SFConst.DATE_STA, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(DKW01401SFConst.BK_DATE_STA , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW01401SFConst.DATE_END, X31CWebConst.DATABEAN_SET_VALUE, 
				serviceFormBean.sendMessageString(DKW01401SFConst.BK_DATE_END , X31CWebConst.DATABEAN_GET_VALUE));

		X31SDataBeanAccess[] paramBean = {serviceFormBean};

		String mvMt = serviceFormBean.sendMessageString(DKW01401SFConst.MV_MT, X31CWebConst.DATABEAN_GET_VALUE);
		String mvSk = serviceFormBean.sendMessageString(DKW01401SFConst.MV_SK, X31CWebConst.DATABEAN_GET_VALUE);

		// 機能コードを設定
		String func_code = "";
		// 移動元・先が指定されていない場合：１
		if (JDKCommonUtil.isNull(mvMt) || JDKCommonUtil.isNull(mvSk))
		{
			func_code = JPCModelConstant.FUNC_CD_1;
		}
		else if (!JDKCommonUtil.isNull(mvMt) && !JDKCommonUtil.isNull(mvSk))
		{
			// 移動元・先が指定済かつ同じ建物の場合：２
			if (mvMt.equals(mvSk))
			{
				func_code = JPCModelConstant.FUNC_CD_2;
			}
			else
			{
				// 移動元・先が指定済かつ建物が異なる場合：３
				func_code = JPCModelConstant.FUNC_CD_3;
			}
		}

		// サービスの呼び出しを行う
		putServiceDKSV0037(paramBean, func_code);

		// 行番号を設定
		serviceFormBean.sendMessageString(DKW01401SFConst.ROW_NO, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 一覧表の表示設定を行う
		this.setList(paramBean[0], serviceFormBean);

		// 検索有無フラグを設定
		if (!"0".equals(serviceFormBean.sendMessageString(DKW01401SFConst.DISP_COUNT, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_UM_FLG, 
					X31CWebConst.DATABEAN_SET_VALUE, SEACH_FLG_TRUE);
		}
		else
		{
			serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_UM_FLG, 
					X31CWebConst.DATABEAN_SET_VALUE, SEACH_FLG_FALSE);
		}

		// 遷移先画面IDの設定
		setNextScreen(JDKScreenConst.SCREEN_ID_DKW01401, JDKScreenConst.SCREEN_NAME_DKW01401);

		return true;
	}

	/**
	 * 棚移動状況一覧照会画面の詳細ボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	@SuppressWarnings("unchecked")
	public boolean showDetail() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		X31SDataBeanAccessArray shokaiList = serviceFormBean.getDataBeanArray(DKW01401SFConst.SHOKAI_LIST);

		// チェック判定
		int chk = 0;
		int idx = 0;
		for (int i = 0; i < shokaiList.getCount(); i++)
		{
			X31SDataBeanAccess subbean = shokaiList.getDataBean(i);
			Boolean check = subbean.sendMessageBoolean(DKW01401SFConst.L_CHOICE_07, X31CWebConst.DATABEAN_GET_VALUE);

			// チェック済の場合
			if (check)
			{
				idx = i;
				chk += 1;	// チェック済
			}
		}

		// チェック無しの場合
		if (0 == chk)
		{
			// エラーメッセージを設定
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0800_NW,
										new String [] {MSG_SHOSAIHYOJI});
			return true;
		}
		else if (1 < chk)
		{
			// チェック複数の場合、エラーメッセージを設定
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0960_TW);
			return true;
		}
		X31SDataBeanAccess subbean = shokaiList.getDataBean(idx);

		// 画面情報を設定
		HashMap dataMap = new HashMap();
		// 棚移動ロット番号（表示用）
		dataMap.put(DISP_SHELF_MOVE_LOT_NO, subbean.sendMessageString(DKW01401SFConst.L_SDNAMV_LOT_NO_07, 
																		X31CWebConst.DATABEAN_GET_VALUE));
		// 棚移動ロット番号
		dataMap.put(KEY_SHELF_MOVE_LOT_NO, subbean.sendMessageString(DKW01401SFConst.L_SDNAMV_LOT_NO_07, 
																		X31CWebConst.DATABEAN_GET_VALUE));
		// 運用日付
		dataMap.put(UNYO_YMD, JCCWebCommon.getOpeDate(this, null));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, SCREEN_ID_DKW01402, dataMap);

		X31SWebLog.DEBUG_LOG.debug("引き継ぎ情報Mapの内容：");
		X31SWebLog.DEBUG_LOG.debug(dataMap);

		// 戻る際に必要な情報を設定
		HashMap returnMap = new HashMap();
		// 検索有無フラグ
		returnMap.put(DKW01401SFConst.SEARCH_UM_FLG, 
						serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_UM_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// ページングキー
		returnMap.put(DKW01401SFConst.PAGEING_KEY, 
						subbean.sendMessageString(DKW01401SFConst.L_SDNAMV_LOT_NO_07, X31CWebConst.DATABEAN_GET_VALUE));

		// 検索条件
		returnMap.put(DKW01401SFConst.BK_I_SDNAMV_LOT_NO, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_I_SDNAMV_LOT_NO, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW01401SFConst.BK_MDL_NO, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_MDL_NO, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW01401SFConst.BK_MDL_NO_KBN, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_MDL_NO_KBN, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW01401SFConst.BK_STAT, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_STAT, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW01401SFConst.BK_SHITEI_WAY, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_SHITEI_WAY, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW01401SFConst.BK_MV_MT, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_MT, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW01401SFConst.BK_MV_MT_TTM_KBN, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_MT_TTM_KBN, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW01401SFConst.BK_MV_SK, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_SK, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW01401SFConst.BK_MV_SK_TTM_KBN, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_MV_SK_TTM_KBN, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW01401SFConst.BK_SEARCH_YMD_CHOICE, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_SEARCH_YMD_CHOICE, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW01401SFConst.BK_SEARCH_YMD_CHOICE_KBN, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_SEARCH_YMD_CHOICE_KBN, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW01401SFConst.BK_DATE_STA, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_DATE_STA, X31CWebConst.DATABEAN_GET_VALUE));
		returnMap.put(DKW01401SFConst.BK_DATE_END, 
						serviceFormBean.sendMessageString(DKW01401SFConst.BK_DATE_END, X31CWebConst.DATABEAN_GET_VALUE));

		X31SWebLog.DEBUG_LOG.debug("引き継ぎ情報Mapの内容：");
		X31SWebLog.DEBUG_LOG.debug(returnMap);

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, SCREEN_ID_DKW01401, returnMap);
		JCCWebCommon.setScreenId(this, SCREEN_ID_DKW01402, SCREEN_ID_DKW01401);

		// 画面遷移処理
		setNextScreen(SCREEN_ID_DKW01402, SCREEN_NAME_DKW01402);

		return true;
	}

	/**
	 * 棚移動状況一覧照会画面のクリアボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean clear() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 遷移元画面IDをクリア
		serviceFormBean.sendMessage(DKW01401SFConst.MT_SCREEN_ID, X31CWebConst.DATABEAN_CLEAR);

		// 棚移動ロット番号をクリア
		serviceFormBean.sendMessage(DKW01401SFConst.I_SDNAMV_LOT_NO, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_I_SDNAMV_LOT_NO, X31CWebConst.DATABEAN_CLEAR);

		// 型番号リストをクリア
		X31SDataBeanAccessArray mdlNoArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_MDL_NO);
		X31SDataBeanAccess mdlNoIndex = mdlNoArray.getDataBean(0);
		mdlNoIndex.sendMessage(DKW01401SFConst.MDL_NO_INDEX_01, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.MDL_NO, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_MDL_NO, X31CWebConst.DATABEAN_CLEAR);

		// 型番号区分をクリア
		serviceFormBean.sendMessage(DKW01401SFConst.MDL_NO_KBN, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_MDL_NO_KBN, X31CWebConst.DATABEAN_CLEAR);

		// 状態リストをクリア
		X31SDataBeanAccessArray statArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_STAT);
		X31SDataBeanAccess statIndex = statArray.getDataBean(0);
		statIndex.sendMessage(DKW01401SFConst.STAT_INDEX_02, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.STAT, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_STAT, X31CWebConst.DATABEAN_CLEAR);

		// 指定方法リストをクリア
		X31SDataBeanAccessArray shiteiArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_SHITEI_WAY);
		X31SDataBeanAccess shiteiIndex = shiteiArray.getDataBean(0);
		shiteiIndex.sendMessage(DKW01401SFConst.SHITEI_WAY_INDEX_03, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.SHITEI_WAY, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_SHITEI_WAY, X31CWebConst.DATABEAN_CLEAR);

		// 移動元リストをクリア
		X31SDataBeanAccessArray mvMtArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_MV);
		X31SDataBeanAccess mvMtIndex = mvMtArray.getDataBean(0);
		mvMtIndex.sendMessage(DKW01401SFConst.MV_MT_INDEX_04, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.MV_MT, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_MV_MT, X31CWebConst.DATABEAN_CLEAR);

		// 移動元建物区分をクリア
		serviceFormBean.sendMessage(DKW01401SFConst.MV_MT_TTM_KBN, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_MV_MT_TTM_KBN, X31CWebConst.DATABEAN_CLEAR);

		// 移動先リストをクリア
		X31SDataBeanAccessArray mvSkArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_MV);
		X31SDataBeanAccess mvSkIndex = mvSkArray.getDataBean(0);
		mvSkIndex.sendMessage(DKW01401SFConst.MV_SK_INDEX_04, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.MV_SK, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_MV_SK, X31CWebConst.DATABEAN_CLEAR);

		// 移動先建物区分をクリア
		serviceFormBean.sendMessage(DKW01401SFConst.MV_SK_TTM_KBN, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_MV_SK_TTM_KBN, X31CWebConst.DATABEAN_CLEAR);

		// 検索日付リストをクリア
		X31SDataBeanAccessArray ymdArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_SEARCH_YMD_CHOICE);
		X31SDataBeanAccess ymdIndex = ymdArray.getDataBean(0);
		ymdIndex.sendMessage(DKW01401SFConst.SEARCH_YMD_CHOICE_INDEX_05, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.SEARCH_YMD_CHOICE, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_SEARCH_YMD_CHOICE, X31CWebConst.DATABEAN_CLEAR);

		// 検索日付区分をクリア
		serviceFormBean.sendMessage(DKW01401SFConst.SEARCH_YMD_CHOICE_KBN, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_SEARCH_YMD_CHOICE_KBN, X31CWebConst.DATABEAN_CLEAR);

		// 日付（ＦＲＯＭ）をクリア
		X31SDataBeanAccessArray ymdStaArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_DATE_STA);
		X31SDataBeanAccess ymdSta = ymdStaArray.getDataBean(0);
		ymdSta.sendMessage(DKW01401SFConst.YEAR_06, X31CWebConst.DATABEAN_CLEAR);
		ymdSta.sendMessage(DKW01401SFConst.MON_06, X31CWebConst.DATABEAN_CLEAR);
		ymdSta.sendMessage(DKW01401SFConst.DAY_06, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.DATE_STA, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_DATE_STA, X31CWebConst.DATABEAN_CLEAR);

		// 日付（ＴＯ）をクリア
		X31SDataBeanAccessArray ymdEndArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_DATE_END);
		X31SDataBeanAccess ymdEnd = ymdEndArray.getDataBean(0);
		ymdEnd.sendMessage(DKW01401SFConst.YEAR_06, X31CWebConst.DATABEAN_CLEAR);
		ymdEnd.sendMessage(DKW01401SFConst.MON_06, X31CWebConst.DATABEAN_CLEAR);
		ymdEnd.sendMessage(DKW01401SFConst.DAY_06, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.DATE_END, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW01401SFConst.BK_DATE_END, X31CWebConst.DATABEAN_CLEAR);

		// 棚移動状況一覧照会明細リストをクリア
		serviceFormBean.getDataBeanArray(DKW01401SFConst.SHOKAI_LIST).clearArray();

		// 行番号をクリア
		serviceFormBean.sendMessage(DKW01401SFConst.ROW_NO, X31CWebConst.DATABEAN_CLEAR);

		// 一覧表示件数をクリア
		serviceFormBean.sendMessageString(DKW01401SFConst.DISP_COUNT, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 遷移先画面IDを設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW01401);

		// 検索有無フラグを設定
		serviceFormBean.sendMessageString(DKW01401SFConst.SEARCH_UM_FLG, X31CWebConst.DATABEAN_SET_VALUE, "0");

		return true;
	}

	/**
	 * 棚移動状況一覧照会画面の移動結果CSVボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean outputCsv() throws Exception
	{
		record_count = 0;
		String fileData = "";
		String lotNo = "";
		Boolean firstFlg = true;
		StringBuffer fileName = new StringBuffer();
		String firstLotNo = "";
		Boolean firstCheckFlg = true;

		// サービスフォームBeanのデータBeanアクセスクラスを取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		X31SDataBeanAccessArray shokaiList = serviceFormBean.getDataBeanArray(DKW01401SFConst.SHOKAI_LIST);

		for (int i = 0; i < shokaiList.getCount(); i++)
		{
			X31SDataBeanAccess subbean = shokaiList.getDataBean(i);
			Boolean check = subbean.sendMessageBoolean(DKW01401SFConst.L_CHOICE_07, X31CWebConst.DATABEAN_GET_VALUE);
			if (check)
			{
				if(firstCheckFlg)
				{
					firstLotNo = subbean.sendMessageString(DKW01401SFConst.L_SDNAMV_LOT_NO_07, X31CWebConst.DATABEAN_GET_VALUE);
					firstCheckFlg = false;
				}
				// 出荷完了している明細のみ、CSV出力する
				String stat = subbean.sendMessageString(DKW01401SFConst.L_STAT_07, X31CWebConst.DATABEAN_GET_VALUE);
				if (SOKODNA_004.equals(stat) || YOBIKIKI_004.equals(stat) || YOBIKIKI_005.equals(stat))
				{
					lotNo = subbean.sendMessageString(DKW01401SFConst.L_SDNAMV_LOT_NO_07, X31CWebConst.DATABEAN_GET_VALUE);
					serviceFormBean.sendMessageString(DKW01401SFConst.KEY_SHELF_MOVE_LOT_NO, X31CWebConst.DATABEAN_SET_VALUE, lotNo);
					// サービスの呼び出しを行う
					putServiceDKSV0093(serviceFormBean);

					if (firstFlg)
					{
						// ファイル名の作成を行う eo_tana4_TXXXXXXXXX_yyyyMMddhhmmss.csv
						fileName.append(CSV_FILE_NAME);
						fileName.append(lotNo);
						fileName.append("_");
						fileName.append(JCCWebCommon.getSysDateTime());
						fileName.append(FILE_CSV);
						firstFlg = false;
						fileData = buildFile(lotNo);
					}
					else
					{
						fileData = fileData + JDKStrConst.LINE_SEPARATOR + buildFile(lotNo);
					}
				}
			}
		}

		// 選択行が全て未出力レコードの場合、選択行の先頭の棚移動ロット番号を付与する
		if(JDKCommonUtil.isNull(fileName))
		{
			fileName.append(CSV_FILE_NAME);
			fileName.append(firstLotNo);
			fileName.append("_");
			fileName.append(JCCWebCommon.getSysDateTime());
			fileName.append(FILE_CSV);
			fileData = join(JDKStrConst.LINE_SEPARATOR,
							buildTrailerRecord());
		}
		else
		{
			fileData = join(JDKStrConst.LINE_SEPARATOR,
							fileData,
							buildTrailerRecord());
		}

		// ダウンロード
		JCCWebCommon.setTempDownloadFile(this, fileData.getBytes(JDKStrConst.CHAR_SET_WIN31J), fileName.toString());
		getServiceFormBean().getDataBeanArray(DKW01401SFConst.CSV_LIST).clearArray();

		return true;
	}

	/**
	 * 一覧表の表示設定を行います。
	 * <br>
	 * @param paramBean 設定する一覧のBean情報
	 * @param serviceFormBean 設定する画面のServiceFormBean
	 * @throws Exception
	 */
	private void setList(X31SDataBeanAccess paramBean, X31SDataBeanAccess serviceFormBean) throws Exception
	{
		X31SDataBeanAccessArray shokaiList = paramBean.getDataBeanArray(DKW01401SFConst.SHOKAI_LIST);

		for (int i = 0; i < shokaiList.getCount(); i++)
		{
			X31SDataBeanAccess subbean = shokaiList.getDataBean(i);

			// 指示者表示名を設定 ７桁
			String shijisha = JDKWebCommon.substr(subbean.sendMessageString(DKW01401SFConst.L_SJISHA_07, X31CWebConst.DATABEAN_GET_VALUE), 0, 7);
			subbean.sendMessageString(DKW01401SFConst.L_SJISHA_DISP_NM_07, X31CWebConst.DATABEAN_SET_VALUE, shijisha);

			// 移動元を設定
			String mvMt = "";

			if (!JDKCommonUtil.isNull(subbean.sendMessageString(DKW01401SFConst.L_MV_MT_SOKO_NM_07, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				mvMt = subbean.sendMessageString(DKW01401SFConst.L_MV_MT_SOKO_NM_07, X31CWebConst.DATABEAN_GET_VALUE);
			}
			else if (!JDKCommonUtil.isNull(subbean.sendMessageString(DKW01401SFConst.L_MV_MT_KOJI_NM_07, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				mvMt = subbean.sendMessageString(DKW01401SFConst.L_MV_MT_KOJI_NM_07, X31CWebConst.DATABEAN_GET_VALUE);
			}
			else if (!JDKCommonUtil.isNull(subbean.sendMessageString(DKW01401SFConst.L_MV_MT_OFFICE_NM_07, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				mvMt = subbean.sendMessageString(DKW01401SFConst.L_MV_MT_OFFICE_NM_07, X31CWebConst.DATABEAN_GET_VALUE);
			}
			subbean.sendMessageString(DKW01401SFConst.L_MV_MT_07, X31CWebConst.DATABEAN_SET_VALUE, mvMt);
			// 移動元表示名 １６桁
			subbean.sendMessageString(DKW01401SFConst.L_MV_MT_DISP_NM_07, X31CWebConst.DATABEAN_SET_VALUE, JDKWebCommon.substr(mvMt, 0, 16));

			// 移動先を設定
			String mvSk = "";

			if (!JDKCommonUtil.isNull(subbean.sendMessageString(DKW01401SFConst.L_MV_SK_SOKO_NM_07, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				mvSk = subbean.sendMessageString(DKW01401SFConst.L_MV_SK_SOKO_NM_07, X31CWebConst.DATABEAN_GET_VALUE);
			}
			else if (!JDKCommonUtil.isNull(subbean.sendMessageString(DKW01401SFConst.L_MV_SK_KOJI_NM_07, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				mvSk = subbean.sendMessageString(DKW01401SFConst.L_MV_SK_KOJI_NM_07, X31CWebConst.DATABEAN_GET_VALUE);
			}
			else if (!JDKCommonUtil.isNull(subbean.sendMessageString(DKW01401SFConst.L_MV_SK_OFFICE_NM_07, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				mvSk = subbean.sendMessageString(DKW01401SFConst.L_MV_SK_OFFICE_NM_07, X31CWebConst.DATABEAN_GET_VALUE);
			}
			subbean.sendMessageString(DKW01401SFConst.L_MV_SK_07, X31CWebConst.DATABEAN_SET_VALUE, mvSk);
			// 移動先表示名 １６桁
			subbean.sendMessageString(DKW01401SFConst.L_MV_SK_DISP_NM_07, X31CWebConst.DATABEAN_SET_VALUE, JDKWebCommon.substr(mvSk, 0, 16));

			if (i % 2 == 1)
			{
				subbean.sendMessageString(DKW01401SFConst.L_COLOR_07, X31CWebConst.DATABEAN_SET_VALUE, "even");
			}
			else
			{
				subbean.sendMessageString(DKW01401SFConst.L_COLOR_07, X31CWebConst.DATABEAN_SET_VALUE, "odd");
			}
			subbean.sendMessageString(DKW01401SFConst.L_NO_07, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i + 1));
		}
		// 一覧表示件数を設定する
		serviceFormBean.sendMessageString(DKW01401SFConst.DISP_COUNT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(shokaiList.getCount()));
	}

	/**
	 * サービス（DKSV0037）の呼び出しを行います。
	 * <br>
	 * @param paramBean パラメータとなるBean情報
	 * @param func_code 機能コード
	 * @return 成否
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private boolean putServiceDKSV0037(X31SDataBeanAccess[] paramBean, String func_code) throws Exception
	{
		// ユースケースID格納用マップを生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0037");

		// マッピングクラスのインスタンスを生成
		DKSV0037_DKSV0037OPDBMapper mapper = new DKSV0037_DKSV0037OPDBMapper();

		HashMap<String, String> dataMap = new HashMap<String, String>();
		mapper.setDKSV003701SC(paramBean, dataMap, func_code);

		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "0", "DKSV003701SC", dataMap);

		// 検索結果格納用マップ
		HashMap outputMap = new HashMap<String, String>();

		// 検索処理呼出
		invokeService(paramMap, dataMap, outputMap);

		((X31SDataBeanAccessArray)paramBean[0].getDataBeanArray(DKW01401SFConst.SHOKAI_LIST)).clearArray();

		mapper.getDKSV003701SC(paramBean, outputMap);

		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("DKSV003701SC", outputMap);

		if (JPCModelConstant.SEARCH_ERR_FLG_ZERO.equals(searchErrFlg))
		{
			// 検索結果が0件の場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			return true;
		}
		else if (JPCModelConstant.SEARCH_ERR_FLG_OVERMAX.equals(searchErrFlg))
		{
			// 検索結果が最大検索件数超えの場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, new String [] {"500"});
			return true;
		}
		else if (JPCModelConstant.SEARCH_ERR_FLG_NODATA.equals(searchErrFlg))
		{
			// 表示ページに該当するデータがない
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0350__I);
		}

		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this,  "0", "DKSV003701SC", outputMap);

		// 一覧データに変更があった場合、行番号を再設定する
		String displayPageNum = (String)((HashMap)outputMap.get("DKSV003701SC")).get("display_no");
		if (!JDKCommonUtil.isNull(displayPageNum) && !"non".equals(displayPageNum))
		{
			X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
			X31SDataBeanAccessArray shokaiList = serviceFormBean.getDataBeanArray(DKW01401SFConst.SHOKAI_LIST);
			X31SDataBeanAccess subbean = shokaiList.getDataBean(Integer.parseInt(displayPageNum));
			subbean.sendMessageBoolean(DKW01401SFConst.L_CHOICE_07, X31CWebConst.DATABEAN_SET_VALUE, true);
		}

		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "L_PAG_LIST");

		return true;
	}

	/**
	 * サービス（DKSV0093）の呼び出しを行います。
	 * <br>
	 * @param sFormBean サービスフォームビーン
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	private void putServiceDKSV0093(X31SDataBeanAccess sFormBean) throws Exception
	{
		X31SDataBeanAccess[] paramBean = {sFormBean};

		// ユースケースID格納用マップを生成
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0093");

		// マッピングクラスのインスタンスを生成
		DKSV0093_DKSV0093OPDBMapper mapper = new DKSV0093_DKSV0093OPDBMapper();

		HashMap<String, String> dataMap = new HashMap<String, String>();

		// 棚移動結果情報 ※機能コード１固定
		mapper.setDKSV009301SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// 検索結果格納用マップ
		HashMap<String, String> outputMap = new HashMap<String, String>();

		// 検索処理呼出
		invokeService(paramMap, dataMap, outputMap);

		mapper.getDKSV009301SC(paramBean, outputMap);
	}

	/**
	 * 画面遷移先を設定します。
	 * <br>
	 * @param nextScreenId 遷移先画面ID
	 * @param nextScreenName 遷移先画面名
	 */
	private void setNextScreen(String nextScreenId, String nextScreenName)
	{
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, nextScreenName);
	}

	/**
	 * 棚移動結果データファイルを生成します。
	 * @param lotNo 棚移動ロット番号
	 * @return 棚移動結果データファイル
	 */
	private String buildFile(String lotNo)
	{
		X31SDataBeanAccessArray datas = getServiceFormBean().getDataBeanArray(DKW01401SFConst.CSV_LIST);

		// 指定方法を取得
		String shiteicd = "";
		if (0 < datas.getCount())
		{
			shiteicd = getData(datas.getDataBean(0), DKW01401SFConst.SHITEI_WAY_08);
		}

		StringBuffer bodyRecords = new StringBuffer();
		String mvNo = "";
		for (int i = 0; i < datas.getCount(); i++)
		{
			// 初回
			if (i == 0)
			{
				mvNo = getData(datas.getDataBean(i), DKW01401SFConst.MOVE_NO_08);
			}

			if (bodyRecords.length() > 0)
			{
				bodyRecords.append(JDKStrConst.LINE_SEPARATOR);
			}

			// 製番指定の場合ヘッダ部を毎回付与
			if ("2".equals(shiteicd))
			{
				bodyRecords.append(buildHeaderRecord(lotNo, i));
				bodyRecords.append(JDKStrConst.LINE_SEPARATOR);
			}
			else
			{
				// 数量指定の場合
				// 初回の場合
				if (0 == i)
				{
					bodyRecords.append(buildHeaderRecord(lotNo, i));
					bodyRecords.append(JDKStrConst.LINE_SEPARATOR);
				}
				// 数量指定の場合予備機器配送番号が同じでない場合ヘッダ部を付与
				if (i + 1 <= datas.getCount())
				{
					if (!mvNo.equals(getData(datas.getDataBean(i), DKW01401SFConst.MOVE_NO_08)))
					{
						bodyRecords.append(buildHeaderRecord(lotNo, i));
						bodyRecords.append(JDKStrConst.LINE_SEPARATOR);
					}
				}
				// 最終行は前行と予備機器配送番号が異なる場合ヘッダ部を付与
				if (1 <= i && i + 1 == datas.getCount())
				{
					if (!mvNo.equals(getData(datas.getDataBean(i - 1), DKW01401SFConst.MOVE_NO_08)))
					{
						bodyRecords.append(buildHeaderRecord(lotNo, i));
						bodyRecords.append(JDKStrConst.LINE_SEPARATOR);
					}
				}

				// 予備機器配送番号が異なる場合
				if (!mvNo.equals(getData(datas.getDataBean(i), DKW01401SFConst.MOVE_NO_08)))
				{
					mvNo = getData(datas.getDataBean(i), DKW01401SFConst.MOVE_NO_08);
				}

			}
			bodyRecords.append(buildDataRecord(datas.getDataBean(i), lotNo));
			record_count++;
		}

		String file = bodyRecords.toString();
		DEBUG_LOG.debug(String.format("ファイル内容：%s", file));

		return file;
	}

	/**
	 * 出力ファイルのヘッダ部を生成します。
	 * @param lotNo 棚移動ロット番号
	 * @param rowNo データ行番号
	 * @return ヘッダレコード
	 */
	private String buildHeaderRecord(String lotNo, int rowNo)
	{
		X31SDataBeanAccessArray datas = getServiceFormBean().getDataBeanArray(DKW01401SFConst.CSV_LIST);
		X31SDataBeanAccess resultData = datas.getDataBean(rowNo);

		// 移動元コード
		String sokoMtCd = getData(resultData, DKW01401SFConst.MV_MT_SOKO_CD_08);	// 移動元倉庫コード
		String kojiMtCd = getData(resultData, DKW01401SFConst.MV_MT_KOJI_CD_08);	// 移動元工事会社コード
		String ofcMtCd = getData(resultData, DKW01401SFConst.MV_MT_OFFICE_CD_08);	// 移動元預託先オフィスコード
		String mtCd = "";
		// 倉庫の場合
		if (!JDKCommonUtil.isNull(sokoMtCd))
		{
			mtCd = sokoMtCd;
		}
		// 工事会社の場合
		else if (!JDKCommonUtil.isNull(kojiMtCd))
		{
			mtCd = kojiMtCd;
		}
		// 預託先オフィスの場合
		else if (!JDKCommonUtil.isNull(ofcMtCd))
		{
			mtCd = ofcMtCd;
		}

		// 型番号
		String nmlMdlNo = getData(resultData, DKW01401SFConst.TKKIKI_MDL_CD_08);		// 宅内機器型式コード
		String setMdlNo = getData(resultData, DKW01401SFConst.TKKIKI_SETHIN_MDL_CD_08);	// 宅内機器セット品型コード
		String fzkMdlNo = getData(resultData, DKW01401SFConst.HUZOKUHIN_MDL_CD_08);		// 付属品型式コード
		String mdlNo = "";
		// 宅内機器の場合
		if (!JDKCommonUtil.isNull(nmlMdlNo))
		{
			mdlNo = nmlMdlNo;
		}
		// セット品の場合
		else if (!JDKCommonUtil.isNull(setMdlNo))
		{
			mdlNo = setMdlNo;
		}
		// 付属品の場合
		else if (!JDKCommonUtil.isNull(fzkMdlNo))
		{
			mdlNo = fzkMdlNo;
		}

		// 製造番号、指示数、移動数
		String seizoNo = "";
		String sjiNo = "";
		String idoNo = "";
		String shiteiCd = getData(resultData, DKW01401SFConst.SHITEI_WAY_08);
		// 製番指定の場合
		if (!JDKCommonUtil.isNull(shiteiCd) && "2".equals(shiteiCd))
		{
			String nmlSeizoNo = getData(resultData, DKW01401SFConst.KIKI_SEIZO_NO_08);
			String setSeizoNo = getData(resultData, DKW01401SFConst.TKKIKI_SETHIN_SEIZO_NO_08);
			if (!JDKCommonUtil.isNull(nmlSeizoNo))
			{
				seizoNo = nmlSeizoNo;
			}
			else if (!JDKCommonUtil.isNull(setSeizoNo))
			{
				seizoNo = setSeizoNo;
			}
			sjiNo = "1";
			idoNo = "1";
		}
		// 数量指定の場合
		else
		{
			seizoNo = "";
			sjiNo = getData(resultData, DKW01401SFConst.SJI_CNT_08);

			// 移動数計算（予備機器配送番号が同じ機器の件数）
			int idoCnt = 0;
			String mvNo = getData(resultData, DKW01401SFConst.MOVE_NO_08);
			for (int i = 0; i < datas.getCount(); i++)
			{
				X31SDataBeanAccess data = datas.getDataBean(i);
				
				if (mvNo.equals(getData(data, DKW01401SFConst.MOVE_NO_08)))
				{
					idoCnt += 1;
				}
			}
			idoNo = Integer.toString(idoCnt);
		}

		// 種別
		String sbt = getData(resultData, DKW01401SFConst.MV_SBT_08);

		record_count++;

		// 倉庫棚移動よりデータ取得時
		if ("1".equals(sbt))
		{
			return join(JDKStrConst.COMMA, 
					dqot(RECORD_KIHON), 
					dqot(getData(resultData, DKW01401SFConst.SJI_YMD_08)), 
					dqot(lotNo), 
					dqot(mtCd), 
					dqot(getData(resultData, DKW01401SFConst.MV_MT_SHELF_CD_08)), 
					dqot(mdlNo), 
					dqot(seizoNo), 
					dqot(getData(resultData, DKW01401SFConst.GDS_STAT_CD_08)), 
					dqot(sjiNo), 
					dqot(mtCd), 
					dqot(getData(resultData, DKW01401SFConst.MV_SK_SHELF_CD_08)), 
					dqot(idoNo));
		}
		// 予備機器配送よりデータ取得時
		else
		{
			// 移動先コード
			String sokoSkCd = getData(resultData, DKW01401SFConst.MV_SK_SOKO_CD_08);
			String kojiSkCd = getData(resultData, DKW01401SFConst.MV_SK_KOJI_CD_08);
			String ofcSkCd = getData(resultData, DKW01401SFConst.MV_SK_OFFICE_CD_08);
			String skCd = "";
			if (!JDKCommonUtil.isNull(sokoSkCd))
			{
				skCd = sokoSkCd;
			}
			else if (!JDKCommonUtil.isNull(kojiSkCd))
			{
				skCd = kojiSkCd;
			}
			else if (!JDKCommonUtil.isNull(ofcSkCd))
			{
				skCd = ofcSkCd;
			}

			return join(JDKStrConst.COMMA, 
					dqot(RECORD_KIHON), 
					dqot(getData(resultData, DKW01401SFConst.SJI_YMD_08)), 
					dqot(lotNo), 
					dqot(mtCd), 
					dqot(getData(resultData, DKW01401SFConst.MV_MT_SHELF_CD_08)), 
					dqot(mdlNo), 
					dqot(seizoNo), 
					dqot(getData(resultData, DKW01401SFConst.GDS_STAT_CD_08)), 
					dqot(sjiNo), 
					dqot(skCd), 
					dqot(getData(resultData, DKW01401SFConst.MV_SK_SHELF_CD_08)), 
					dqot(idoNo));
		}
	}

	/**
	 * 出力ファイルのデータ部を生成します。
	 * @param data 行データ
	 * @param lotNo 棚移動ロット番号
	 * @return データレコード
	 */
	private String buildDataRecord(X31SDataBeanAccess data, String lotNo) 
	{
		// 型番号
		String nmlMdlNo = getData(data, DKW01401SFConst.TKKIKI_MDL_CD_08);		// 宅内機器型式コード
		String setMdlNo = getData(data, DKW01401SFConst.TKKIKI_SETHIN_MDL_CD_08);	// 宅内機器セット品型コード
		String fzkMdlNo = getData(data, DKW01401SFConst.HUZOKUHIN_MDL_CD_08);		// 付属品型式コード
		String mdlNo = "";
		// 宅内機器の場合
		if (!JDKCommonUtil.isNull(nmlMdlNo))
		{
			mdlNo = nmlMdlNo;
		}
		// セット品の場合
		else if (!JDKCommonUtil.isNull(setMdlNo))
		{
			mdlNo = setMdlNo;
		}
		// 付属品の場合
		else if (!JDKCommonUtil.isNull(fzkMdlNo))
		{
			mdlNo = fzkMdlNo;
		}

		// 製造番号
		String seizoNo = "";
		String nmlSeizoNo = getData(data, DKW01401SFConst.KIKI_SEIZO_NO_08);
		String setSeizoNo = getData(data, DKW01401SFConst.TKKIKI_SETHIN_SEIZO_NO_08);
		if (!JDKCommonUtil.isNull(nmlSeizoNo))
		{
			seizoNo = nmlSeizoNo;
		}
		else if (!JDKCommonUtil.isNull(setSeizoNo))
		{
			seizoNo = setSeizoNo;
		}

		// 移動数
		String idoNo = "1";

		return join(JDKStrConst.COMMA, 
				dqot(RECORD_SHOSAI), 
				dqot(getData(data, DKW01401SFConst.SJI_YMD_08)), 
				dqot(lotNo), 
				dqot(mdlNo), 
				dqot(seizoNo), 
				dqot(getData(data, DKW01401SFConst.GDS_STAT_CD_08)), 
				dqot(idoNo));
	}

	/**
	 * 出力ファイルのトレーラ部を生成します。
	 * @return トレーラレコード
	 */
	private String buildTrailerRecord() 
	{
		record_count++;
		String strCnt = Integer.toString(record_count);
		return join(JDKStrConst.COMMA, 
				dqot(RECORD_TRAILER), 
				dqot(strCnt));
	}

	/**
	 * 文字列をダブルクォーテッドする
	 * @param src 囲まれる文字列
	 * @return \"囲まれる文字列\"
	 */
	private String dqot(String src)
	{
		return String.format("\"%s\"", src);
	}
	
	/**
	 * インデックスを引数にプルダウンからコードを取得します。
	 * @param index インデックス
	 * @param serviceFormBean サービスフォームビーン
	 * @param pullDownList プルダウンリスト情報
	 * @return 取得したい値のが入っているリスト
	 */
	private String getIndexToCodeForDdl(int index, X31SDataBeanAccess serviceFormBean, String pullDownList, String targetList)
	{
		String retCode = null;

		X31SDataBeanAccessArray accessArray = serviceFormBean.getDataBeanArray(pullDownList);
		X31SDataBeanAccess subbean = accessArray.getDataBean(0);
		retCode = subbean.sendMessageString(targetList, X31CWebConst.DATABEAN_GET_VALUE, index);

		return retCode;
	}

	/**
	 * コードを引数にプルダウンからインデックスを取得します。
	 * @param code 状態コード
	 * @param serviceFormBean サービスフォームビーン
	 * @param judgeCd 判定コード（"1"：型番号、"2"：状態、"3"：指定方法、"4"：移動元、"5"：移動先、"6"：検索日付）
	 * @return 取得したインデックス
	 */
	private int getCodeToIndexForDdl(String code, X31SDataBeanAccess serviceFormBean, String judgeCd)
	{
		int retIndex = 0;

		if (JUDGECD_MDLNO.equals(judgeCd))
		{
			// 型番号コードリストを取得
			X31SDataBeanAccessArray mdlNoArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_MDL_NO);
			X31SDataBeanAccess mdlNo = mdlNoArray.getDataBean(0);

			for (int i = 0; i < Integer.valueOf(mdlNo.sendMessage(DKW01401SFConst.MDL_NO_CD_LIST_01, X31CWebConst.DATABEAN_GET_COUNT).toString()); i++)
			{
				if (code.equals(mdlNo.sendMessageString(DKW01401SFConst.MDL_NO_CD_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					retIndex = i;
					break;
				}
			}
		}
		else if (JUDGECD_STAT.equals(judgeCd))
		{
			// 状態コードリストを取得
			X31SDataBeanAccessArray statArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_STAT);
			X31SDataBeanAccess stat = statArray.getDataBean(0);

			for (int i = 0; i < Integer.valueOf(stat.sendMessage(DKW01401SFConst.STAT_CD_LIST_02, X31CWebConst.DATABEAN_GET_COUNT).toString()); i++)
			{
				if (code.equals(stat.sendMessageString(DKW01401SFConst.STAT_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					retIndex = i;
					break;
				}
			}
		}
		else if (JUDGECD_SHITEIWAY.equals(judgeCd))
		{
			// 指定方法コードリストを取得
			X31SDataBeanAccessArray shiteiArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_SHITEI_WAY);
			X31SDataBeanAccess shitei = shiteiArray.getDataBean(0);

			for (int i = 0; i < Integer.valueOf(shitei.sendMessage(DKW01401SFConst.SHITEI_WAY_CD_LIST_03, X31CWebConst.DATABEAN_GET_COUNT).toString()); i++)
			{
				if (code.equals(shitei.sendMessageString(DKW01401SFConst.SHITEI_WAY_CD_LIST_03, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					retIndex = i;
					break;
				}
			}
		}
		else if (JUDGECD_MVMT.equals(judgeCd))
		{
			// 移動元コードリストを取得
			X31SDataBeanAccessArray mvMtArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_MV);
			X31SDataBeanAccess mvMt = mvMtArray.getDataBean(0);

			for (int i = 0; i < Integer.valueOf(mvMt.sendMessage(DKW01401SFConst.MV_CD_LIST_04, X31CWebConst.DATABEAN_GET_COUNT).toString()); i++)
			{
				if (code.equals(mvMt.sendMessageString(DKW01401SFConst.MV_CD_LIST_04, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					retIndex = i;
					break;
				}
			}
		}
		else if (JUDGECD_MVSK.equals(judgeCd))
		{
			// 移動先コードリストを取得
			X31SDataBeanAccessArray mvSkArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_MV);
			X31SDataBeanAccess mvSk = mvSkArray.getDataBean(0);

			for (int i = 0; i < Integer.valueOf(mvSk.sendMessage(DKW01401SFConst.MV_CD_LIST_04, X31CWebConst.DATABEAN_GET_COUNT).toString()); i++)
			{
				if (code.equals(mvSk.sendMessageString(DKW01401SFConst.MV_CD_LIST_04, X31CWebConst.DATABEAN_GET_VALUE, i)))
				{
					retIndex = i;
					break;
				}
			}
		}
		else if (JUDGECD_SEARCHYMD.equals(judgeCd))
		{
			// 検索日付コードリストを取得
			X31SDataBeanAccessArray ymdArray = serviceFormBean.getDataBeanArray(DKW01401SFConst.I_SEARCH_YMD_CHOICE);
			X31SDataBeanAccess ymd = ymdArray.getDataBean(0);

			for (int i = 0; i < Integer.valueOf(ymd.sendMessage(DKW01401SFConst.SEARCH_YMD_CHOICE_CD_LIST_05, 
					X31CWebConst.DATABEAN_GET_COUNT).toString()); i++)
			{
				if (code.equals(ymd.sendMessageString(DKW01401SFConst.SEARCH_YMD_CHOICE_CD_LIST_05, 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, "");
	}

	/**
	 * プルダウンの０番目の項目に初期表示の文言を挿入します。
	 * @param pulldown プルダウンを指す項目ID
	 * @param cdList プルダウン中でコード一覧をさす項目ID
	 * @param nmList プルダウン中で名称一覧をさす項目ID
	 */
	private void pushWordToTopOfPulldown(String pulldown, String cdList, String nmList)
	{
		X31SDataBeanAccess pulldownBean = super.getServiceFormBean().getDataBeanArray(pulldown).getDataBean(0);

		appendPrefix(getBean(this, pulldown), nmList);
		
		slideArrayOnDatabeanYMD(pulldownBean, cdList);
		slideArrayOnDatabeanYMD(pulldownBean, nmList);
	}

	/**
	 * データビーンの配列要素をインデックスが増加する方向に１つずらす
	 * @param bean データビーン
	 * @param listName 対象項目ID
	 */
	private void slideArrayOnDatabeanYMD(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, "検索日付選択");
	}
}
