/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：CKW02502SFLogic
*   ソースファイル名：CKW02502SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年03月12日
*＜機能概要＞
*   お客様一覧を表示します。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2012/03/12    FJ         新規作成
*   v1.12.00    2012/08/1     FJ        【IT2-2012-0001454】対応
*   v4.00.00    2012/11/01    FJ)辛     【IT1-2012-0001815】対応
*	v4.01.00	2012/11/16	FJ）庭山	【IT1-2012-0002097】対応
*	v4.02.00	2012/11/26	FJ）庭山	【IT1-2012-0002106】対応
*	v5.00.00	2013/02/06	FJ) 野口	【IT1-2013-0000208】対応
**********************************************************************/

package eo.web.webview.CKW02502SF;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.TreeMap;

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.JPCUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CKW02501SF.CKW02501SFConst;
import eo.web.webview.CKW02505SF.CKW02505SFConst;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JCKCommonConst;
import eo.web.webview.common.JCKScreenConst;
import eo.web.webview.common.JCKWebCommon;
import eo.web.webview.mapping.CKSV0039_CKSV0039OPDBMapper;
import eo.web.webview.mapping.CKSV0040_CKSV0040OPDBMapper;
import eo.web.webview.mapping.CKSV0041_CKSV0041OPDBMapper;
import eo.web.webview.mapping.CKSV0042_CKSV0042OPDBMapper;

/**
 * お客様グループ情報を登録／更新します。<p>
 * <BR>
 * @author 富士通
 */
public class CKW02502SFLogic extends JCCWebBusinessLogic
{
	/** ページ情報タイトル */
	private static final String TITEL_PAGEINFO = "pageInfo";

	/** ページ情報.総ページ数 */
	private static final String TOTAL_PAGE_NUM = "total_page_num";

	/** ページ情報.総検索数 */
	private static final String TOTAL_SEARCH_NUM = "total_search_num";

	/** ページ情報.表示件数 */
	private static final String DISPLAY_NUM = "display_num";

	/** ページ情報.表示ページ番号 */
	private static final String DISPLAY_PAGE_NUM = "display_page_num";

	/** ページ情報.件策タイプ */
	private static final String SEARCH_TYPE = "search_type";

	/** ページ情報.最大検索数 */
	private static final String MAX_SEARCH_NUM = "max_search_num";

	/** 一覧検索SCタイトル */
	private static final String TITEL_LIST_SEARCH_SC = "CKSV003903SC";
	
	/** 明細項目名 */
	private static final String SEARCH_LIST_ITEM = "ECK0121B004CBSMsg1List";
	
