/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：物流管理システム
*   モジュール名    ：DKW03301SFLogic
*   ソースファイル名：DKW03301SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年05月24日
*＜機能概要＞
*   出荷完了一覧照会画面です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/05/24   FJ）福西    新規作成
*
**********************************************************************/
package eo.web.webview.DKW03301SF;

import static eo.web.webview.common.JDKWebCommon.appendPrefix;
import static eo.web.webview.common.JDKWebCommon.getBean;

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 eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JDKCommonUtil;
import eo.common.util.JPCDateUtil;
import eo.common.util.JPCEditString;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.DKW03302SF.DKW03302SFConst;
import eo.web.webview.common.JCCMessageCache;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JDKScreenConst;
import eo.web.webview.mapping.DKSV0069_DKSV0069OPDBMapper;
import eo.web.webview.mapping.DKSV0070_DKSV0070OPDBMapper;

/**
 * 出荷完了一覧画面のビューロジック処理を行います。
 * @author user
 *
 */
public class DKW03301SFLogic extends JCCWebBusinessLogic
{

	/**
	 * シリアルバージョンＩＤ
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 初期表示を処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean init() throws Exception
	{

		// 画面情報を取得し、サービスフォームBeanに設定
		JCCWebCommon.getScreenInfo(this);

		// サービスフォームBeanのデータBeanアクセスクラスを取得。
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 遷移先画面ＩＤの設定
		setNextScreen(JDKScreenConst.SCREEN_ID_DKW03301, JDKScreenConst.SCREEN_NAME_DKW03301);

		// 運用日付を取得
		String opeDate = JCCWebCommon.getOpeDate(this, null);

		// 遷移元画面ＩＤを設定
		String referId = serviceFormBean.sendMessageString(DKW03301SFConst.MT_SCREEN_ID, X31CWebConst.DATABEAN_GET_VALUE);

		// 一覧表示件数を初期化する
		serviceFormBean.sendMessageString(DKW03301SFConst.DISP_COUNT, X31CWebConst.DATABEAN_SET_VALUE, "0");

		String bkShkaFinSta = null;
		String bkShkaFinEnd = null;
		String bkTrnStatCd = null;
		String dispTrnStatCd = null;
		String rowNo = null;

		// メニュー（null）の場合
		if (JDKCommonUtil.isNull(referId))
		{

			// 運用日付−３を取得
			String shkaFinFrom = JPCDateUtil.addDay(opeDate, -3);

			// 出荷完了日付（ＦＲＯＭ）に日付を設定する
			X31SDataBeanAccessArray shkaFinStaArray
							= serviceFormBean.getDataBeanArray(DKW03301SFConst.I_SHKA_FIN_STA);
			X31SDataBeanAccess shkaFinSta = shkaFinStaArray.getDataBean(0);

			// 年に運用日付−３の年月日変換処理（年月日→年）を設定
			shkaFinSta.sendMessageString(DKW03301SFConst.YEAR_01
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(shkaFinFrom));

			// 月に運用日付−３の年月日変換処理（年月日→月）を設定
			shkaFinSta.sendMessageString(DKW03301SFConst.MON_01
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(shkaFinFrom));

			// 日に運用日付−３の年月日変換処理（年月日→日）を設定
			shkaFinSta.sendMessageString(DKW03301SFConst.DAY_01
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(shkaFinFrom));

			// 出荷完了日付（ＦＲＯＭ）に日付を設定する
			X31SDataBeanAccessArray shkaFinEndArray
							= serviceFormBean.getDataBeanArray(DKW03301SFConst.I_SHKA_FIN_END);
			X31SDataBeanAccess shkaFinEnd = shkaFinEndArray.getDataBean(0);

			// 年に運用日付−３の年月日変換処理（年月日→年）を設定
			shkaFinEnd.sendMessageString(DKW03301SFConst.YEAR_01
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(opeDate));

			// 月に運用日付−３の年月日変換処理（年月日→月）を設定
			shkaFinEnd.sendMessageString(DKW03301SFConst.MON_01
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(opeDate));

			// 日に運用日付−３の年月日変換処理（年月日→日）を設定
			shkaFinEnd.sendMessageString(DKW03301SFConst.DAY_01
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(opeDate));

			// 出荷完了開始日を設定
			serviceFormBean.sendMessageString(DKW03301SFConst.SHKA_FIN_STA
					, X31CWebConst.DATABEAN_SET_VALUE, shkaFinFrom + "000000000");
			bkShkaFinSta = shkaFinFrom + "000000000";

			// 出荷完了終了日を設定
			serviceFormBean.sendMessageString(DKW03301SFConst.SHKA_FIN_END
					, X31CWebConst.DATABEAN_SET_VALUE, opeDate + "235959999");
			bkShkaFinEnd = opeDate + "235959999";

			// 処理状態コードを設定
			serviceFormBean.sendMessageString(DKW03301SFConst.TRN_STAT_CD
					, X31CWebConst.DATABEAN_SET_VALUE, null);
			bkTrnStatCd = null;

			// 行番号を設定
			serviceFormBean.sendMessageString(DKW03301SFConst.ROW_NO
					, X31CWebConst.DATABEAN_SET_VALUE, "0");
		}
		else
		{

			// 画面表示データを設定
			// 出荷完了日（ＦＲＯＭ）
			X31SDataBeanAccessArray shkaFinStaArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.I_SHKA_FIN_STA);
			X31SDataBeanAccess shkaFinSta = shkaFinStaArray.getDataBean(0);
			String strShkaFinSta = serviceFormBean.sendMessageString(DKW03301SFConst.SHKA_FIN_STA
									, X31CWebConst.DATABEAN_GET_VALUE);
			shkaFinSta.sendMessageString(DKW03301SFConst.YEAR_01
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(strShkaFinSta));
			shkaFinSta.sendMessageString(DKW03301SFConst.MON_01
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(strShkaFinSta));
			shkaFinSta.sendMessageString(DKW03301SFConst.DAY_01
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(strShkaFinSta));

			// 出荷完了日（ＴＯ）
			X31SDataBeanAccessArray shkaFinEndArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.I_SHKA_FIN_END);
			X31SDataBeanAccess shkaFinEnd = shkaFinEndArray.getDataBean(0);
			String strShkaFinEnd = serviceFormBean.sendMessageString(DKW03301SFConst.SHKA_FIN_END
									, X31CWebConst.DATABEAN_GET_VALUE);
			shkaFinEnd.sendMessageString(DKW03301SFConst.YEAR_01
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toYearFromYmd(strShkaFinEnd));
			shkaFinEnd.sendMessageString(DKW03301SFConst.MON_01
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toMonthFromYmd(strShkaFinEnd));
			shkaFinEnd.sendMessageString(DKW03301SFConst.DAY_01
					, X31CWebConst.DATABEAN_SET_VALUE, JPCEditString.toDayFromYmd(strShkaFinEnd));

			// 処理状態コード
			bkTrnStatCd = serviceFormBean.sendMessageString(DKW03301SFConst.BK_TRN_STAT_CD , X31CWebConst.DATABEAN_GET_VALUE);
			dispTrnStatCd = serviceFormBean.sendMessageString(DKW03301SFConst.TRN_STAT_CD , X31CWebConst.DATABEAN_GET_VALUE);

			// 出荷完了開始日を設定
			serviceFormBean.sendMessageString(DKW03301SFConst.SHKA_FIN_STA, X31CWebConst.DATABEAN_SET_VALUE
					, serviceFormBean.sendMessageString(DKW03301SFConst.BK_SHKA_FIN_STA , X31CWebConst.DATABEAN_GET_VALUE));

			// 出荷完了終了日を設定
			serviceFormBean.sendMessageString(DKW03301SFConst.SHKA_FIN_END, X31CWebConst.DATABEAN_SET_VALUE
					, serviceFormBean.sendMessageString(DKW03301SFConst.BK_SHKA_FIN_END , X31CWebConst.DATABEAN_GET_VALUE));

			// 処理状態コードを設定
			serviceFormBean.sendMessageString(DKW03301SFConst.TRN_STAT_CD, X31CWebConst.DATABEAN_SET_VALUE, bkTrnStatCd);

			rowNo = serviceFormBean.sendMessageString(DKW03301SFConst.ROW_NO , X31CWebConst.DATABEAN_GET_VALUE);
		}

		// 遷移元画面ＩＤをクリア
		serviceFormBean.sendMessageString(DKW03301SFConst.MT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, null);

		// 基準日を設定
		serviceFormBean.sendMessageString(DKW03301SFConst.KJN_YMD
				, X31CWebConst.DATABEAN_SET_VALUE, opeDate);

		// パラメータ作成
		X31SDataBeanAccess[] paramBean = {serviceFormBean};

		// ◇ 業務ロジックの記述
		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// ユースケースＩＤを設定
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0069");

		// DataBean⇔BPの上りマッピングを行う
		DKSV0069_DKSV0069OPDBMapper mapper = new DKSV0069_DKSV0069OPDBMapper();
		mapper.setDKSV006901SC(paramBean, inputMap, "1");
		mapper.setDKSV006902SC(paramBean, inputMap, "1");

		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "0", "DKSV006902SC", inputMap);

		// 検索結果格納用マップを生成。
		// サービス呼出 
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);

		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}

		JCCMessageCache.setMessageCache();

		// DataBean⇔BPの下りマッピングを行う
		mapper.getDKSV006901SC(paramBean, outputMap);
		mapper.getDKSV006902SC(paramBean, outputMap);

		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("DKSV006902SC", outputMap);
		if ("1".equals(searchErrFlg))
		{

			// 検索結果が0件の場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
		}
		else if ("2".equals(searchErrFlg))
		{

			// 検索結果が最大検索件数超えの場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, new String [] {"150"});
		}
		else
		{

			// ページング情報の設定
			JCCWebCommon.downmapperPageLinkInfo(this,  "0", "DKSV006902SC", outputMap);

			// 検索のコマンドIDを設定する。
			JCCWebCommon.setSearchCommand(this, "L_PAG_LIST");

			// 一覧表を設定する
			this.setList(paramBean[0], serviceFormBean, rowNo);
		}

		// メニュー（null）以外の場合
		if (!JDKCommonUtil.isNull(referId))
		{
			X31SDataBeanAccessArray iTrnStatCdArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.I_TRN_STAT_CD);
			X31SDataBeanAccess iTrnStatCd = iTrnStatCdArray.getDataBean(0);
			iTrnStatCd.sendMessageString(DKW03301SFConst.I_TRN_STAT_CD_02, X31CWebConst.DATABEAN_SET_VALUE, dispTrnStatCd);
		}

		// 検索時の条件を退避
		serviceFormBean.sendMessageString(DKW03301SFConst.BK_SHKA_FIN_STA, X31CWebConst.DATABEAN_SET_VALUE, bkShkaFinSta);
		serviceFormBean.sendMessageString(DKW03301SFConst.BK_SHKA_FIN_END , X31CWebConst.DATABEAN_SET_VALUE, bkShkaFinEnd);
		serviceFormBean.sendMessageString(DKW03301SFConst.BK_TRN_STAT_CD , X31CWebConst.DATABEAN_SET_VALUE, bkTrnStatCd);

		appendPrefix(getBean(this, DKW03301SFConst.I_TRN_STAT_CD), DKW03301SFConst.I_TRN_STAT_NM_LIST_02);

		return true;
	}

	/**
	 * 出荷完了一覧画面の検索ボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean search() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		String bkShkaFinSta = null;
		String bkShkaFinEnd = null;
		String bkTrnStatCd = null;

		// 一覧表示件数を初期化する
		serviceFormBean.sendMessageString(DKW03301SFConst.DISP_COUNT, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 出荷完了開始日を初期化する
		serviceFormBean.sendMessage(DKW03301SFConst.SHKA_FIN_STA, X31CWebConst.DATABEAN_CLEAR);

		// 出荷完了終了日を初期化する
		serviceFormBean.sendMessage(DKW03301SFConst.SHKA_FIN_END, X31CWebConst.DATABEAN_CLEAR);

		// 処理状態コードを初期化する
		serviceFormBean.sendMessage(DKW03301SFConst.TRN_STAT_CD, X31CWebConst.DATABEAN_CLEAR);

		// 検索時出荷完了開始日を初期化する
		serviceFormBean.sendMessage(DKW03301SFConst.BK_SHKA_FIN_STA, X31CWebConst.DATABEAN_CLEAR);

		// 検索時出荷完了終了日を初期化する
		serviceFormBean.sendMessage(DKW03301SFConst.BK_SHKA_FIN_END, X31CWebConst.DATABEAN_CLEAR);

		// 検索時処理状態コードを初期化する
		serviceFormBean.sendMessage(DKW03301SFConst.BK_TRN_STAT_CD, X31CWebConst.DATABEAN_CLEAR);

		// ページング情報の設定
		JCCWebCommon.clearPageLinkInfo(this, JDKScreenConst.SCREEN_ID_DKW03301);

		// 出荷完了日付（ＦＲＯＭ）に日付を設定する
		X31SDataBeanAccessArray shkaFinStaArray
						= serviceFormBean.getDataBeanArray(DKW03301SFConst.I_SHKA_FIN_STA);
		X31SDataBeanAccess shkaFinSta = shkaFinStaArray.getDataBean(0);

		// 年を取得
		String fromYear = shkaFinSta.sendMessageString(DKW03301SFConst.YEAR_01, X31CWebConst.DATABEAN_GET_VALUE);

		// 月を取得
		String fromMon = shkaFinSta.sendMessageString(DKW03301SFConst.MON_01, X31CWebConst.DATABEAN_GET_VALUE);

		// 日を取得
		String fromDay = shkaFinSta.sendMessageString(DKW03301SFConst.DAY_01, X31CWebConst.DATABEAN_GET_VALUE);

		if (!JDKCommonUtil.isNull(fromYear) || !JDKCommonUtil.isNull(fromMon) || !JDKCommonUtil.isNull(fromDay))
		{
			bkShkaFinSta = fromYear + fromMon + fromDay + "000000000";
		}
		
		// 出荷完了開始日を設定
		serviceFormBean.sendMessageString(DKW03301SFConst.SHKA_FIN_STA
				, X31CWebConst.DATABEAN_SET_VALUE, bkShkaFinSta);

		// 出荷完了日付（ＦＲＯＭ）に日付を設定する
		X31SDataBeanAccessArray shkaFinEndArray
						= serviceFormBean.getDataBeanArray(DKW03301SFConst.I_SHKA_FIN_END);
		X31SDataBeanAccess shkaFinEnd = shkaFinEndArray.getDataBean(0);

		// 年を取得
		String toYear = shkaFinEnd.sendMessageString(DKW03301SFConst.YEAR_01, X31CWebConst.DATABEAN_GET_VALUE);

		// 月を取得
		String toMon = shkaFinEnd.sendMessageString(DKW03301SFConst.MON_01, X31CWebConst.DATABEAN_GET_VALUE);

		// 日を取得
		String toDay = shkaFinEnd.sendMessageString(DKW03301SFConst.DAY_01, X31CWebConst.DATABEAN_GET_VALUE);

		if (!JDKCommonUtil.isNull(toYear) || !JDKCommonUtil.isNull(toMon) || !JDKCommonUtil.isNull(toDay))
		{
			bkShkaFinEnd = toYear + toMon + toDay + "235959999";
		}

		// 出荷完了終了日を設定
		serviceFormBean.sendMessageString(DKW03301SFConst.SHKA_FIN_END
				, X31CWebConst.DATABEAN_SET_VALUE, bkShkaFinEnd);

		// 処理状態コードを設定
		X31SDataBeanAccessArray trnStatCdArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.I_TRN_STAT_CD);
		String sIndex = trnStatCdArray.getDataBean(0).sendMessageString(DKW03301SFConst.I_TRN_STAT_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
		bkTrnStatCd = this.getIndexToCodeForDdl(Integer.valueOf(sIndex), serviceFormBean);
		serviceFormBean.sendMessageString(DKW03301SFConst.TRN_STAT_CD, X31CWebConst.DATABEAN_SET_VALUE, bkTrnStatCd);

		// 基準日を設定
		serviceFormBean.sendMessageString(DKW03301SFConst.KJN_YMD
				, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));

		X31SDataBeanAccess[] paramBean = {serviceFormBean};

		// サービスの呼び出しを行う
		if (!putServiceDKSV0070(paramBean))
		{
			return false;
		}

		// 行番号を設定
		serviceFormBean.sendMessageString(DKW03301SFConst.ROW_NO, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 一覧表の表示設定を行う
		this.setList(paramBean[0], serviceFormBean, null);

		// 遷移先画面ＩＤの設定
		setNextScreen(JDKScreenConst.SCREEN_ID_DKW03301, JDKScreenConst.SCREEN_NAME_DKW03301);

		serviceFormBean.sendMessageString(DKW03301SFConst.BK_SHKA_FIN_STA, X31CWebConst.DATABEAN_SET_VALUE, bkShkaFinSta);
		serviceFormBean.sendMessageString(DKW03301SFConst.BK_SHKA_FIN_END , X31CWebConst.DATABEAN_SET_VALUE, bkShkaFinEnd);
		serviceFormBean.sendMessageString(DKW03301SFConst.BK_TRN_STAT_CD , X31CWebConst.DATABEAN_SET_VALUE, bkTrnStatCd);

		return true;
	}

	/**
	 * ページングを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean paging() throws Exception
	{
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 初期化
		serviceFormBean.sendMessage(DKW03301SFConst.SHKA_FIN_STA, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW03301SFConst.SHKA_FIN_END, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW03301SFConst.TRN_STAT_CD, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.sendMessage(DKW03301SFConst.PAGING_KEY, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.getDataBeanArray(DKW03301SFConst.SHKA_LIST).clearArray();

		// 退避データを設定
		serviceFormBean.sendMessageString(DKW03301SFConst.SHKA_FIN_STA, X31CWebConst.DATABEAN_SET_VALUE
				, serviceFormBean.sendMessageString(DKW03301SFConst.BK_SHKA_FIN_STA , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW03301SFConst.SHKA_FIN_END, X31CWebConst.DATABEAN_SET_VALUE
				, serviceFormBean.sendMessageString(DKW03301SFConst.BK_SHKA_FIN_END , X31CWebConst.DATABEAN_GET_VALUE));
		serviceFormBean.sendMessageString(DKW03301SFConst.TRN_STAT_CD, X31CWebConst.DATABEAN_SET_VALUE
				, serviceFormBean.sendMessageString(DKW03301SFConst.BK_TRN_STAT_CD , X31CWebConst.DATABEAN_GET_VALUE));

		// 基準日を設定
		serviceFormBean.sendMessageString(DKW03301SFConst.KJN_YMD
				, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));

		X31SDataBeanAccess[] paramBean = {serviceFormBean};

		// サービスの呼び出しを行う
		if (!putServiceDKSV0070(paramBean))
		{
			return false;
		}

		// 行番号を設定
		serviceFormBean.sendMessageString(DKW03301SFConst.ROW_NO, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 一覧表の表示設定を行う
		this.setList(paramBean[0], serviceFormBean, null);

		// 遷移先画面ＩＤの設定
		setNextScreen(JDKScreenConst.SCREEN_ID_DKW03301, JDKScreenConst.SCREEN_NAME_DKW03301);

		return true;
	}

	/**
	 * 出荷完了一覧画面のエラー詳細ボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean showErrorDetail() throws Exception
	{

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// 引き継ぎの情報を格納するMAPを生成する
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();
		String strRowNo = serviceFormBean.sendMessageString(DKW03301SFConst.ROW_NO, X31CWebConst.DATABEAN_GET_VALUE);
		X31SDataBeanAccessArray shkaListArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.SHKA_LIST);
		X31SDataBeanAccess shkaListRow = shkaListArray.getDataBean(Integer.valueOf(strRowNo));

		// 引き継ぎを行う画面AのサービスフォームBeanの内容を項目名をキーとしてdataMapに転記する。 
		dataMap.put(DKW03302SFConst.BK_ROW_NO , strRowNo);
		dataMap.put(DKW03302SFConst.SHUKKA_FIN_NO
				, shkaListRow.sendMessageString(DKW03301SFConst.L_SHUKKA_FIN_NO_03 , X31CWebConst.DATABEAN_GET_VALUE));
		dataMap.put(DKW03302SFConst.D_TRKM_FIN_CNT
				, shkaListRow.sendMessageString(DKW03301SFConst.L_FIN_CNT_03 , X31CWebConst.DATABEAN_GET_VALUE));
		dataMap.put(DKW03302SFConst.D_TRKM_RSV_CNT
				, shkaListRow.sendMessageString(DKW03301SFConst.L_REQ_CNT_03 , X31CWebConst.DATABEAN_GET_VALUE));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW03302 + "0PJP", dataMap);

		// 画面Bから画面Aに戻る際に必要な情報があれば、同じ方法で画面情報を設定する。 
		HashMap<String, Object> aMap = new HashMap<String, Object>();

		// 検索時データを設定
		aMap.put(DKW03301SFConst.BK_SHKA_FIN_STA
				, serviceFormBean.sendMessageString(DKW03301SFConst.BK_SHKA_FIN_STA , X31CWebConst.DATABEAN_GET_VALUE));
		aMap.put(DKW03301SFConst.BK_SHKA_FIN_END
				, serviceFormBean.sendMessageString(DKW03301SFConst.BK_SHKA_FIN_END , X31CWebConst.DATABEAN_GET_VALUE));
		aMap.put(DKW03301SFConst.BK_TRN_STAT_CD
				, serviceFormBean.sendMessageString(DKW03301SFConst.BK_TRN_STAT_CD , X31CWebConst.DATABEAN_GET_VALUE));

		// 画面表示データを設定
		aMap.put(DKW03301SFConst.KJN_YMD
				, serviceFormBean.sendMessageString(DKW03301SFConst.KJN_YMD , X31CWebConst.DATABEAN_GET_VALUE));
		aMap.put(DKW03301SFConst.MT_SCREEN_ID, JDKScreenConst.SCREEN_ID_DKW03302);
		aMap.put(DKW03301SFConst.ROW_NO, strRowNo);
		X31SDataBeanAccessArray shkaFinStaArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.I_SHKA_FIN_STA);
		X31SDataBeanAccess shkaFinSta = shkaFinStaArray.getDataBean(0);
		aMap.put(DKW03301SFConst.SHKA_FIN_STA
				, shkaFinSta.sendMessageString(DKW03301SFConst.YEAR_01 , X31CWebConst.DATABEAN_GET_VALUE)
				+ shkaFinSta.sendMessageString(DKW03301SFConst.MON_01 , X31CWebConst.DATABEAN_GET_VALUE)
				+ shkaFinSta.sendMessageString(DKW03301SFConst.DAY_01 , X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccessArray shkaFinEndArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.I_SHKA_FIN_END);
		X31SDataBeanAccess shkaFinEnd = shkaFinEndArray.getDataBean(0);
		aMap.put(DKW03301SFConst.SHKA_FIN_END
				, shkaFinEnd.sendMessageString(DKW03301SFConst.YEAR_01 , X31CWebConst.DATABEAN_GET_VALUE)
				+ shkaFinEnd.sendMessageString(DKW03301SFConst.MON_01 , X31CWebConst.DATABEAN_GET_VALUE)
				+ shkaFinEnd.sendMessageString(DKW03301SFConst.DAY_01 , X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccessArray iTrnStatCdArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.I_TRN_STAT_CD);
		X31SDataBeanAccess iTrnStatCd = iTrnStatCdArray.getDataBean(0);
		aMap.put(DKW03301SFConst.TRN_STAT_CD
				, iTrnStatCd.sendMessageString(DKW03301SFConst.I_TRN_STAT_CD_02 , X31CWebConst.DATABEAN_GET_VALUE));
		aMap.put(DKW03301SFConst.PAGING_KEY
				, shkaListRow.sendMessageString(DKW03301SFConst.L_SHUKKA_FIN_NO_03 , X31CWebConst.DATABEAN_GET_VALUE));

		// 画面情報を設定
		JCCWebCommon.setScreenInfo(this, JDKScreenConst.SCREEN_ID_DKW03301 + "0PJP", aMap);

		// ページング情報の初期化
		JCCWebCommon.clearPageLinkInfo(this, JDKScreenConst.SCREEN_ID_DKW03302);

		// 戻り先画面IDを設定 
		JCCWebCommon.setScreenId(this, JDKScreenConst.SCREEN_ID_DKW03302, JDKScreenConst.SCREEN_ID_DKW03301);

		// 遷移先画面IDを設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW03302);

		return true;
	}

	/**
	 * 出荷完了一覧画面のクリアボタンを処理します。
	 * <br>
	 * @return 成否
	 * @throws Exception 例外
	 */
	public boolean clear() throws Exception
	{

		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();

		// サービスフォームBeanのアクセスクラスを取得
		X31SDataBeanAccess serviceFormBean = super.getServiceFormBean();

		// 画面表示データをクリア
		serviceFormBean.sendMessage(DKW03301SFConst.MT_SCREEN_ID, X31CWebConst.DATABEAN_CLEAR);
		X31SDataBeanAccessArray shkaFinStaArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.I_SHKA_FIN_STA);
		X31SDataBeanAccess shkaFinSta = shkaFinStaArray.getDataBean(0);
		shkaFinSta.sendMessage(DKW03301SFConst.YEAR_01, X31CWebConst.DATABEAN_CLEAR);
		shkaFinSta.sendMessage(DKW03301SFConst.MON_01, X31CWebConst.DATABEAN_CLEAR);
		shkaFinSta.sendMessage(DKW03301SFConst.DAY_01, X31CWebConst.DATABEAN_CLEAR);
		X31SDataBeanAccessArray shkaFinEndArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.I_SHKA_FIN_END);
		X31SDataBeanAccess shkaFinEnd = shkaFinEndArray.getDataBean(0);
		shkaFinEnd.sendMessage(DKW03301SFConst.YEAR_01, X31CWebConst.DATABEAN_CLEAR);
		shkaFinEnd.sendMessage(DKW03301SFConst.MON_01, X31CWebConst.DATABEAN_CLEAR);
		shkaFinEnd.sendMessage(DKW03301SFConst.DAY_01, X31CWebConst.DATABEAN_CLEAR);
		X31SDataBeanAccessArray iTrnStatCdArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.I_TRN_STAT_CD);
		X31SDataBeanAccess iTrnStatCd = iTrnStatCdArray.getDataBean(0);
		iTrnStatCd.sendMessage(DKW03301SFConst.I_TRN_STAT_CD_02, X31CWebConst.DATABEAN_CLEAR);
		serviceFormBean.getDataBeanArray(DKW03301SFConst.SHKA_LIST).clearArray();

		// 行番号をクリア
		serviceFormBean.sendMessage(DKW03301SFConst.ROW_NO, X31CWebConst.DATABEAN_CLEAR);

		// 一覧表示件数をクリア
		serviceFormBean.sendMessageString(DKW03301SFConst.DISP_COUNT, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 遷移先画面IDを設定する
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JDKScreenConst.SCREEN_ID_DKW03301);

		return true;
	}

	/**
	 * 一覧表の表示設定を行います。
	 * <br>
	 * @param paramBean 設定する一覧のBean情報
	 * @param serviceFormBean 設定する画面のServiceFormBean
	 */
	private void setList(X31SDataBeanAccess paramBean, X31SDataBeanAccess serviceFormBean, String rowNo)
	{
		X31SDataBeanAccessArray shkaList = paramBean.getDataBeanArray(DKW03301SFConst.SHKA_LIST);

		for (int i = 0; i < shkaList.getCount(); i++)
		{
			X31SDataBeanAccess subbean = shkaList.getDataBean(i);
			if (i % 2 == 1)
			{
				subbean.sendMessageString(DKW03301SFConst.L_COLOR_03, X31CWebConst.DATABEAN_SET_VALUE, "even");
			}
			else
			{
				subbean.sendMessageString(DKW03301SFConst.L_COLOR_03, X31CWebConst.DATABEAN_SET_VALUE, "odd");
			}

			subbean.sendMessageString(DKW03301SFConst.L_NO_03, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(i + 1));

			if ("0".equals(subbean.sendMessageString(DKW03301SFConst.L_ERR_CNT_03, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				subbean.sendMessageString(DKW03301SFConst.L_DISABLED_03, X31CWebConst.DATABEAN_SET_VALUE, "disabled");
			}
			else if (JDKCommonUtil.isNull(rowNo))
			{
				rowNo = String.valueOf(i);
			}
		}

		// 行番号を設定
		serviceFormBean.sendMessageString(DKW03301SFConst.ROW_NO, X31CWebConst.DATABEAN_SET_VALUE, rowNo);
		
		// 一覧表示件数を設定する
		serviceFormBean.sendMessageString(DKW03301SFConst.DISP_COUNT, X31CWebConst.DATABEAN_SET_VALUE, String.valueOf(shkaList.getCount()));
	}

	/**
	 * サービス（DKSV0070）の呼び出しを行います。
	 * <br>
	 * @param paramBean パラメータとなるBean情報
	 * @return 成否
	 * @throws Exception データベースアクセスエラーが発生した場合
	 */
	private boolean putServiceDKSV0070(X31SDataBeanAccess[] paramBean) throws Exception
	{

		// ユースケースID格納用マップを生成。
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "DKSV0070");

		// マッピングクラスのインスタンスを生成
		DKSV0070_DKSV0070OPDBMapper mapper = new DKSV0070_DKSV0070OPDBMapper();

		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		mapper.setDKSV007001SC(paramBean, dataMap, "1");

		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "0", "DKSV007001SC", dataMap);

		// 検索結果格納用マップ
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// 検索処理呼出
		X31CMessageResult msgResult = invokeService(paramMap, dataMap, outputMap);
		if (msgResult != null)
		{
			return false;
		}

		((X31SDataBeanAccessArray)paramBean[0].getDataBeanArray(DKW03301SFConst.SHKA_LIST)).clearArray();

		mapper.getDKSV007001SC(paramBean, outputMap);

		// 検索エラーフラグの取得
		String searchErrFlg = JCCWebCommon.getSearchErrFlg("DKSV007001SC", outputMap);

		if ("1".equals(searchErrFlg))
		{

			// 検索結果が0件の場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
			return true;
		}
		else if ("2".equals(searchErrFlg))
		{

			// 検索結果が最大検索件数超えの場合の処理
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, new String [] {"150"});
			return true;
		}

		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this,  "0", "DKSV007001SC", outputMap);

		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "L_PAG_LIST");

		return true;
	}

	/**
	 * 画面遷移先を設定します。
	 * <br>
	 * @param nextScreenId 遷移先画面ＩＤ
	 * @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 index インデックス
	 * @param serviceFormBean サービスフォームビーン
	 * @return 取得した状態コード
	 */
	private String getIndexToCodeForDdl(int index, X31SDataBeanAccess serviceFormBean)
	{

		// 状態コードリストを取得
		X31SDataBeanAccessArray iTrnStatCdArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.I_TRN_STAT_CD);
		X31SDataBeanAccess iTrnStatCd = iTrnStatCdArray.getDataBean(0);
		String retCode = iTrnStatCd.sendMessageString(DKW03301SFConst.I_TRN_STAT_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, index);

		return retCode;
	}

	/**
	 * コードを引数に状態プルダウンからインデックスを取得します。
	 * @param code 状態コード
	 * @param serviceFormBean サービスフォームビーン
	 * @return 取得したインデックス
	 */
	private int getCodeToIndexForDdl(String code, X31SDataBeanAccess serviceFormBean)
	{
		// 状態コードリストを取得
		X31SDataBeanAccessArray iTrnStatCdArray = serviceFormBean.getDataBeanArray(DKW03301SFConst.I_TRN_STAT_CD);
		X31SDataBeanAccess iTrnStatCd = iTrnStatCdArray.getDataBean(0);

		int retIndex = 0;

		for (int i = 0; i < Integer.valueOf(iTrnStatCd.sendMessage(DKW03301SFConst.I_TRN_STAT_CD_LIST_02, X31CWebConst.DATABEAN_GET_COUNT).toString()); i++)
		{
			if (code.equals(iTrnStatCd.sendMessageString(DKW03301SFConst.I_TRN_STAT_CD_LIST_02, X31CWebConst.DATABEAN_GET_VALUE, i)))
			{
				retIndex = i;
				break;
			}
		}

		return retIndex;
	}
}
