/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：契約管理システム
*   モジュール名    ：はぴe契約審査結果補正更新
*   ソースファイル名：KKW14106SFLogic.java
*   作成者          ：富士通
*   日付            ：2012年08月22日
*＜機能概要＞
*   はぴe契約審査結果補正に対しての更新処理を行う
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v4.00.00    2012/08/22   FJ          新規作成
*	v11.00.00   2014/10/17   FJ)福岡     OM-2014-002463
**********************************************************************/
package eo.web.webview.KKW14106SF;

import java.util.ArrayList;
import java.util.HashMap;

import com.fujitsu.futurity.common.JSYwebLog;
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.JPCModelConstant;
import eo.common.constant.JPCOnlineMessageConstant;
import eo.common.util.JKKStringUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JKKScreenConst;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.mapping.KKSV0632_KKSV0632OPDBMapper;
import eo.web.webview.mapping.KKSV0633_KKSV0633OPDBMapper;


/**
 * はぴe契約審査結果補正に対しての更新処理を行う<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class KKW14106SFLogic extends JCCWebBusinessLogic {
	
	/**
	 * 初期表示処理を行う.<br>
	 * <br>
	 * 
	 * @return true:正常
	 * @throws Exception
	 */
	public boolean actionInit() throws Exception {

		// 引き継ぎの情報MAPを取得する。 
		JCCWebCommon.getScreenInfo(this);
		
		// 初期表示サービス呼出処理
		executeInitSvc();
		
		// プルダウン選択値設定
		setPullDownChoice();
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * 登録確認押下処理(KKW14106)<br>
	 * 入力内容に対するチェック処理を行う.<br>
	 * <br>
	 *
	 * @return true:正常
	 * @throws Exception 
	 */
	public boolean actionUpdateCheck() throws Exception {
		
		// 登録確認サービス呼出処理(チェックのみ)
		if (executeUpdateSvc(JKKScreenConst.SCREEN_ID_KKW14106, JPCModelConstant.FUNC_CD_2)) {
			// 正常終了時のみ,次画面へメッセージの設定
			setScrnMsg(new String[] {"、はぴe契約補正情報の登録"}, JPCOnlineMessageConstant.EKB0370__I);
		}
		
		// 画面ID設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW14107, JKKScreenConst.SCREEN_ID_KKW14106);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * 戻る押下処理(KKW14106)<br>
	 * はぴe契約補正対象一覧画面へ遷移する.<br>
	 * <br>
	 * 
	 * @return true:正常
	 * @throws Exception
	 */
	public boolean actionBack() throws Exception {
		
		// 遷移先情報の設定
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		// 画面ID設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW14105, JKKScreenConst.SCREEN_ID_KKW14106);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true; 
	}
	
	/**
	 * 確定押下処理(KKW14107)<br>
	 * 入力内容に対するチェック後,DB更新処理を行う.<br>
	 * <br>
	 *
	 * @return true:正常
	 * @throws Exception 
	 */
	public boolean actionFix() throws Exception {
		
		// 登録確認サービス呼出処理(チェック＆DB更新)
		if (executeUpdateSvc(JKKScreenConst.SCREEN_ID_KKW14107, JPCModelConstant.FUNC_CD_1)) {
			// 正常終了時のみ,次画面へメッセージの設定
			setScrnMsg(new String[] {"はぴe契約補正情報の登録"}, JPCOnlineMessageConstant.EKB9360__I);
		}
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true;
	}
	
	/**
	 * 修正押下処理(KKW14107)<br>
	 * はぴe契約審査結果補正登録画面へ遷移する.<br>
	 * <br>
	 * 
	 * @return true:正常
	 * @throws Exception
	 */
	public boolean actionMod() throws Exception {
		
		// 遷移先情報の設定
		setNextScrnInf(JKKScreenConst.SCREEN_ID_KKW14106, JKKScreenConst.SCREEN_NAME_KKW14106);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true; 
	}
	
	/**
	 * 完了押下処理(KKW14108)<br>
	 * はぴe契約補正対象一覧画面へ遷移する.<br>
	 * <br>
	 *
	 * @return 正常／異常
	 * @throws Exception 
	 */
	public boolean actionFin() throws Exception {
		
		// 遷移先情報の設定
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getScreenId(this));
		
		// 画面ID設定
		JCCWebCommon.setScreenId(this, JKKScreenConst.SCREEN_ID_KKW14105, JKKScreenConst.SCREEN_ID_KKW14108);
		
		// DataBeanログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return true; 
	}
	
	/**
	 * はぴe契約審査結果補正登録確認サービス実行処理前チェック<br>
	 * 単項目チェック,単項目関連チェック処理を行う.<br>
	 * また,当メソッド内部にてエラー情報の設定も実施する.<br>
	 * <br>
	 * 
	 * @param  paramBean DataBean項目の配列
	 * @return true:正常,false:異常
	 */
	private boolean chkUpdateSvc(X31SDataBeanAccess[] paramBean) {
		
		// 戻り値
		boolean ret = true;
		
// v11.00.00 ADD START
		
		// 記事に改行コード有
		if (!retIsErrMemo(paramBean)) {
			
			setScrnMsg(new String[] {"改行"}, JPCOnlineMessageConstant.EKB4840_NW);
			
			// 単項目チェックエラー扱いで一旦終了.
			return false;
		}
// v11.00.00 ADD END
		
		// ================================================================
		// 
		// 単項目関連チェック
		// 
		// No.1：[補正審査結果]と[補正審査結果理由]に変更がない場合,エラー
		// 
		// ================================================================
		// 補正審査結果：選択値取得
		String sKekkaChoice = getPulldownCode(paramBean, KKW14106SFConst.HOSEI_SKEKKA_INFO);
		// 補正審査結果：前回選択値取得
		String sKekkaChoiceBack = paramBean[0].sendMessageString(KKW14106SFConst.MAE_HOSEI_SKEKKA_CD_CHOICE, X31CWebConst.DATABEAN_GET_VALUE); 
		// 補正審査結果：比較
		boolean sKekka = sKekkaChoice.equals(sKekkaChoiceBack);
		
		// 補正審査結果理由：選択値取得
		String sKekkaRsnChoice = getPulldownCode(paramBean, KKW14106SFConst.HOSEI_SKEKKA_RSN_INFO);
		// 補正審査結果理由：前回選択値取得
		String sKekkaRsnChoiceBack = paramBean[0].sendMessageString(KKW14106SFConst.MAE_HOSEI_SKEKKA_RSN_CD_CHOICE, X31CWebConst.DATABEAN_GET_VALUE); 
		// 補正審査結果理由：比較
		boolean sKekkaRsn = sKekkaRsnChoice.equals(sKekkaRsnChoiceBack);
		
		// No.1チェックエラー判定
		if (sKekka && sKekkaRsn) {
			setScrnMsg(new String[] {""}, JPCOnlineMessageConstant.EKB1650_JW);
			ret = false;
		}
		return ret;
	}
	
	/**
	 * はぴe契約審査結果補正登録初期表示サービス実行処理<br>
	 * プルダウン情報の生成処理を行う.<br>
	 * <br>
	 * 
	 * @param  paramBean DataBean項目の配列
	 * @throws Exception
	 */
	private void executeInitSvc() throws Exception {
		
		// ================================================================
		// 
		// 内部変数
		// 
		// ================================================================
		// 上り電文
		HashMap<String, Object> inputMap  = new HashMap<String, Object>();
		// 下り電文
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// ================================================================
		// 
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		// 
		// ================================================================
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ================================================================
		// 
		// 上りマッピング処理(サービス項目-DataBean項目マッピング)
		// 
		// ================================================================
		KKSV0632_KKSV0632OPDBMapper mapper = new KKSV0632_KKSV0632OPDBMapper();
		mapper.setKKSV063201SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		mapper.setKKSV063202SC(paramBean, inputMap, JPCModelConstant.FUNC_CD_1);
		
		// ================================================================
		// 
		// サービス呼出処理
		// 
		// ================================================================
		invokeService("KKSV0632", "KKSV0632OP", inputMap, outputMap);
		
		// ================================================================
		// 
		// プルダウン生成処理を実施
		// 
		// ================================================================
		/** 補正審査結果コード情報 */
		JKKWebCommon.setPulldownList(bean, outputMap, KKW14106SFConst.HOSEI_SKEKKA_INFO, "KKSV063201SC", true);
		/** 補正審査結果理由コード情報 */
		JKKWebCommon.setPulldownList(bean, outputMap, KKW14106SFConst.HOSEI_SKEKKA_RSN_INFO, "KKSV063202SC", true);
	}
	
	/**
	 * はぴe契約審査結果補正登録確認サービス実行処理<br>
	 * 呼び出し元により,サービス実行内容,遷移先の制御を行う.<br>
	 * 
	 * KKW14106：チェック実施後,KKW14107へ遷移.<br>
	 * KKW14107：チェック＆DB更新実施後,KKW14108へ遷移.<br>
	 * <br>
	 * 
	 * @param  画面ID     呼び出し元画面ID
	 * @param  機能コード サービス実施時に必要な機能コード
	 * @return true:正常、false:エラー
	 * @throws Exception
	 */
	private boolean executeUpdateSvc(String scrnId, String funcCd) throws Exception {
		
		// ================================================================
		// 
		// 内部変数
		// 
		// ================================================================
		// 上り電文
		HashMap<String, Object> inputMap  = new HashMap<String, Object>();
		// 下り電文
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// ================================================================
		// 
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		// 
		// ================================================================
		X31SDataBeanAccess bean = super.getServiceFormBean();
		X31SDataBeanAccess[] paramBean = {bean};
		
		// ================================================================
		// 
		// チェック処理：エラー時,処理終了.
		// 
		// ================================================================
		if (!chkUpdateSvc(paramBean)) {
			return false;
		}
		
		// ================================================================
		// 
		// プルダウン選択値情報設定
		// コード選択値,名称選択値に対して選択情報を格納する.
		// 
		// ================================================================
		// 補正審査結果コード情報
		setSltPulldownBean(paramBean, KKW14106SFConst.HOSEI_SKEKKA_INFO, KKW14106SFConst.HOSEI_SKEKKA_CD_CHOICE, KKW14106SFConst.HOSEI_SKEKKA_CD_NM_CHOICE);
		// 補正審査結果理由コード情報
		setSltPulldownBean(paramBean, KKW14106SFConst.HOSEI_SKEKKA_RSN_INFO, KKW14106SFConst.HOSEI_SKEKKA_RSN_CD_CHOICE, KKW14106SFConst.HOSEI_SKEKKA_RSN_CD_NM_CHOICE);
		
		// ================================================================
		// 
		// 上りマッピング処理(サービス項目-DataBean項目マッピング)
		// 
		// ================================================================
		KKSV0633_KKSV0633OPDBMapper mapper = new KKSV0633_KKSV0633OPDBMapper();
		mapper.setKKSV063301SC(paramBean, inputMap, funcCd);
		
		// ================================================================
		// 
		// サービス呼出処理
		// 
		// ================================================================
		X31CMessageResult msgResult = invokeService("KKSV0633", "KKSV0633OP", inputMap, outputMap);
		
		// ================================================================
		// 
		// サービス処理判定
		// 
		// ================================================================
		// エラーメッセージ情報オブジェクトがnull(正常)の場合
		if(msgResult == null) {
			
			// ----------------------------------------------------------------
			// 
			// 遷移先設定処理
			// 画面IDにより,遷移先を判定し次画面情報の設定を行う.
			//
			// ----------------------------------------------------------------
			// 画面IDがKKW14106
			if (JKKScreenConst.SCREEN_ID_KKW14106.equals(scrnId)) {
				
				// 遷移先情報の設定
				setNextScrnInf(JKKScreenConst.SCREEN_ID_KKW14107, JKKScreenConst.SCREEN_NAME_KKW14107);
				
			// 画面IDがKKW14107
			} else if (JKKScreenConst.SCREEN_ID_KKW14107.equals(scrnId)) {
				
				// 遷移先情報の設定
				setNextScrnInf(JKKScreenConst.SCREEN_ID_KKW14108, JKKScreenConst.SCREEN_NAME_KKW14108);
				
			// 画面IDがKKW14106,KKW14107以外
			} else {
				
				// ありえない
				throw new Exception();
			}
		}
		
		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		return true;
	}
	
	/**
	 * プルダウンの選択コードを取得する.
	 * <br>
	 * 
	 * @param  paramBean DataBean項目の配列
	 * @param  keyInfo   取得するプルダウン情報のKey
	 * @return 選択コード
	 */
	private String getPulldownCode(X31SDataBeanAccess[] paramBean, String keyInfo) {
		
		// ================================================================
		// 
		// プルダウン情報の取得
		// 
		// ================================================================
		X31SDataBeanAccessArray list = paramBean[0].getDataBeanArray(keyInfo);
		
		// プルダウンリストの取得
		X31SDataBeanAccess subbean = list.getDataBean(0);
		// 添え字の取得
		String index = subbean.sendMessageString(KKW14106SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		// 添え字からコードを取得
		String value = subbean.sendMessageString(KKW14106SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(index));

		return value;
	}	
	
	/**
	 * プルダウンの選択コード名を取得する.
	 * <br>
	 * 
	 * @param  paramBean DataBean項目の配列
	 * @param  keyInfo   取得するプルダウン情報のKey
	 * @return 選択コード名
	 */
	private String getPulldownNm(X31SDataBeanAccess[] paramBean, String keyInfo) {
		
		// ================================================================
		// 
		// プルダウン情報の取得
		// 
		// ================================================================
		X31SDataBeanAccessArray list = paramBean[0].getDataBeanArray(keyInfo);
		
		// プルダウンリストの取得
		X31SDataBeanAccess subbean = list.getDataBean(0);
		// 添え字の取得
		String index = subbean.sendMessageString(KKW14106SFConst.INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		// 添え字からコード名を取得
		String value = subbean.sendMessageString(KKW14106SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(index));

		return value;
	}
	
	/**
	 * プルダウン選択情報取得処理<br>
	 * プルダウン情報に対して,コードより該当するコード選択値とコード名称選択値を取得する.<br>
	 * <br>
	 * 
	 * @param bean データBeanアクセスクラス
	 * @param code 探すコード
	 * @param param [0] コード選択値、[1] コード名称選択値
	 */
	private void getPulldownSelected(X31SDataBeanAccess bean, String code, ArrayList<String> param) {
		
		// 該当するプルダウン情報リスト数を取得
		Integer count = (Integer) bean.sendMessage(KKW14106SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_COUNT);
		
		// プルダウン情報のリスト件数分,繰り返す
		for (int i = 0; i < count; i++) {
			
			String cd = bean.sendMessageString(KKW14106SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i);
			String nm = bean.sendMessageString(KKW14106SFConst.CD_DIV_NM_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i);
			
			// コードが存在する
			// コードが一致する
			if (cd != null && cd.equals(code)) {
				param.add(i + "");
				param.add(nm);
				return;
			}
		}
		
		// プルダウン情報リストが存在しない
		// 探すコードが見つからない
		param.add("0");
		param.add("");
	}
	
	/**
	 * サービス呼出処理<br>
	 * <br>
	 * 
	 * @param  usecaseId   ユースケースID
	 * @param  operationId オペレーションID
	 * @param  inputMap    上り電文
	 * @param  outputMap   下り電文
	 * @return APサーバでエラーが発生した場合は,エラーメッセージ情報オブジェクトが返却されます.<br>
	 * 正常終了時には,null値が返却されます.
	 * @throws Exception 
	 */
	private X31CMessageResult invokeService(String usecaseId, String operationId, HashMap<String, Object> inputMap, HashMap<String, Object> outputMap) throws Exception {
		
		// ================================================================
		// 
		// 内部変数
		// 
		// ================================================================
		// エラー情報
		X31CMessageResult msgResult = null;
		// パラメタ情報
		HashMap<String, Object> paramMap = new HashMap<String, Object>();
		
		// ================================================================
		// 
		// パラメタ設定
		// 
		// ================================================================
		// ユースケースID
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, usecaseId);
		// オペレーションID
		paramMap.put(X31CWebConst.TELEGRAM_INFO_OPERATION_ID, operationId);
		// メッセージリストの初期化
		clearMessageResultList();
		
		// ================================================================
		// 
		// サービスの呼び出し
		// 
		// ================================================================
		msgResult = invokeService(paramMap, inputMap, outputMap);

		// DataBeanをログ出力
		JSYwebLog.println(JSYwebLog.DataBean_Dump, getClass(), dumpDatabean(), null, null, null);
		
		return msgResult;
	}
	
	/**
	 * プルダウン選択値設定<br>
	 * 初期表示時,プルダウン情報に対する初期設定を実施する.<br>
	 * <br>
	 * 
	 */
	private void setPullDownChoice() {
		
		// ================================================================
		// 
		// サービスフォームBeanのデータBeanアクセスクラスを取得
		// 
		// ================================================================
		X31SDataBeanAccess bean = super.getServiceFormBean();
		
		// ================================================================
		// 
		// プルダウン初期設定処理
		// 
		// ================================================================
		/** 審査結果 */
		X31SDataBeanAccess pullDownInfoBean = bean.getDataBeanArray(KKW14106SFConst.HOSEI_SKEKKA_INFO).getDataBean(0);
		// 選択値
		String pullDownInfoChoice = bean.sendMessageString(KKW14106SFConst.MAE_HOSEI_SKEKKA_CD_CHOICE, X31CWebConst.DATABEAN_GET_VALUE);
		// indexを調べてselectedにする
		ArrayList<String> pullDownInfoList = new ArrayList<String>();
		getPulldownSelected(pullDownInfoBean, pullDownInfoChoice, pullDownInfoList);
		pullDownInfoBean.sendMessageString(KKW14106SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, (String) pullDownInfoList.get(0));
		// チェック用Index保持 getPullDownIdx
		bean.sendMessageString(KKW14106SFConst.HOSEI_SKEKKA_DEFAULT_INDEX,
								X31CWebConst.DATABEAN_SET_VALUE,
								getPullDownIdx(pullDownInfoBean, pullDownInfoChoice));
		
		/** 審査結果理由 */
		X31SDataBeanAccess pullDownRsnInfoBean = bean.getDataBeanArray(KKW14106SFConst.HOSEI_SKEKKA_RSN_INFO).getDataBean(0);
		// 選択値
		String pullDownRsnInfoChoice = bean.sendMessageString(KKW14106SFConst.MAE_HOSEI_SKEKKA_RSN_CD_CHOICE, X31CWebConst.DATABEAN_GET_VALUE);
		// indexを調べてselectedにする
		ArrayList<String> pullDownRsnInfoList = new ArrayList<String>();
		getPulldownSelected(pullDownRsnInfoBean, pullDownRsnInfoChoice, pullDownRsnInfoList);
		pullDownRsnInfoBean.sendMessageString(KKW14106SFConst.INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, (String) pullDownRsnInfoList.get(0));
		// チェック用Index保持 getPullDownIdx
		bean.sendMessageString(KKW14106SFConst.HOSEI_SKEKKA_RSN_DEFAULT_INDEX,
								X31CWebConst.DATABEAN_SET_VALUE,
								getPullDownIdx(pullDownRsnInfoBean, pullDownRsnInfoChoice));
		
	}
	
	/**
	 * プルダウンリスト選択位置設定処理<br>
	 * <br>
	 * 
	 * @param  pullDownObj 対象となるプルダウンオブジェクト
	 * @param  maeCd       前回コード値
	 * @return INDEX
	 */
	private String getPullDownIdx(X31SDataBeanAccess pullDownObj, String maeCd) {
		
		int slistCnt = (Integer)pullDownObj.sendMessage(KKW14106SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_COUNT);
		
		if(maeCd != null && !"".equals(maeCd)) {
			
			for(int i=0; i < slistCnt; i++) {
				// コード値を取得
				String cdValue = pullDownObj.sendMessageString(KKW14106SFConst.CD_DIV_LIST_01, X31CWebConst.DATABEAN_GET_VALUE, i);
				// 取得したコード値が、引数内容と合致すれば、そのインデックスを設定
				if(maeCd.equals(cdValue)) {
					return Integer.toString(i);
				}
			}
		}
		return "";
	}
	
	/**
	 * プルダウンの選択内容設定処理
	 * <br>
	 * 
	 * @param paramBean DataBean項目の配列
	 * @param keyInfo   取得するプルダウン情報のKey
	 * @param keyCd     設定するコードのKey
	 * @param keyNm     設定するコード名のKey
	 */
	private void setSltPulldownBean(X31SDataBeanAccess[] paramBean, String keyInfo, String keyCd, String keyNm) {
		
		// ================================================================
		// 
		// プルダウン情報の取得
		// 
		// ================================================================
		// 選択コード
		String code = getPulldownCode(paramBean, keyInfo);
		// 選択コード名称
		String name = getPulldownNm(paramBean, keyInfo);

		// ================================================================
		// 
		// プルダウン情報の設定
		// 
		// ================================================================
		// 選択コード
		paramBean[0].sendMessageString(keyCd, X31CWebConst.DATABEAN_SET_VALUE, code);
		// 選択コード名称
		paramBean[0].sendMessageString(keyNm, X31CWebConst.DATABEAN_SET_VALUE, name);
	}
	
	/**
	 * 画面メッセージ設定処理<br>
	 * 引数を元に,エラー情報の設定を実施する.<br><br>
	 * また,インフォメーション,エラーメッセージに関わらず,<br>
	 * 画面へのメッセージ設定は当メソッドにて実施する事.<br>
	 * <br>
	 * 
	 * @param msg   置換文字列
	 * @param msgId エラーメッセージID
	 */
	private void setScrnMsg(String[] msg, String msgId) {
		JCCWebCommon.setMessageInfo(this, msgId, msg);
	}
	
	/**
	 * 遷移先情報の設定処理<br>
	 * 遷移先画面IDを元に,次画面遷移情報の設定処理を行う.<br>
	 * <br>
	 * 
	 * @param scrnId 次画面ID
	 * @param scrnNm 次画面名
	 */
	private void setNextScrnInf(String scrnId, String scrnNm) {
		
		X31SDataBeanAccess  commoninfoBean = super.getCommonInfoBean();
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, scrnId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, scrnNm);
	}
	
// v11.00.00 ADD START
	
	/**
	 * 
	 * 改行コードチェック
	 * 
	 * @param  paramBean
	 * @return true：一致、false：不一致
	 */
	private boolean retIsErrMemo(X31SDataBeanAccess[] paramBean) {
		
		// 記事の改行チェック
		String memo = paramBean[0].sendMessageString(KKW14106SFConst.HOSEI_INPUT_MEMO, X31CWebConst.DATABEAN_GET_VALUE);
		
		// そもそも,nullはチェック不要
		if (JKKStringUtil.isNullBlank(memo))
			return true;
		
		final String[] conVals = new String[]{"\\r\\n"}; 
		
		String tg = "";
		for (String val : conVals)
			tg = memo.replaceAll(val, "　");
		
		// 不一致は,改行コードが存在したという事.
		return memo.equals(tg) ? true : false;
	}
//v11.00.00 ADD END
}