	/**
	 * 初期表示処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean init() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 引継ぎ情報の取得
		HashMap<String, Object> hktgMap = JCCWebCommon.getScreenInfo(this);
		
		// 運用日付の設定
		bean.sendMessageString(CKW02502SFConst.STDARD_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
		
		// 引継情報取得
		if (hktgMap.containsKey(CKW02501SFConst.GRP_CD_02))
		{
			bean.sendMessageString(CKW02502SFConst.GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)hktgMap.get(CKW02501SFConst.GRP_CD_02));
		}
		
		if (hktgMap.containsKey(CKW02501SFConst.MODE))
		{
			bean.sendMessageString(CKW02502SFConst.MODE, X31CWebConst.DATABEAN_SET_VALUE, (String)hktgMap.get(CKW02501SFConst.MODE));
		}
		
		// ページリンクの情報をクリアする
		JCCWebCommon.clearPageLinkInfo(this, JCKScreenConst.SCREEN_ID_CKW02502);
		
		// ■ サービス呼び出し準備
		HashMap< String, String > paramMap = new HashMap< String, String >();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0039");
		
		X31SDataBeanAccess[] paramBean = {bean};
		
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 上りマッピング
		CKSV0039_CKSV0039OPDBMapper mapper = new CKSV0039_CKSV0039OPDBMapper();
		mapper.setCKSV003901SC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
		mapper.setCKSV003902SC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_2);
		mapper.setCKSV003903SC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
		mapper.setCKSV0039WORK(paramBean, inputMap);
		
		// ページング情報の設定
		HashMap<String, Object> pageMap = makeUpPageLinkInfo();
		JCCWebCommon.upmapperPageLinkInfo(this, "0", TITEL_PAGEINFO, pageMap);
		mapper.setCKSV003903SC_displayPageNum(paramBean, inputMap, pageMap);
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		// 下りマッピング
		mapper.getCKSV003901SC(paramBean, outputMap);
		mapper.getCKSV003902SC(paramBean, outputMap);
		mapper.getCKSV003903SC(paramBean, outputMap);
		
		JCCWebCommon.downmapperPageLinkInfo(this, "0", TITEL_PAGEINFO, makeDownPageLinkInfo(pageMap, outputMap));
		
		// 画面表示用にBeanを設定
		setBeanDisp(bean, pageMap);
		
		// 検索のコマンドIDを設定する。
		JCCWebCommon.setSearchCommand(this, "B_CHANGE_PAGE");
		
		// 画面遷移
		setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02502, JCKScreenConst.SCREEN_NAME_CKW02502);
		
		return true;
	}
	
	/**
	 * 新規メンバ追加押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean addNewMember() throws Exception
	{
		//引継情報作成
		HashMap<String, Object> dataMap = new HashMap<String, Object>();
		JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW02505, dataMap);
		JCCWebCommon.setScreenInfo(this, JCKScreenConst.SCREEN_ID_CKW02502, dataMap);
		
		// 戻り先画面ＩＤを設定
		JCCWebCommon.setScreenId(this, JCKScreenConst.SCREEN_ID_CKW02505, JCKScreenConst.SCREEN_ID_CKW02502);
		
		// ■遷移先画面ID取得し、設定する。
		setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02505, JCKScreenConst.SCREEN_NAME_CKW02505);
		
		return true;
	}
	
	/**
	 * グループメンバ選択画面からの復帰処理を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean retAddNewMember() throws Exception
	{
		HashMap<String, Object> mp = JCCWebCommon.getScreenInfo(this);
		// ■ 画面情報を取得し、サービスフォームBeanに設定
		X31SDataBeanAccess bean = super.getServiceFormBean();
		// お客様グループ設定リストを取得
		X31SDataBeanAccessArray custList = bean.getDataBeanArray(CKW02502SFConst.CUST_GRP_LIST);
		
		// グループ種別コードの選択値の設定
		setSelectComboData();
		
		// 画面遷移
		setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02502, JCKScreenConst.SCREEN_NAME_CKW02502);
		
		// 引継情報よりSYSIDを取得
		String sysid = (String)mp.get(CKW02505SFConst.SYSID_02);
		X31SDataBeanAccess custbean = null;
		
		// SYSID重複チェック
		for (int i = 0; i < custList.getCount(); i++)
		{
			custbean = custList.getDataBean(i);
			if (sysid != null && sysid.equals(custbean.sendMessageString(CKW02502SFConst.SYSID_02, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4970_KW, new String[]{"同一メンバが存在するため"}, "");
				return true;
			}
		}
		
		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		// 一覧情報を退避
		for (int i = 0; i < custList.getCount(); i++)
		{
			list.add(copyCustGrpSetteMap(custList.getDataBean(i)));
		}
		
		//先頭に追加
		custList.clearArray();
		X31SDataBeanAccess subbean = custList.addDataBean();
		
		//引継情報設定
		subbean.sendMessageString(CKW02502SFConst.SYSID_02, X31CWebConst.DATABEAN_SET_VALUE, (String)mp.get(CKW02505SFConst.SYSID_02));
		subbean.sendMessageString(CKW02502SFConst.EOID_02, X31CWebConst.DATABEAN_SET_VALUE, (String)mp.get(CKW02505SFConst.EOID_02));
		subbean.sendMessageString(CKW02502SFConst.CUST_NM_02, X31CWebConst.DATABEAN_SET_VALUE, (String)mp.get(CKW02505SFConst.CUST_NM_02));
		subbean.sendMessageString(CKW02502SFConst.KEISYA_AD_02, X31CWebConst.DATABEAN_SET_VALUE, (String)mp.get(CKW02505SFConst.AD_NM_02));
		subbean.sendMessageString(CKW02502SFConst.UPD_DTM_BF_02, X31CWebConst.DATABEAN_SET_VALUE, (String)mp.get(CKW02505SFConst.LAST_UPD_DTM));
		
		// 有効年月日に運用日を設定
		String opeDate = bean.sendMessageString(CKW02502SFConst.STDARD_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		subbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_Y_02, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toYearFromYmd(opeDate));
		subbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_M_02, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toMonthFromYmd(opeDate));
		subbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_D_02, X31CWebConst.DATABEAN_SET_VALUE, JPCUtilCommon.toDayFromYmd(opeDate));
		
		// 一覧情報を復元
		for (int i = 0; i < list.size(); i++)
		{
			copyMapToBean(custList.addDataBean(), list.get(i));
		}
		
		// グループリーダーが設定されていない場合、追加されたメンバのグループリーダーフラグを立てる
		if ("".equals(bean.sendMessageString(CKW02502SFConst.GRP_LEADER_SYSID, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageString(CKW02502SFConst.GRP_LEADER_SYSID, X31CWebConst.DATABEAN_SET_VALUE, sysid);
			subbean.sendMessageBoolean(CKW02502SFConst.GRP_LEADER_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, true);
		}
		
		// ページン情報初期化
		initPageInfo();
		
		return true;
	}
	
	/**
	 * 更新確認押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean updCustGrpComfirm() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// グループ種別コードの選択値の設定
		setSelectComboData();
		
		// 単項目関連チェックを実施
		if (!chkAddTMCK(bean))
		{
			// 自画面遷移
			setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02502, JCKScreenConst.SCREEN_NAME_CKW02502);
			return true;
		}
		
		// 登録用マッピングデータを作成
		setAddMapData(bean);
		
		// ■ サービス呼び出し準備
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0041");
		
		X31SDataBeanAccess[] paramBean = {bean};
		
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 上りマッピング
		CKSV0041_CKSV0041OPDBMapper mapper = new CKSV0041_CKSV0041OPDBMapper();
		mapper.setCKSV004104CC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_2);
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, new String[]{"更新"}, "");
		
		// 次画面遷移
		setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02503, JCKScreenConst.SCREEN_NAME_CKW02503);
		
		return true;
	}
	
	/**
	 * 登録確認押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean addCustGrpComfirm() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 単項目関連チェックを実施
		if (!chkAddTMCK(bean))
		{
			// 自画面遷移
			setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02502, JCKScreenConst.SCREEN_NAME_CKW02502);
			return true;
		}
		
		// 登録用マッピングデータを作成
		setAddMapData(bean);
		
		// ■ サービス呼び出し準備
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0040");
		
		X31SDataBeanAccess[] paramBean = {bean};
		
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 上りマッピング
		CKSV0040_CKSV0040OPDBMapper mapper = new CKSV0040_CKSV0040OPDBMapper();
		mapper.setCKSV004004CC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_2);
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		
		//コンボボックスの選択情報を設定
		setSelectComboData();
		
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, new String[]{"登録"}, "");
		
		// 次画面遷移
		setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02503, JCKScreenConst.SCREEN_NAME_CKW02503);
		
		return true;
	}
	
	/**
	 * 戻るボタン押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean back() throws Exception
	{
		// 画面遷移
		setForwardInfo(JCCWebCommon.getScreenId(this), null);
		
		return true;
	}
	
	/**
	 * お客様グループ有効年月日（昇順）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean sortCustGrpYukoAsc() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート処理に関する共通処理を実施
		if (!sortCommon())
		{
			return true;
		}
		
		// 追加レコードの取得
		ArrayList<HashMap<String, Object>> addList = getAddList(bean);
		
		// ソート処理
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = getSortMap(bean,
																					CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_02,
																					CKW02502SFConst.SYSID_02);
		
		// ソート結果を設定
		setCustGrpAsc(bean, addList, map);
		
		return true;
	}
	
	/**
	 * お客様グループ有効年月日（降順）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean sortCustGrpYukoDesc() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート処理に関する共通処理を実施
		if (!sortCommon())
		{
			return true;
		}
		
		// 追加レコードの取得
		ArrayList<HashMap<String, Object>> addList = getAddList(bean);
		
		// ソート処理
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = getSortMap(bean,
																					CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_02,
																					CKW02502SFConst.SYSID_02);
		
		// ソート結果を設定
		setCustGrpDesc(bean, addList, map);
		
		return true;
	}
	
	/**
	 * お客様グループ無効年月日（昇順）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean sortCustGrpMukoAsc() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート処理に関する共通処理を実施
		if (!sortCommon())
		{
			return true;
		}
		
		// 追加レコードの取得
		ArrayList<HashMap<String, Object>> addList = getAddList(bean);
		
		// ソート処理
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = getSortMap(bean,
																					CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_02,
																					CKW02502SFConst.SYSID_02);
		
		// ソート結果を設定
		setCustGrpAsc(bean, addList, map);
		
		return true;
	}
	
	/**
	 * お客様グループ無効年月日（降順）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean sortCustGrpMukoDesc() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート処理に関する共通処理を実施
		if (!sortCommon())
		{
			return true;
		}
		
		// 追加レコードの取得
		ArrayList<HashMap<String, Object>> addList = getAddList(bean);
		
		// ソート処理
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = getSortMap(bean,
																					CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_02,
																					CKW02502SFConst.SYSID_02);
		
		// ソート結果を設定
		setCustGrpDesc(bean, addList, map);
		
		return true;
	}
	
	/**
	 * ＳＹＳＩＤ（昇順）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean sortSysidAsc() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート処理に関する共通処理を実施
		if (!sortCommon())
		{
			return true;
		}
		
		// 追加レコードの取得
		ArrayList<HashMap<String, Object>> addList = getAddList(bean);
		
		// ソート処理
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = getSortMap(bean,
																					CKW02502SFConst.SYSID_02,
																					CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_02);
		
		// ソート結果を設定
		setCustGrpAsc(bean, addList, map);
		
		return true;
	}
	
	/**
	 * ＳＹＳＩＤ（降順）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean sortSysidDesc() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート処理に関する共通処理を実施
		if (!sortCommon())
		{
			return true;
		}
		
		// 追加レコードの取得
		ArrayList<HashMap<String, Object>> addList = getAddList(bean);
		
		// ソート処理
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = getSortMap(bean,
																					CKW02502SFConst.SYSID_02,
																					CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_02);
		
		// ソート結果を設定
		setCustGrpDesc(bean, addList, map);
		
		return true;
	}
	
	/**
	 * ＥＯＩＤ（昇順）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean sortEoidAsc() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート処理に関する共通処理を実施
		if (!sortCommon())
		{
			return true;
		}
		
		// 追加レコードの取得
		ArrayList<HashMap<String, Object>> addList = getAddList(bean);
		
		// ソート処理
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = getSortMap(bean, CKW02502SFConst.EOID_02, CKW02502SFConst.SYSID_02);
		
		// ソート結果を設定
		setCustGrpAsc(bean, addList, map);
		
		return true;
	}
	
	/**
	 * ＥＯＩＤ（降順）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean sortEoidDesc() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート処理に関する共通処理を実施
		if (!sortCommon())
		{
			return true;
		}
		
		// 追加レコードの取得
		ArrayList<HashMap<String, Object>> addList = getAddList(bean);
		
		// ソート処理
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = getSortMap(bean, CKW02502SFConst.EOID_02, CKW02502SFConst.SYSID_02);
		
		// ソート結果を設定
		setCustGrpDesc(bean, addList, map);
		
		return true;
	}
	
	/**
	 * 氏名（昇順）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean sortCustNameAsc() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート処理に関する共通処理を実施
		if (!sortCommon())
		{
			return true;
		}
		
		// 追加レコードの取得
		ArrayList<HashMap<String, Object>> addList = getAddList(bean);
		
		// ソート処理
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = getSortMap(bean, CKW02502SFConst.CUST_NM_02, CKW02502SFConst.SYSID_02);
		
		// ソート結果を設定
		setCustGrpAsc(bean, addList, map);
		
		return true;
	}
	
	/**
	 * 氏名（降順）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean sortCustNameDesc() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート処理に関する共通処理を実施
		if (!sortCommon())
		{
			return true;
		}
		
		// 追加レコードの取得
		ArrayList<HashMap<String, Object>> addList = getAddList(bean);
		
		// ソート処理
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = getSortMap(bean, CKW02502SFConst.CUST_NM_02, CKW02502SFConst.SYSID_02);
		
		// ソート結果を設定
		setCustGrpDesc(bean, addList, map);
		
		return true;
	}
	
	/**
	 * 住所（昇順）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean sortAddressAsc() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート処理に関する共通処理を実施
		if (!sortCommon())
		{
			return true;
		}
		
		// 追加レコードの取得
		ArrayList<HashMap<String, Object>> addList = getAddList(bean);
		
		// ソート処理
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = getSortMap(bean, CKW02502SFConst.KEISYA_AD_02, CKW02502SFConst.SYSID_02);
		
		// ソート結果を設定
		setCustGrpAsc(bean, addList, map);
		
		return true;
	}
	
	/**
	 * 住所（降順）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean sortAddressDesc() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ソート処理に関する共通処理を実施
		if (!sortCommon())
		{
			return true;
		}
		
		// 追加レコードの取得
		ArrayList<HashMap<String, Object>> addList = getAddList(bean);
		
		// ソート処理
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = getSortMap(bean, CKW02502SFConst.KEISYA_AD_02, CKW02502SFConst.SYSID_02);
		
		// ソート結果を設定
		setCustGrpDesc(bean, addList, map);
		
		return true;
	}
	
	/**
	 * 初期表示処理(削除)を行います。
	 * <br>
	 * @return boolean 処理結果
	 * @exception Exception 例外が発生した場合
	 */
	public boolean initCKW02503() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 引継ぎ情報の取得
		HashMap<String, Object> hktgMap = JCCWebCommon.getScreenInfo(this);
		
