/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：CKW02501SFLogic
*   ソースファイル名：CKW02501SFLogic.java
*   作成者          ：富士通
*   日付            ：2011年05月19日
*＜機能概要＞
*   お客様グループ情報一覧を表示します。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2012/02/07	FJ			新規作成
*	v4.00.00	2012/11/20	FJ)庭山		【IT1-2012-0002138】対応
*	v4.01.00	2012/12/21	FJ)鳩本		【IT2-2012-0002137】対応
*	v7.00.00	2014/04/04	FJ)澁谷		【TAI-2014-0000010】対応
**********************************************************************/

package eo.web.webview.CKW02501SF;

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.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCKScreenConst;
import eo.web.webview.common.JCKWebCommon;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.mapping.CKSV0033_CKSV0033OPDBMapper;
import eo.web.webview.mapping.CKSV0034_CKSV0034OPDBMapper;


/**
 * お客様グループ情報一覧を抽出します。<p>
 * <BR>
 * @author 富士通
 */
public class CKW02501SFLogic extends JCCWebBusinessLogic
{
	
	/** 空文字 */
	private static final String EMPTY = "";
	
	/** FLG_ON */
	private static final String FLG_ON = "on";
	
	/** FLG_OFF */
	private static final String FLG_OFF = "off";
	
	/** ソート項目ＮＯ_初期値 */
	private static final String SORT_ITEM_NO_SHKV = "1";
	
	/** ソート_初期値 */
	private static final String SORT_KBN_SHKV = "1";
	
	/** サービスID（CKSV003302CC） */
	private static final String SERVICE_ID_CKSV003302CC = "CKSV003302CC";
	
	/** サービスID（CKSV003401CC） */
	private static final String SERVICE_ID_CKSV003401CC = "CKSV003401CC";
	