		// 運用日付の設定
		bean.sendMessageString(CKW02502SFConst.STDARD_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getOpeDate(this, null));
		
		// 引継情報取得
		if (hktgMap.containsKey(CKW02501SFConst.GRP_CD_02))
		{
			bean.sendMessageString(CKW02502SFConst.GRP_CD, X31CWebConst.DATABEAN_SET_VALUE, (String)hktgMap.get(CKW02501SFConst.GRP_CD_02));
		}
		
		if (hktgMap.containsKey(CKW02501SFConst.MODE))
		{
			bean.sendMessageString(CKW02502SFConst.MODE, X31CWebConst.DATABEAN_SET_VALUE, (String)hktgMap.get(CKW02501SFConst.MODE));
		}
		
		// ■ サービス呼び出し準備
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0039");
		
		X31SDataBeanAccess[] paramBean = {bean};
		
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 上りマッピング
		CKSV0039_CKSV0039OPDBMapper mapper = new CKSV0039_CKSV0039OPDBMapper();
		mapper.setCKSV003901SC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
		mapper.setCKSV003902SC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_2);
		mapper.setCKSV003903SC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
		mapper.setCKSV0039WORK(paramBean, inputMap);
		
		// ページング情報の設定
		HashMap<String, Object> pageMap = makeUpPageLinkInfo();
		JCCWebCommon.upmapperPageLinkInfo(this, "0", TITEL_PAGEINFO, pageMap);
		mapper.setCKSV003903SC_displayPageNum(paramBean, inputMap, pageMap);
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
		// 下りマッピング
		mapper.getCKSV003901SC(paramBean, outputMap);
		mapper.getCKSV003902SC(paramBean, outputMap);
		mapper.getCKSV003903SC(paramBean, outputMap);
		
		JCCWebCommon.downmapperPageLinkInfo(this, "0", TITEL_PAGEINFO, makeDownPageLinkInfo(pageMap, outputMap));
		
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0370__I, new String[]{"削除"}, "");
		
		// 画面遷移
		setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02503, JCKScreenConst.SCREEN_NAME_CKW02503);
		
		return true;
	}
	
	/**
	 * 確定押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean addCustGrpFix() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ■ サービス呼び出し準備
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0040");
		
		X31SDataBeanAccess[] paramBean = {bean};
		
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 上りマッピング
		CKSV0040_CKSV0040OPDBMapper mapper = new CKSV0040_CKSV0040OPDBMapper();
		mapper.setCKSV004004CC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
/* ++++++++++ v5.00.00 修正開始 ++++++++++ */
//		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0380__I, new String[]{"登録"}, "");
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, new String[]{"登録"}, "");
/* ++++++++++ v5.00.00 修正終了 ++++++++++ */
		
		// 次画面遷移
		setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02504, JCKScreenConst.SCREEN_NAME_CKW02504);
		
		return true;
	}
	
	/**
	 * 完了（更新）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean updCustGrpFix() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ■ サービス呼び出し準備
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0041");
		
		X31SDataBeanAccess[] paramBean = {bean};
		
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 上りマッピング
		CKSV0041_CKSV0041OPDBMapper mapper = new CKSV0041_CKSV0041OPDBMapper();
		mapper.setCKSV004104CC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
/* ++++++++++ v5.00.00 修正開始 ++++++++++ */
//		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0380__I, new String[]{"更新"}, "");
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, new String[]{"更新"}, "");
/* ++++++++++ v5.00.00 修正終了 ++++++++++ */
		
		// 次画面遷移
		setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02504, JCKScreenConst.SCREEN_NAME_CKW02504);
		
		return true;
	}
	
	/**
	 * 確定（削除）押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean delCustGrpFix() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ■ サービス呼び出し準備
		HashMap<String, String> paramMap = new HashMap<String, String>();
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CKSV0042");
		
		X31SDataBeanAccess[] paramBean = {bean};
		
		HashMap<String, Object> inputMap = new HashMap<String, Object>();
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// 上りマッピング
		CKSV0042_CKSV0042OPDBMapper mapper = new CKSV0042_CKSV0042OPDBMapper();
		mapper.setCKSV004202CC(paramBean, inputMap, JCKCommonConst.FUNC_CODE_1);
		
		// ■ サービス呼び出し
		X31CMessageResult msgResult = invokeService(paramMap, inputMap, outputMap);
		
		// エラー処理 
		if (msgResult != null)
		{
			JCCWebCommon.setMessageInfo(this, msgResult);
			return true;
		}
/* ++++++++++ v5.00.00 修正開始 ++++++++++ */
//		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB0380__I, new String[]{"削除"}, "");
		JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4390__I, new String[]{"削除"}, "");
/* ++++++++++ v5.00.00 修正終了 ++++++++++ */
		
		// 次画面遷移
		setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02504, JCKScreenConst.SCREEN_NAME_CKW02504);
		
		return true;
	}
	
	/**
	 * 確認画面での戻るボタン押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean comfrimback() throws Exception
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// 制御モードが"登録""更新"の場合
		if("1".equals(bean.sendMessageString(CKW02502SFConst.MODE, X31CWebConst.DATABEAN_GET_VALUE))
			|| "2".equals(bean.sendMessageString(CKW02502SFConst.MODE, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 画面遷移
			setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02502, JCKScreenConst.SCREEN_NAME_CKW02502);
		}
		else
		{
			// 画面遷移
			setForwardInfo(JCCWebCommon.getScreenId(this), null);
		}
		
		return true;
	}
	
	/**
	 * 完了押下処理を行います。
	 * <br>
	 * @return boolean
	 * @throws Exception
	 */
	public boolean fin() throws Exception
	{
		// 画面遷移
		setForwardInfo(JCCWebCommon.getScreenId(this), null);
		
		return true;
	}
	
	/**
	 * 登録確認時の単項目関連チェックを実施する。
	 * <br>
	 * @param bean サービスフォームBean
	 * @return boolean 単項目関連チェック結果（true:正常、false:エラー）
	 */
	private boolean chkAddTMCK(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccessArray custlist = bean.getDataBeanArray(CKW02502SFConst.CUST_GRP_LIST);
		String grpleader = bean.sendMessageString(CKW02502SFConst.GRP_LEADER_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		int delcnt = 0;
		
		for (int i = 0; i < custlist.getCount(); i++)
		{
			X31SDataBeanAccess custbean = custlist.getDataBean(i);
			boolean delFlg = custbean.sendMessageBoolean(CKW02502SFConst.DEL_FLG_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// グループリーダが削除対象の場合、エラー
			if (grpleader != null && delFlg &&
				grpleader.equals(custbean.sendMessageString(CKW02502SFConst.SYSID_02, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4600_KW, new String[]{""}, "");
				return false;
			}
			
			if (delFlg)
			{
				delcnt++;
			}
		}
		
		//お客様グループ設定情報の登録件数チェック
		if (custlist.getCount() == delcnt)
		{
			JCCWebCommon.setMessageInfo(this, JPCOnlineMessageConstant.EKB4590_KW, new String[]{"メンバ"}, "");
			return false;
		}
		
		return true;
	}
	
	/**
	 * 画面表示用にbeanの編集を行います。
	 * <br>
	 * @param bean サービスフォームbean
	 * @param pageMap ページ情報
	 */
	@SuppressWarnings("unchecked")
	private void setBeanDisp(X31SDataBeanAccess bean, HashMap<String, Object> pageMap)
	{
		//pageMapよりデータを取得
		HashMap<String, Object> mp = (HashMap<String, Object>)pageMap.get(TITEL_PAGEINFO);
		String dispPagaNum = (String)mp.get(DISPLAY_PAGE_NUM);
		String dispNum = (String)mp.get(DISPLAY_NUM);
		
		// 開始行番号を設定
		bean.sendMessageString(CKW02502SFConst.DISP_ROW_NUM,
								X31CWebConst.DATABEAN_SET_VALUE,
								calcSearchRows(Long.parseLong(dispPagaNum), Long.parseLong(dispNum)));
		
		String mode = bean.sendMessageString(CKW02502SFConst.MODE, X31CWebConst.DATABEAN_GET_VALUE);
		// 制御モードが登録の場合
		if ("1".equals(mode))
		{
			return;
		}
		else if ("2".equals(mode) || "3".equals(mode))
		{
			// グループ種別コードの選択値の設定
			setSelectComboData();
		}
		
		// お客様グループ設定リストを取得
		X31SDataBeanAccessArray cust_grp_list = bean.getDataBeanArray(CKW02502SFConst.CUST_GRP_LIST);
		
		for (int i = 0; i < cust_grp_list.getCount(); i++)
		{
			X31SDataBeanAccess custGrpBean = cust_grp_list.getDataBean(i);
			
			// お客様グループ有効年月日が設定されている場合
			String yk_ymd = custGrpBean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_02, X31CWebConst.DATABEAN_GET_VALUE);
			if(yk_ymd != null && !"".equals(yk_ymd))
			{
				custGrpBean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_Y_02,
												X31CWebConst.DATABEAN_SET_VALUE,
												JPCUtilCommon.toYearFromYmd(yk_ymd));
				custGrpBean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_M_02,
												X31CWebConst.DATABEAN_SET_VALUE,
												JPCUtilCommon.toMonthFromYmd(yk_ymd));
				custGrpBean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_D_02,
												X31CWebConst.DATABEAN_SET_VALUE,
												JPCUtilCommon.toDayFromYmd(yk_ymd));
			}
			
			// お客様グループ無効年月日が設定されている場合
			String mk_ymd = custGrpBean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_02, X31CWebConst.DATABEAN_GET_VALUE);
			if (mk_ymd != null && !"".equals(mk_ymd))
			{
				custGrpBean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_Y_02,
												X31CWebConst.DATABEAN_SET_VALUE,
												JPCUtilCommon.toYearFromYmd(mk_ymd));
				custGrpBean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_M_02,
												X31CWebConst.DATABEAN_SET_VALUE,
												JPCUtilCommon.toMonthFromYmd(mk_ymd));
				custGrpBean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_D_02,
												X31CWebConst.DATABEAN_SET_VALUE,
												JPCUtilCommon.toDayFromYmd(mk_ymd));
			}
		}
	}
	
	/**
	 * 登録用マッピングデータを作成する。
	 * <br>
	 * @param bean サービスフォームBean
	 */
	private void setAddMapData(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccessArray custlist = bean.getDataBeanArray(CKW02502SFConst.CUST_GRP_LIST);
		String ymd = bean.sendMessageString(CKW02502SFConst.STDARD_YMD, X31CWebConst.DATABEAN_GET_VALUE);
		String updDtm = "00000000000000000";
		
		for (int i = 0; i < custlist.getCount(); i++)
		{
			X31SDataBeanAccess custbean = custlist.getDataBean(i);
			
			String ykY = custbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_Y_02, X31CWebConst.DATABEAN_GET_VALUE);
			String ykM = custbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_M_02, X31CWebConst.DATABEAN_GET_VALUE);
			String ykD = custbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_D_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 有効年月日設定
			if ("".equals(ykY) && "".equals(ykM) && "".equals(ykD))
			{
				// 基準日を設定
				custbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, ymd);
			}
			else
			{
				// 有効年月日（年、月、日）を連結した内容設定
				custbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_02,
											X31CWebConst.DATABEAN_SET_VALUE,
											JPCUtilCommon.concatYmd(ykY, ykM, ykD));
			}
			
			String mkY = custbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_Y_02, X31CWebConst.DATABEAN_GET_VALUE);
			String mkM = custbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_M_02, X31CWebConst.DATABEAN_GET_VALUE);
			String mkD = custbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_D_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 無効年月日設定
			if ("".equals(mkY) && "".equals(mkM) && "".equals(mkD))
			{
				// 削除の場合
				if (custbean.sendMessageBoolean(CKW02502SFConst.DEL_FLG_02, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 基準日を設定
					custbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, ymd);
				}
				else
				{
					// 固定日を設定
					custbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_02, X31CWebConst.DATABEAN_SET_VALUE, "20991231");
				}
			}
			else
			{
				// 有効年月日（年、月、日）を連結した内容設定
				custbean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_02,
											X31CWebConst.DATABEAN_SET_VALUE,
											JPCUtilCommon.concatYmd(mkY, mkM, mkD));
			}
			
			if (!custbean.sendMessageBoolean(CKW02502SFConst.DEL_FLG_02, X31CWebConst.DATABEAN_GET_VALUE))
			{
				String dtm = custbean.sendMessageString(CKW02502SFConst.UPD_DTM_BF_02, X31CWebConst.DATABEAN_GET_VALUE);
				if (dtm.compareTo(updDtm) > 0)
				{
					updDtm = dtm;
				}
			}
		}
		
		if ("1".equals(bean.sendMessageString(CKW02502SFConst.MODE, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			bean.sendMessageString(CKW02502SFConst.UPD_DTM_BF, X31CWebConst.DATABEAN_SET_VALUE, updDtm);
		}
		
		// パスワードのマスク処理
		bean.sendMessageString(CKW02502SFConst.DISP_GRP_JOIN_CD_PWD,
								X31CWebConst.DATABEAN_SET_VALUE,
								JPCUtilCommon.forMaskMarc(bean.sendMessageString(CKW02502SFConst.GRP_JOIN_CD_PWD, X31CWebConst.DATABEAN_GET_VALUE),
															"*"));
	}
	
	/**
	 * コンボボックスの選択情報を転記する。
	 * 
	 */
	private void setSelectComboData()
	{
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess subbean = bean.getDataBeanArray(CKW02502SFConst.GRP_SBT_CD).getDataBean(0);
		String selectedIndex = subbean.sendMessageString(CKW02502SFConst.SELECT_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		
		if (selectedIndex == null || "".equals(selectedIndex))
		{
			String code = subbean.sendMessageString(CKW02502SFConst.CD_DIV_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
			
			if (code == null || code.length() == 0)
			{
				return;
			}
			subbean.sendMessageString(CKW02502SFConst.SELECT_INDEX_01,
										X31CWebConst.DATABEAN_SET_VALUE,
										JCKWebCommon.getPullDownIndex(bean, code, CKW02502SFConst.GRP_SBT_CD, CKW02502SFConst.CD_DIV_CD_LIST_01));
		}
		
		subbean.sendMessageString(CKW02502SFConst.CD_DIV_CD_01,
									X31CWebConst.DATABEAN_SET_VALUE,
									JCKWebCommon.convertCode(bean,
															CKW02502SFConst.GRP_SBT_CD,
															CKW02502SFConst.SELECT_INDEX_01,
															CKW02502SFConst.CD_DIV_CD_LIST_01));
		subbean.sendMessageString(CKW02502SFConst.CD_DIV_NM_01,
									X31CWebConst.DATABEAN_SET_VALUE,
									JCKWebCommon.getPullDownName(bean,
																CKW02502SFConst.GRP_SBT_CD,
																CKW02502SFConst.SELECT_INDEX_01,
																CKW02502SFConst.CD_DIV_CD_LIST_01,
																CKW02502SFConst.CD_DIV_NM_LIST_01));
	}
	
	/**
	 * 総検索件数を元に、総ページ数を算出します。
	 * <br>
	 * @param arg0 総検索件数
	 * @param arg1 1ページ当たりの表示件数
	 * @return 総ページ数
	 */
	private String calcTotalPage(Long arg0, Long arg1)
	{
		long total = arg0.longValue();
		long disp = arg1.longValue();
		
		long divide = total / disp;
		long mod = total % disp;
		
		if (0 < mod)
		{
			divide += 1;
		}
		
		return Long.toString(divide);
	}
	
	/**
	 * 検索ページ数を元に、検索開始行番号を取得します。
	 * <br>
	 * @param arg0 検索ページ数
	 * @param arg1 1ページ当たりの表示件数
	 * @return 検索開始行番号
	 */
	private String calcSearchRows(Long arg0, Long arg1)
	{
		long page = arg0.longValue();
		long disp = arg1.longValue();
		
		long row = Long.valueOf(((page * disp) + 1) - disp);
		
		return Long.toString(row - 1);
	}
	
	/**
	 * ソート共通処理を行います。
	 * <br>
	 * @return boolean
	 */
	private boolean sortCommon()
	{
		// 画面遷移
		setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02502, JCKScreenConst.SCREEN_NAME_CKW02502);
		
		X31SDataBeanAccess bean = super.getServiceFormBean();
		String mode = bean.sendMessageString(CKW02502SFConst.MODE, X31CWebConst.DATABEAN_GET_VALUE);
		
		if ("2".equals(mode) || "3".equals(mode))
		{
			// グループ種別コードの選択値の設定
			setSelectComboData();
		}
		
		// ページ情報設定を実施しない場合、処理終了
		if (!initPageInfo())
		{
			return false;
		}
		
		return true;
	}
	
	/**
	 * ページング情報の初期化を実施します。
	 * <br>
	 * @return boolean
	 */
	private boolean initPageInfo()
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// お客様グループ設定リストを取得
		X31SDataBeanAccessArray cust_grp_list = bean.getDataBeanArray(CKW02502SFConst.CUST_GRP_LIST);
		
		// データが存在しない場合、終了
		if (cust_grp_list == null || cust_grp_list.getCount() == 0)
		{
			return false;
		}
		
		// ページリンクの情報をクリアする
		JCCWebCommon.clearPageLinkInfo(this, JCKScreenConst.SCREEN_ID_CKW02502);
		
		// ページング情報の設定
		HashMap<String, Object> pageMap = makeUpPageLinkInfo();
		JCCWebCommon.upmapperPageLinkInfo(this, "0", TITEL_PAGEINFO, pageMap);
		JCCWebCommon.downmapperPageLinkInfo(this, "0", TITEL_PAGEINFO, makeDownPageLinkInfoSort(bean, pageMap));
		
		// 表示開始行を0に設定
		bean.sendMessageString(CKW02502SFConst.DISP_ROW_NUM, X31CWebConst.DATABEAN_SET_VALUE, "0");
		
		return true;
	}
	
	/**
	 * ソート対象外のレコードを取得します。
	 * <br>
	 * @param bean
	 * @return ArrayList<X31SDataBeanAccess>
	 */
	private ArrayList<HashMap<String, Object>> getAddList(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccessArray cust_grp_list = bean.getDataBeanArray(CKW02502SFConst.CUST_GRP_LIST);
		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		
		for (int i = 0; i < cust_grp_list.getCount(); i++)
		{
			X31SDataBeanAccess subbean = cust_grp_list.getDataBean(i);
			String grpNo = subbean.sendMessageString(CKW02502SFConst.CUST_GRP_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 追加行を設定
			if (grpNo == null || grpNo.length() == 0)
			{
				list.add(copyCustGrpSetteMap(subbean));
			}
		}
		return list;
	}
	
	/**
	 * お客様グループ設定Beanを退避します。
	 * <br>
	 * @param bean
	 * @return HashMap
	 */
	private HashMap<String, Object> copyCustGrpSetteMap(X31SDataBeanAccess bean)
	{
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put(CKW02502SFConst.DEL_FLG_02, bean.sendMessageBoolean(CKW02502SFConst.DEL_FLG_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.GRP_LEADER_FLG_02, bean.sendMessageString(CKW02502SFConst.GRP_LEADER_FLG_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_02,
				bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_Y_02,
				bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_Y_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_M_02,
				bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_M_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_D_02,
				bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_D_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_02,
				bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_Y_02,
				bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_Y_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_M_02,
				bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_M_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_D_02,
				bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_D_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.SYSID_02, bean.sendMessageString(CKW02502SFConst.SYSID_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.EOID_02, bean.sendMessageString(CKW02502SFConst.EOID_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.CUST_NM_02, bean.sendMessageString(CKW02502SFConst.CUST_NM_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.KEISYA_AD_02, bean.sendMessageString(CKW02502SFConst.KEISYA_AD_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.CUST_GRP_NO_02, bean.sendMessageString(CKW02502SFConst.CUST_GRP_NO_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_BF_02,
				bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_BF_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_BF_02,
				bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_BF_02, X31CWebConst.DATABEAN_GET_VALUE));
		map.put(CKW02502SFConst.UPD_DTM_BF_02, bean.sendMessageString(CKW02502SFConst.UPD_DTM_BF_02, X31CWebConst.DATABEAN_GET_VALUE));
		return map;
	}
	
	/**
	 * ソート処理を行います。
	 * <br>
	 * @param bean
	 * @param key1
	 * @param key2
	 * @return TreeMap<String, TreeMap<String, X31SDataBeanAccess>>
	 */
	private TreeMap<String, TreeMap<String, HashMap<String, Object>>> getSortMap(X31SDataBeanAccess bean, String key1, String key2)
	{
		TreeMap<String, TreeMap<String, HashMap<String, Object>>> map = new TreeMap<String, TreeMap<String, HashMap<String, Object>>>();
		X31SDataBeanAccessArray cust_grp_list = bean.getDataBeanArray(CKW02502SFConst.CUST_GRP_LIST);
		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		
		for (int i = 0; i < cust_grp_list.getCount(); i++)
		{
			X31SDataBeanAccess subbean = cust_grp_list.getDataBean(i);
			String grpNo = subbean.sendMessageString(CKW02502SFConst.CUST_GRP_NO_02, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 追加行以外を設定
			if (grpNo != null && grpNo.length() > 0)
			{
				list.add(copyCustGrpSetteMap(subbean));
			}
		}
		
		for (int i = 0; i < list.size(); i++)
		{
			TreeMap<String, HashMap<String, Object>> subMap = null;
			HashMap<String, Object> subBean = list.get(i);
			String sort1 = editSortKey(subBean, key1);
			String sort2 = editSortKey(subBean, key2);
			
			if (map.containsKey(sort1))
			{
				subMap = map.get(sort1);
			}
			else
			{
				subMap = new TreeMap<String, HashMap<String, Object>>();
			}
			
			subMap.put(sort2, subBean);
			map.put(sort1, subMap);
		}
		
		return map;
	}
	
	/**
	 * ソートキーの値を編集します。
	 * <br>
	 * @param bean
	 * @param sortKey
	 * @return String
	 */
	private String editSortKey(HashMap<String, Object> bean, String sortKey)
	{
		String value = (String)bean.get(sortKey);
		
		// 有効年月日の場合
		if (CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_02.equals(sortKey))
		{
			// 有効年月日（年）、有効年月日（月）、有効年月日（日）を連結
			value = JPCUtilCommon.concatYmd((String)bean.get(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_Y_02),
											(String)bean.get(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_M_02),
											(String)bean.get(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_D_02));
			if (value == null || value.length() == 0)
			{
				value = "20991231";
			}
		}
		// 無効年月日の場合
		else if (CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_02.equals(sortKey))
		{
			// 無効年月日（年）、無効年月日（月）、無効年月日（日）を連結
			value = JPCUtilCommon.concatYmd((String)bean.get(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_Y_02),
											(String)bean.get(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_M_02),
											(String)bean.get(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_D_02));
			if (value == null || value.length() == 0)
			{
				value = "20991231";
			}
		}
		// 氏名の場合
		else if (CKW02502SFConst.CUST_NM_02.equals(sortKey))
		{
			value = JPCUtilCommon.fillSpace(value, 121, true);
		}
		// 住所の場合
		else if (CKW02502SFConst.KEISYA_AD_02.equals(sortKey))
		{
			value = JPCUtilCommon.fillSpace(value, 152, true);
		}
		// eoIDの場合
		else if (CKW02502SFConst.EOID_02.equals(sortKey))
		{
			value = JPCUtilCommon.fillHalfSpace(value, 80, true);
		}
		
		return value;
	}
	
	/**
	 * ソート結果を昇順で設定します。
	 * <br>
	 * @param bean
	 * @param addList
	 * @param map
	 */
	private void setCustGrpAsc(X31SDataBeanAccess bean,
								ArrayList<HashMap<String, Object>> addList,
								TreeMap<String, TreeMap<String, HashMap<String, Object>>> map)
	{
		// お客様グループ設定リストを取得
		X31SDataBeanAccessArray cust_grp_list = bean.getDataBeanArray(CKW02502SFConst.CUST_GRP_LIST);
		cust_grp_list.clearArray();
		
		// 追加レコードを設定
		for (int i = 0; i < addList.size(); i++)
		{
			copyMapToBean(cust_grp_list.addDataBean(), addList.get(i));
		}
		
		// ソート結果を設定
		String[] key1 = map.keySet().toArray(new String[0]);
		for (int i = 0; i < key1.length; i++)
		{
			TreeMap<String, HashMap<String, Object>> subMap = map.get(key1[i]);
			String[] key2 = subMap.keySet().toArray(new String[0]);
			
			for (int j = 0; j < key2.length; j++)
			{
				copyMapToBean(cust_grp_list.addDataBean(), subMap.get(key2[j]));
			}
		}
	}
	
	/**
	 * ソート結果を降順で設定します。
	 * <br>
	 * @param bean
	 * @param addList
	 * @param map
	 */
	private void setCustGrpDesc(X31SDataBeanAccess bean,
								ArrayList<HashMap<String, Object>> addList,
								TreeMap<String, TreeMap<String, HashMap<String, Object>>> map)
	{
		// お客様グループ設定リストを取得
		X31SDataBeanAccessArray cust_grp_list = bean.getDataBeanArray(CKW02502SFConst.CUST_GRP_LIST);
		cust_grp_list.clearArray();
		
		// 追加レコードを設定
		for (int i = 0; i < addList.size(); i++)
		{
			copyMapToBean(cust_grp_list.addDataBean(), addList.get(i));
		}
		
		// ソート結果を設定
		String[] key1 = map.keySet().toArray(new String[0]);
		for (int i = key1.length - 1; i >= 0; i--)
		{
			TreeMap<String, HashMap<String, Object>> subMap = map.get(key1[i]);
			String[] key2 = subMap.keySet().toArray(new String[0]);
			
			for (int j = 0; j < key2.length; j++)
			{
				copyMapToBean(cust_grp_list.addDataBean(), subMap.get(key2[j]));
			}
		}
	}
	
	/**
	 * お客様グループ設定Beanをコピーします。
	 * <br>
	 * @param bean
	 * @param map
	 * @return boolean
	 */
	private void copyMapToBean(X31SDataBeanAccess bean, HashMap<String, Object> map)
	{
		// 内容を転記
		bean.sendMessageBoolean(CKW02502SFConst.DEL_FLG_02, X31CWebConst.DATABEAN_SET_VALUE, (Boolean)map.get(CKW02502SFConst.DEL_FLG_02));
		bean.sendMessageString(CKW02502SFConst.GRP_LEADER_FLG_02,
								X31CWebConst.DATABEAN_SET_VALUE,
								(String)map.get(CKW02502SFConst.GRP_LEADER_FLG_02));
		bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_02,
								X31CWebConst.DATABEAN_SET_VALUE,
								(String)map.get(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_02));
		bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_Y_02,
								X31CWebConst.DATABEAN_SET_VALUE,
								(String)map.get(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_Y_02));
		bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_M_02,
								X31CWebConst.DATABEAN_SET_VALUE,
								(String)map.get(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_M_02));
		bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_D_02, X31CWebConst.DATABEAN_SET_VALUE,
								(String)map.get(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_D_02));
		bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_02, X31CWebConst.DATABEAN_SET_VALUE,
								(String)map.get(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_02));
		bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_Y_02, X31CWebConst.DATABEAN_SET_VALUE,
								(String)map.get(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_Y_02));
		bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_M_02, X31CWebConst.DATABEAN_SET_VALUE,
								(String)map.get(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_M_02));
		bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_D_02, X31CWebConst.DATABEAN_SET_VALUE,
								(String)map.get(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_D_02));
		bean.sendMessageString(CKW02502SFConst.SYSID_02, X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(CKW02502SFConst.SYSID_02));
		bean.sendMessageString(CKW02502SFConst.EOID_02, X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(CKW02502SFConst.EOID_02));
		bean.sendMessageString(CKW02502SFConst.CUST_NM_02, X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(CKW02502SFConst.CUST_NM_02));
		bean.sendMessageString(CKW02502SFConst.KEISYA_AD_02, X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(CKW02502SFConst.KEISYA_AD_02));
		bean.sendMessageString(CKW02502SFConst.CUST_GRP_NO_02, X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(CKW02502SFConst.CUST_GRP_NO_02));
		bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_BF_02,
								X31CWebConst.DATABEAN_SET_VALUE,
								(String)map.get(CKW02502SFConst.CUST_GRP_SETTE_YK_YMD_BF_02));
		bean.sendMessageString(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_BF_02,
								X31CWebConst.DATABEAN_SET_VALUE,
								(String)map.get(CKW02502SFConst.CUST_GRP_SETTE_MK_YMD_BF_02));
		bean.sendMessageString(CKW02502SFConst.UPD_DTM_BF_02, X31CWebConst.DATABEAN_SET_VALUE, (String)map.get(CKW02502SFConst.UPD_DTM_BF_02));
	}
	
	/**
	 * 仮想ページ情報（上り）を作成します。
	 * <br>
	 * @return HashMap 仮想ページ情報
	 */
	private HashMap<String, Object> makeUpPageLinkInfo()
	{
		HashMap<String, Object> mp = new HashMap<String, Object>();
		HashMap<String, Object> pageMap = new HashMap<String, Object>();
		
		// ページング情報の設定
		pageMap.put(SEARCH_TYPE, "1");
		pageMap.put(DISPLAY_NUM, "10");
		pageMap.put(MAX_SEARCH_NUM, "10000");
		
		mp.put(TITEL_PAGEINFO, pageMap);
		
		return mp;
	}
	
	/**
	 * 仮想ページ情報（下り）を作成します。
	 * <br>
	 * @param mp 仮想ページ情報
	 * @param outputMap サービス実施結果情報
	 * @return HashMap 仮想ページ情報
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> makeDownPageLinkInfo(HashMap<String, Object> mp, HashMap<String, Object> outputMap)
	{
		HashMap<String, Object> pageMap = new HashMap<String, Object>();
		HashMap<String, Object> map = mp;
		ArrayList<HashMap<String, Object>> childList = null;
		HashMap<String, Object> parentMap = null;
		
		if (outputMap.containsKey(TITEL_LIST_SEARCH_SC))
		{
			parentMap = (HashMap)outputMap.get(TITEL_LIST_SEARCH_SC);
		}
		
		if (map.containsKey(TITEL_PAGEINFO))
		{
			pageMap = (HashMap)map.get(TITEL_PAGEINFO);
		}
		else
		{
			map = makeUpPageLinkInfo();
			pageMap = (HashMap)map.get(TITEL_PAGEINFO);
		}
		
		// 検索結果が存在する場合
		if (parentMap != null && parentMap.containsKey(SEARCH_LIST_ITEM))
		{
			childList = (ArrayList)parentMap.get(SEARCH_LIST_ITEM);
			//ページング情報の設定
			pageMap.put(TOTAL_PAGE_NUM, calcTotalPage((long)childList.size(), Long.parseLong((String)pageMap.get(DISPLAY_NUM))));
			pageMap.put(TOTAL_SEARCH_NUM, String.valueOf(childList.size()));
		}
		else
		{
			pageMap.put(TOTAL_PAGE_NUM, "0");
			pageMap.put(TOTAL_SEARCH_NUM, "0");
		}
		
		map.put(TITEL_PAGEINFO, pageMap);
		
		return map;
	}
	
	/**
	 * 仮想ページ情報（下りソート用）を作成します。
	 * <br>
	 * @param bean
	 * @param mp 仮想ページ情報
	 * @return HashMap 仮想ページ情報
	 */
	@SuppressWarnings("unchecked")
	private HashMap<String, Object> makeDownPageLinkInfoSort(X31SDataBeanAccess bean, HashMap<String, Object> mp)
	{
		HashMap<String, Object> pageMap = new HashMap<String, Object>();
		HashMap<String, Object> map = mp;
		X31SDataBeanAccessArray cust_grp_list = bean.getDataBeanArray(CKW02502SFConst.CUST_GRP_LIST);
		
		if (map.containsKey(TITEL_PAGEINFO))
		{
			pageMap = (HashMap)map.get(TITEL_PAGEINFO);
		}
		else
		{
			map = makeUpPageLinkInfo();
			pageMap = (HashMap)map.get(TITEL_PAGEINFO);
		}
		
		// データが存在する場合が存在する場合
		if (cust_grp_list != null)
		{
			//ページング情報の設定
			pageMap.put(TOTAL_PAGE_NUM, calcTotalPage((long)cust_grp_list.getCount(), Long.parseLong((String)pageMap.get(DISPLAY_NUM))));
			pageMap.put(TOTAL_SEARCH_NUM, String.valueOf(cust_grp_list.getCount()));
		}
		else
		{
			pageMap.put(TOTAL_PAGE_NUM, "0");
			pageMap.put(TOTAL_SEARCH_NUM, "0");
		}
		
		map.put(TITEL_PAGEINFO, pageMap);
		
		return map;
	}
	
	/**
	 * 画面遷移情報の設定をします。<br>
	 * <p>
	 * @param next_id 遷移先画面ＩＤ。
	 * @param next_nm 遷移先画面名。
	 */
	private void setForwardInfo(String next_id, String next_nm)
	{
		X31SDataBeanAccess commoninfoBean = super.getCommonInfoBean();
		
		// 遷移先の画面IDを共有フォームBeanの項目に設定する。
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, next_id);
		
		if (next_nm != null)
		{
			// 遷移先の画面名を共有フォームBeanの項目に設定する。
			commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, next_nm);
		}
	}
	
	/**
	 * ページング押下処理を行います。
	 * <br>
	 * @return boolean
	 */
	@SuppressWarnings("unchecked")
	public boolean changePage()
	{
		// サービスフォームBeanの取得
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ページング情報の設定
		HashMap<String, Object> pageMap = makeUpPageLinkInfo();
		JCCWebCommon.upmapperPageLinkInfo(this, "0", TITEL_PAGEINFO, pageMap);
		
		//pageMapよりデータを取得
		HashMap<String, Object> mp = (HashMap<String, Object>)pageMap.get(TITEL_PAGEINFO);
		String dispPagaNum = (String)mp.get(DISPLAY_PAGE_NUM);
		String dispNum = (String)mp.get(DISPLAY_NUM);
		
		// 開始行番号を設定
		bean.sendMessageString(CKW02502SFConst.DISP_ROW_NUM,
								X31CWebConst.DATABEAN_SET_VALUE,
								calcSearchRows(Long.parseLong(dispPagaNum), Long.parseLong(dispNum)));
		
		// グループ種別コードの選択値の設定
		setSelectComboData();
		
		// 画面遷移
		setForwardInfo(JCKScreenConst.SCREEN_ID_CKW02502, JCKScreenConst.SCREEN_NAME_CKW02502);
		
		return true;
	}
}