	/** 表示モード 1：ポップアップ */
	private static final String DISP_MODE_POPUP = "1";
	
	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean init() throws Exception
	{
		// 共有フォームBeanのアクセスクラスを取得
		X31SDataBeanAccess  commonBean = super.getCommonInfoBean();
		
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 運用日付の設定
		bean.sendMessageString(CKW02501SFConst.STDARD_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
		
		// 引継項目を転記
		HashMap<String, Object> inMap = JCCWebCommon.getScreenInfo(this);
		boolean initFlg = false;
		
		if (inMap != null)
		{
			String sysid = (String)inMap.get("sysid");
			
			if (sysid != null && sysid.length() > 0)
			{
				bean.sendMessageString(CKW02501SFConst.KEY_SYSID, X31CWebConst.DATABEAN_SET_VALUE, sysid);
				bean.sendMessageString(CKW02501SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_SET_VALUE, FLG_ON);
				bean.sendMessageString(CKW02501SFConst.KEY_SORT_KBN, X31CWebConst.DATABEAN_SET_VALUE, SORT_KBN_SHKV);
				bean.sendMessageString(CKW02501SFConst.KEY_SORT_ITEM_NO, X31CWebConst.DATABEAN_SET_VALUE, SORT_ITEM_NO_SHKV);
				initFlg = true;
			}
		}
		
		X31SDataBeanAccess[] paramBean = {bean};
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		HashMap< String, Object > paramMap = new HashMap< String, Object >();
		CKSV0033_CKSV0033OPDBMapper mapper = new CKSV0033_CKSV0033OPDBMapper();
		
		// ■ サービス呼び出し準備
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0033");
		
		// ■コンボボックス用上りマッピング
		mapper.setCKSV003301SC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		
		// 設定した検索フラグがtrueの場合、一覧照会の上りマッピングをする
		if(FLG_ON.equals(bean.sendMessageString(CKW02501SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// ■一覧照会用上りマッピング
		/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
//			mapper.setCKSV003302CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
			mapper.setCKSV003302CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
		/* ++++++++++ v4.01.00 修正完了 ++++++++++ */
			
			// ページング情報の設定
			JCCWebCommon.upmapperPageLinkInfo(this, "0", SERVICE_ID_CKSV003302CC, inputMap);
		}
		
		// サービスの呼び出し
		X31CMessageResult result = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if (result != null)
		{
			JCCWebCommon.setMessageInfo(this, result);
			return true;
		}
		
		// ■ コンボボックス用サービス結果の転記
		mapper.getCKSV003301SC(paramBean, outputMap);
		
		setSelectIndexToComboBox(bean);
		
		if (FLG_ON.equals(bean.sendMessageString(CKW02501SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// ■一覧照会用下りマッピング
			mapper.getCKSV003302CC(paramBean, outputMap);
			
			// ページング情報の設定
			setPageInf(bean, outputMap, SERVICE_ID_CKSV003302CC);
			// 入力値を退避する
			setBackupParam(bean);
			
			if (initFlg)
			{
				// 選択状態を一番上にする
				bean.sendMessageString(CKW02501SFConst.SELECT_ROW, X31CWebConst.DATABEAN_SET_VALUE, "0");
			}
		}
		
		String gamenID = JCCWebCommon.getScreenId(this);
		if (gamenID != null && JCKScreenConst.SCREEN_ID_CKW00101.equals(gamenID))
		{
			bean.sendMessage(CKW02501SFConst.DISP_MODE, X31CWebConst.DATABEAN_CLEAR);
		}
		else
		{
			bean.sendMessageString(CKW02501SFConst.DISP_MODE, X31CWebConst.DATABEAN_SET_VALUE, DISP_MODE_POPUP);
		}
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW02501);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_NAME_CKW02501);
		
		return true;
	}
	
	/**
	 * お客様グループ情報一覧検索を行います。
	 * <br>
	 * @return boolean お客様情報一覧検索結果
	 * @throws Exception エラーが発生した場合
	 */
	public boolean searchGpCustInfo() throws Exception
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// ページリンクの情報をクリアする
		JCCWebCommon.clearPageLinkInfo(this, JCKScreenConst.SCREEN_ID_CKW02501);
		
		// サービスフォームBean
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート項目Noを設定する
		bean.sendMessageString(CKW02501SFConst.KEY_SORT_ITEM_NO, X31CWebConst.DATABEAN_SET_VALUE, SORT_ITEM_NO_SHKV);
		
		// ソート区分を設定する
		bean.sendMessageString(CKW02501SFConst.KEY_SORT_KBN, X31CWebConst.DATABEAN_SET_VALUE, SORT_KBN_SHKV);
		
		// 入力値を退避する
		setBackupParam(bean);
		
		// 検索条件を設定してサービスを呼び出す
		setParam(commoninfoBean, bean);
		
		return true;
	}
	
	/**
	 * ページ制御を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合。
	 */
	public boolean changePage() throws Exception
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 検索条件の復元
		reloadSearchCondition(bean);
		
		// 検索条件を設定してサービスを呼び出す
		setParam(commoninfoBean, bean);
		
		return true;
	}
	
	/**
	 * ソートを行います。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean sort() throws Exception
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 検索条件の復元
		reloadSearchCondition(bean);
		
		// 退避情報の更新
		setBackupSortParam(bean);
		
		// ページリンクの情報をクリアする
		JCCWebCommon.clearPageLinkInfo(this, JCKScreenConst.SCREEN_ID_CKW02501);
		
		// 検索条件を設定してサービスを呼び出す
		setParam(commoninfoBean, bean);
		
		return true;
	}
	
	/**
	 * グループ新規登録ボタン押下処理を行います
	 * <br>
	 * @return boolean
	 * @exception Exception 例外が発生した場合
	 */
	public boolean grpAdd() throws Exception
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> paramHikitugiMap = new HashMap<String, Object>();
		
		// 検索結果が表示されているか判定する
		if(FLG_ON.equals(bean.sendMessageString(CKW02501SFConst.CUST_GP_LIST_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 引き継ぎ情報を設定
			setReturnMap(paramHikitugiMap, bean);
			// 引継情報の設定
			JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW02501, paramHikitugiMap);
			
			paramMap.put(CKW02501SFConst.GRP_CD_02, getGrpCd(bean));
			
			// 引継情報の設定
			JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW02502, paramMap);
		}
		
		paramMap.put(CKW02501SFConst.MODE, "1");
		
		// 引継情報の設定
		JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW02502, paramMap);
		
		// 次画面からの戻り先画面設定
		JCCWebCommon.setScreenId(this, JCKScreenConst.SCREEN_ID_CKW02502, JCKScreenConst.SCREEN_ID_CKW02501);
		JCCWebCommon.setScreenId(this, JCKScreenConst.SCREEN_ID_CKW02504, JCKScreenConst.SCREEN_ID_CKW02501);
		
		// 遷移先の画面ＩＤを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW02502);
		
		return true;
	}
	
	/**
	 * グループ更新ボタン押下処理を行います
	 * <br>
	 * @return boolean
	 * @exception Exception 例外が発生した場合
	 */
	public boolean grpUpd() throws Exception
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> paramHikitugiMap = new HashMap<String, Object>();
		// 引き継ぎ情報を設定
		setReturnMap(paramHikitugiMap, bean);
		// 引継情報の設定
		JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW02501, paramHikitugiMap);
		
		// 次画面への引き継ぎ情報設定
		paramMap.put(CKW02501SFConst.GRP_CD_02, getGrpCd(bean));
		paramMap.put(CKW02501SFConst.MODE, "2");
		
		// 引継情報の設定
		JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW02502, paramMap);
		
		// 次画面からの戻り先画面設定
		JCCWebCommon.setScreenId(this, JCKScreenConst.SCREEN_ID_CKW02502, JCKScreenConst.SCREEN_ID_CKW02501);
		JCCWebCommon.setScreenId(this, JCKScreenConst.SCREEN_ID_CKW02504, JCKScreenConst.SCREEN_ID_CKW02501);
		
		// 遷移先の画面ＩＤを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW02502);
		
		return true;
	}
	
	/**
	 * グループ解除ボタン押下処理を行います
	 * <br>
	 * @return boolean
	 * @exception Exception 例外が発生した場合
	 */
	public boolean grpRls() throws Exception
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> paramHikitugiMap = new HashMap<String, Object>();
		// 引き継ぎ情報を設定
		setReturnMap(paramHikitugiMap, bean);
		// 引継情報の設定
		JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW02501, paramHikitugiMap);
		
		// 次画面への引き継ぎ情報設定
		paramMap.put(CKW02501SFConst.GRP_CD_02, getGrpCd(bean));
		paramMap.put(CKW02501SFConst.MODE, "3");
		
		// 引継情報の設定
		JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW02503, paramMap);
		
		// 次画面からの戻り先画面設定
		JCCWebCommon.setScreenId(this, JCKScreenConst.SCREEN_ID_CKW02503, JCKScreenConst.SCREEN_ID_CKW02501);
		JCCWebCommon.setScreenId(this, JCKScreenConst.SCREEN_ID_CKW02504, JCKScreenConst.SCREEN_ID_CKW02501);
		
		// 遷移先の画面ＩＤを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW02503);
		
		return true;
	}
	
	/**
	 * グループ詳細ボタン押下処理を行います
	 * <br>
	 * @return boolean
	 * @exception Exception 例外が発生した場合
	 */
	public boolean grpDtl() throws Exception
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> paramHikitugiMap = new HashMap<String, Object>();
		// 引き継ぎ情報を設定
		setReturnMap(paramHikitugiMap, bean);
		// 引継情報の設定
		JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW02501, paramHikitugiMap);
		
		// 次画面への引き継ぎ情報設定
		paramMap.put(CKW02501SFConst.GRP_CD_02, getGrpCd(bean));
		paramMap.put(CKW02501SFConst.MODE, "4");
		
		// 引継情報の設定
		JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW02502, paramMap);
		
		// 次画面からの戻り先画面設定
		JCCWebCommon.setScreenId(this, JCKScreenConst.SCREEN_ID_CKW02502, JCKScreenConst.SCREEN_ID_CKW02501);
		
		// 遷移先の画面ＩＤを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW02502);
		
		return true;
	}
	
	/**
	 * 画面をクリアします。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean clear() throws Exception
	{
		X31SDataBeanAccess commonBean = super.getCommonInfoBean();
		//サービスフォームBean
		X31SDataBeanAccess srvBean = super.getServiceFormBean();
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW02501);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_NAME_CKW02501);
		
		String sysid = srvBean.sendMessageString(CKW02501SFConst.KEY_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		if (sysid != null && sysid.length() > 0)
		{
			return true;
		}
		
		// ページリンクの情報をクリアする
		JCCWebCommon.clearPageLinkInfo(this, JCKScreenConst.SCREEN_ID_CKW02501);
		
		// テキスト項目のクリア
		srvBean.sendMessage(CKW02501SFConst.KEY_GRP_JOIN_CD, X31CWebConst.DATABEAN_CLEAR);
		srvBean.sendMessage(CKW02501SFConst.KEY_GRP_NM, X31CWebConst.DATABEAN_CLEAR);
			
		// コンボボックスのクリア
		X31SDataBeanAccess subBean = srvBean.getDataBeanArray(CKW02501SFConst.KEY_GRP_SBT_CD).getDataBean(0);
		subBean.sendMessageString(CKW02501SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
		// ソートキークリア
		srvBean.sendMessageString(CKW02501SFConst.KEY_SORT_ITEM_NO, X31CWebConst.DATABEAN_SET_VALUE, SORT_ITEM_NO_SHKV);
		srvBean.sendMessageString(CKW02501SFConst.KEY_SORT_KBN, X31CWebConst.DATABEAN_SET_VALUE, SORT_KBN_SHKV);
		
		// 退避情報をクリア
		clearBackupParam(srvBean);
		
		// 一覧情報のクリア
		srvBean.sendMessageString(CKW02501SFConst.CUST_GP_LIST_FLG, X31CWebConst.DATABEAN_SET_VALUE, FLG_OFF);
		srvBean.getDataBeanArray(CKW02501SFConst.GRP_LIST).clearArray();
		srvBean.sendMessage(CKW02501SFConst.SELECT_ROW, X31CWebConst.DATABEAN_CLEAR);
		
		// 検索フラグのクリア
		srvBean.sendMessageString(CKW02501SFConst.SEARCH_FLG, X31CWebConst.DATABEAN_SET_VALUE, FLG_OFF);
		
		return true;
	}
	
	/**
	 * 戻る押下時の処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @throws Exception 例外が発生した場合
	 */
	public boolean back() throws Exception 
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		return true;
	}
	
	/**
	 * 検索条件を設定し、検索を行います。
	 * <br>
	 * @param commonBean
	 * @param bean
	 */
	private void setParam(X31SDataBeanAccess  commonBean, X31SDataBeanAccess bean)
	{
		// ■ サービス呼び出し準備
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		X31SDataBeanAccess[] paramBean = {bean};
		
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0034");
		
		// ■上りマッピング
		CKSV0034_CKSV0034OPDBMapper mapper = new CKSV0034_CKSV0034OPDBMapper();
		
	/* ++++++++++ v4.01.00 修正開始 ++++++++++ */
//		mapper.setCKSV003401CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_1);
		mapper.setCKSV003401CC(paramBean, inputMap, JKKCommonConst.FUNC_CODE_2);
	/* ++++++++++ v4.01.00 修正完了 ++++++++++ */
		
		// ページング情報の設定
		JCCWebCommon.upmapperPageLinkInfo(this, "0", SERVICE_ID_CKSV003401CC, inputMap);
		
		// 一覧の初期化
		X31SDataBeanAccessArray grpList = bean.getDataBeanArray(CKW02501SFConst.GRP_LIST);
		grpList.clearArray();
		bean.sendMessageString(CKW02501SFConst.CUST_GP_LIST_FLG, X31CWebConst.DATABEAN_SET_VALUE, FLG_OFF);
		
		// サービスの呼び出し
		X31CMessageResult result = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if (result != null)
		{
			JCCWebCommon.setMessageInfo(this, result);
			return;
		}
		
		// サービス結果の転記
		mapper.getCKSV003401CC(paramBean, outputMap);
		
		// ページング情報の設定
		setPageInf(bean, outputMap, SERVICE_ID_CKSV003401CC);
		
		// 選択状態を一番上にする
		bean.sendMessageString(CKW02501SFConst.SELECT_ROW, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
		// 画面遷移
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_ID_CKW02501);
		commonBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JCKScreenConst.SCREEN_NAME_CKW02501);
	}
	
	/**
	 * ページング情報の設定をします。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @param svcId
	 */
	private void setPageInf(X31SDataBeanAccess bean, HashMap<String, Object> outputMap, String svcId)
	{
		X31SDataBeanAccessArray rirekiArray = bean.getDataBeanArray(CKW02501SFConst.GRP_LIST);
		
		if (rirekiArray.getCount() > 0)
		{
			// お客様グループ一覧の表示フラグをONにする
			bean.sendMessageString(CKW02501SFConst.CUST_GP_LIST_FLG, X31CWebConst.DATABEAN_SET_VALUE, FLG_ON);
		}
		else if ("2".equals(JCCWebCommon.getSearchErrFlg(svcId, outputMap)))
		{
			// 最大件数オーバーの場合
			String[] msg = {JCCWebCommon.getSearchConst("CKW02501_MAX_SHOW_CNT")};
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0340__I, msg);
		}
		else
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0330__I);
		}
		
		// ページング情報の設定
		JCCWebCommon.downmapperPageLinkInfo(this, "0", svcId, outputMap);
		
		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "B_CHANGE_PAGE");
	}
	
	/**
	 * 入力項目を退避領域に格納します。
	 * <br>
	 * @param bean
	 */
	private void setBackupParam(X31SDataBeanAccess bean)
	{
		// 退避情報の初期化
		clearBackupParam(bean);
		
		// ソートキーを退避領域に格納する
		setBackupSortParam(bean);
		
		setBeanToBean(bean, CKW02501SFConst.KEY_SYSID_BK, CKW02501SFConst.KEY_SYSID);				// SYSID
		setBeanToBean(bean, CKW02501SFConst.KEY_GRP_JOIN_CD_BK, CKW02501SFConst.KEY_GRP_JOIN_CD);	// グループ入会コード
		setBeanToBean(bean, CKW02501SFConst.KEY_GRP_NM_BK, CKW02501SFConst.KEY_GRP_NM);				// グループ名
		// グループ種別
		String str = JCKWebCommon.convertCode(bean, CKW02501SFConst.KEY_GRP_SBT_CD, CKW02501SFConst.SELECT_INDEX_01, CKW02501SFConst.CD_DIV_CD_LIST_01);
		bean.sendMessageString(CKW02501SFConst.KEY_GRP_SBT_CD_BK, X31CWebConst.DATABEAN_SET_VALUE, str);
	}
	
	/**
	 * ソートキーを退避領域に格納します。
	 * <br>
	 * @param bean
	 */
	private void setBackupSortParam(X31SDataBeanAccess bean)
	{
		setBeanToBean(bean, CKW02501SFConst.KEY_SORT_ITEM_NO_BK, CKW02501SFConst.KEY_SORT_ITEM_NO);		// ソート項目No
		setBeanToBean(bean, CKW02501SFConst.KEY_SORT_KBN_BK, CKW02501SFConst.KEY_SORT_KBN);				// ソート区分
	}
	
	/**
	 * 退避領域を初期化します。
	 * <br>
	 * @param bean
	 */
	private void clearBackupParam(X31SDataBeanAccess bean)
	{
		// 退避項目の初期化
		bean.sendMessage(CKW02501SFConst.KEY_GRP_JOIN_CD_BK, X31CWebConst.DATABEAN_CLEAR);		// グループ入会コード
		bean.sendMessage(CKW02501SFConst.KEY_GRP_SBT_CD_BK, X31CWebConst.DATABEAN_CLEAR);		// グループ種別コード
		bean.sendMessage(CKW02501SFConst.KEY_GRP_NM_BK, X31CWebConst.DATABEAN_CLEAR);			// グループ名
		bean.sendMessage(CKW02501SFConst.KEY_SORT_ITEM_NO_BK, X31CWebConst.DATABEAN_CLEAR);		// ソート項目No
		bean.sendMessage(CKW02501SFConst.KEY_SORT_KBN_BK, X31CWebConst.DATABEAN_CLEAR);			// ソート区分
	}
	
	/**
	 * 検索条件を検索が行われた状態に復元します。
	 * <br>
	 * @param bean
	 */
	private void reloadSearchCondition(X31SDataBeanAccess bean)
	{
		// 検索条件の設定
		setSelectIndexToComboBox(bean); 			// グループ種別コード
		
		setBeanToBean(bean, CKW02501SFConst.KEY_GRP_JOIN_CD, CKW02501SFConst.KEY_GRP_JOIN_CD_BK);	// グループ入会コード
		setBeanToBean(bean, CKW02501SFConst.KEY_GRP_NM, CKW02501SFConst.KEY_GRP_NM_BK);				// グループ名
		setBeanToBean(bean, CKW02501SFConst.KEY_SYSID, CKW02501SFConst.KEY_SYSID_BK);				// SYSID
	}
	
	/**
	 * 値を転記します。
	 * <br>
	 * @param bean
	 * @param sakiKey
	 * @param motoKey
	 */
	private void setBeanToBean(X31SDataBeanAccess bean, String sakiKey, String motoKey)
	{
		bean.sendMessageString(sakiKey, X31CWebConst.DATABEAN_SET_VALUE, bean.sendMessageString(motoKey, X31CWebConst.DATABEAN_GET_VALUE));
	}
	
	/**
	 * 画面戻り遷移時に必要な情報をHashMapに設定します。
	 * <br>
	 * @param map 画面戻り遷移時に必要な情報
	 * @param bean
	 */
	private void setReturnMap(HashMap<String, Object> map, X31SDataBeanAccess bean)
	{
		// グループ入会コード
		map.put(CKW02501SFConst.KEY_GRP_JOIN_CD, bean.sendMessageString(CKW02501SFConst.KEY_GRP_JOIN_CD_BK, X31CWebConst.DATABEAN_GET_VALUE));
		// グループ種別コード
		map.put(CKW02501SFConst.KEY_GRP_SBT_CD, bean.sendMessageString(CKW02501SFConst.KEY_GRP_SBT_CD_BK, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02501SFConst.KEY_GRP_SBT_CD_BK, bean.sendMessageString(CKW02501SFConst.KEY_GRP_SBT_CD_BK, X31CWebConst.DATABEAN_GET_VALUE));
		// グループ名
		map.put(CKW02501SFConst.KEY_GRP_NM, bean.sendMessageString(CKW02501SFConst.KEY_GRP_NM_BK, X31CWebConst.DATABEAN_GET_VALUE));
		// SYSID
		map.put(CKW02501SFConst.KEY_SYSID, bean.sendMessageString(CKW02501SFConst.KEY_SYSID_BK, X31CWebConst.DATABEAN_GET_VALUE));
		// ソート項目No
		map.put(CKW02501SFConst.KEY_SORT_ITEM_NO, bean.sendMessageString(CKW02501SFConst.KEY_SORT_ITEM_NO_BK, X31CWebConst.DATABEAN_GET_VALUE));
		// ソート区分
		map.put(CKW02501SFConst.KEY_SORT_KBN, bean.sendMessageString(CKW02501SFConst.KEY_SORT_KBN_BK, X31CWebConst.DATABEAN_GET_VALUE));
		// 一覧選択行
		map.put(CKW02501SFConst.SELECT_ROW, bean.sendMessageString(CKW02501SFConst.SELECT_ROW, X31CWebConst.DATABEAN_GET_VALUE));
		// 選択したグループコード
		map.put(CKW02501SFConst.SELECT_GRP_CD, bean.sendMessageString(CKW02501SFConst.SELECT_GRP_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 検索フラグ
		map.put(CKW02501SFConst.SEARCH_FLG, FLG_ON);
	}
	
	/**
	 * コンボボックスの選択肢を設定します。
	 * <br>
	 * @param bean
	 */
	private void setSelectIndexToComboBox(X31SDataBeanAccess bean)
	{
		String codeValue = bean.sendMessageString(CKW02501SFConst.KEY_GRP_SBT_CD_BK, X31CWebConst.DATABEAN_GET_VALUE);
		String index = JCKWebCommon.convertIndex(bean,
												codeValue,
												CKW02501SFConst.KEY_GRP_SBT_CD,
												CKW02501SFConst.SELECT_INDEX_01,
												CKW02501SFConst.CD_DIV_CD_LIST_01);
		X31SDataBeanAccess subBean = bean.getDataBeanArray(CKW02501SFConst.KEY_GRP_SBT_CD).getDataBean(0);
		subBean.sendMessageString(CKW02501SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, index);
	}
	
	/**
	 * 一覧で選択されているグループコードを取得します。
	 * <br>
	 * @param bean
	 * @return String
	 */
	private String getGrpCd(X31SDataBeanAccess bean)
	{
		// 選択されたグループコードの取得
		String index = bean.sendMessageString(CKW02501SFConst.SELECT_ROW, X31CWebConst.DATABEAN_GET_VALUE);
		if (null == index || EMPTY.equals(JCCWebCommon.trim(index)))
		{
			return EMPTY;
		}
		
		X31SDataBeanAccess selectBean = bean.getDataBeanArray(CKW02501SFConst.GRP_LIST).getDataBean(Integer.parseInt(index));
		
		return selectBean.sendMessageString(CKW02501SFConst.GRP_CD_02, X31CWebConst.DATABEAN_GET_VALUE);
	}
}