/*********************************************************************
 * All Rights reserved,Copyright (c) K-Opticom
 **********************************************************************
 *＜プログラム内容＞
 *   システム名      ：eo顧客基幹システム
 *   モジュール名    ：クエリ更新ビューロジック
 *   ソースファイル名：CRW04503SFLogic.java
 *   作成者          ：富士通
 *   日付            ：2012年01月12日
 *＜機能概要＞
 *   クエリ更新画面のビューロジックです。
 *＜修正履歴＞
 *   バージョン  修正日       修正者      修正内容
 *   v1.00.00    2012/01/12   FJ）伊藤    新規作成
 *   v5.00.00    2013/04/26   FJ）伊藤    TAI-2013-0000025_静的解析による品質チェック対応
 *   v47.00.00   2019/08/09   FJ) 大島    ANK-3656-00-00_問い合わせクエリの検索条件追加
 *
 **********************************************************************/

package eo.web.webview.CRW04503SF;

import java.util.ArrayList;
import java.util.EventObject;
import java.util.HashMap;

import com.fujitsu.futurity.web.x31.X31CID;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;
import com.fujitsu.futurity.web.x33.X33SException;

import eo.common.constant.JCRStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.util.JCRUtilCommon;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.common.JCCScreenConst;
import eo.web.webview.common.JCRScreenConst;
import eo.web.webview.common.JCRWebCommon;
import eo.web.webview.mapping.CRSV0160_CRSV0160OPDBMapper;
import eo.web.webview.mapping.CRSV0161_CRSV0161OPDBMapper;
import eo.web.webview.mapping.CRSV0162_CRSV0162OPDBMapper;

/**
 * クエリ更新ビューロジック.<p>
 * <BR>
 * @author 富士通
 */
@SuppressWarnings("serial")
public class CRW04503SFLogic extends JCCWebBusinessLogic
{

	/**
	 * 親クラスX31BWebBusinessLogicのreceiveMessageWebを
	 * オーバーライドして自動生成されたメソッドです。
	 * @param arg0 (I) イベント情報
	 * @param arg1 (I) WebFWでは使用しません
	 * @param arg2 (I) WebFWでは使用しません
	 * @return 処理結果（true:正常終了、false:エラー）
	 * @throws X33SException X33SException
	 */
	@Override
	protected boolean receiveMessageWeb(X31CID arg0, Object arg1,EventObject arg2) throws X33SException
	{
		return false;
	}

	/**
	 * 初期表示処理.<br>
	 * 初期表示を行う。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean initUpd() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// (a)画面情報設定部品（JCRWebCommon.getScreenInfo)を使用し、引継情報を取得する。
		HashMap<String, Object> inMap = JCRWebCommon.getScreenInfo(this);

		// (b)クエリ番号を取得する
		String queryNo = (String)inMap.get(JCRStrConst.KEY_QUERY_NO);

		// (2)サービスフォームBeanの設定
		// (a)システム日付の取得
		String sysDate = JCRWebCommon.getSysDate();

		// (b)サービスフォームBean項目の設定
		bean.sendMessageString(CRW04503SFConst.KEY_BASE_YMD, X31CWebConst.DATABEAN_SET_VALUE, sysDate);
		bean.sendMessageString(CRW04503SFConst.KEY_CD_SBT_CD, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.CD_SBT_QUERY_JOKEN_CD);
		bean.sendMessageString(CRW04503SFConst.KEY_QUERY_NO, X31CWebConst.DATABEAN_SET_VALUE, queryNo);

		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0160");

		// マッピングクラス
		CRSV0160_CRSV0160OPDBMapper mapper = new CRSV0160_CRSV0160OPDBMapper();

		// マッピング処理（上り）
		mapper.setCRSV016001SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETQUERYVALUEFORCMBCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCRSV016002SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setCRSV016003SC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);
		mapper.setGETQUERYKMK1RCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// (a)サービスの処理結果を取得する。
		// マッピング処理（下り）
		mapper.getCRSV016001SC(paramBean, outputMap);
		mapper.getGETQUERYVALUEFORCMBCC(paramBean, outputMap);
		mapper.getCRSV016002SC(paramBean, outputMap);
		mapper.getCRSV016003SC(paramBean, outputMap);
		mapper.getGETQUERYKMK1RCC(paramBean, outputMap);

		// (b)サービスフォームBeanの設定
		// 項目名選択インデックスに"0"を設定
		X31SDataBeanAccess queryKmkBean = bean.getDataBeanArray(CRW04503SFConst.QUERY_KMK).getDataBean(0);
		queryKmkBean.sendMessageString(CRW04503SFConst.L0_QUERY_KMK_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// 行追加処理
		addRow(bean);

		// OR条件リスト項目名が0件でない場合
		String fieldTypeCd = null;
		if ((Integer)queryKmkBean.sendMessage(CRW04503SFConst.L0_FIELD_TYPE_CD_01, X31CWebConst.DATABEAN_GET_COUNT) != 0)
		{
			// フィールドタイプコードの設定
			fieldTypeCd = queryKmkBean.sendMessageString(CRW04503SFConst.L0_FIELD_TYPE_CD_01, X31CWebConst.DATABEAN_GET_VALUE, 0);
			bean.sendMessageString(CRW04503SFConst.FIELD_TYPE_CD, X31CWebConst.DATABEAN_SET_VALUE, fieldTypeCd);
		}

		// ボタン制御設定
		bean.sendMessageString(CRW04503SFConst.B_DELETE_OR_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);

		// AND条件リストが5明細の場合、OR条件追加ボタンを非活性に設定
		X31SDataBeanAccessArray andJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_AND_JOKEN);
		if (andJoken.getCount() == 5)
		{
			bean.sendMessageString(CRW04503SFConst.B_SET_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		}

		// 退避項目設定
		bean.sendMessageString(CRW04503SFConst.BK_QUERY_NM, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageString(CRW04503SFConst.QUERY_NM, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageBoolean(CRW04503SFConst.BK_USER_TYPE_CD, X31CWebConst.DATABEAN_SET_VALUE, 
				bean.sendMessageBoolean(CRW04503SFConst.USER_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE));
		bean.sendMessageString(CRW04503SFConst.BK_QUERY_KMK_INDEX, X31CWebConst.DATABEAN_SET_VALUE, 
				queryKmkBean.sendMessageString(CRW04503SFConst.L0_QUERY_KMK_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccessArray orJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN);
		X31SDataBeanAccess orJokenbean = orJoken.getDataBean(0);
		if (!JCRUtilCommon.isNull(fieldTypeCd))
		{
			bean.sendMessageString(CRW04503SFConst.BK_QUERY_VALUE_1, X31CWebConst.DATABEAN_SET_VALUE, 
					orJokenbean.sendMessageString(CRW04503SFConst.L3_QUERY_VALUE_1_04, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW04503SFConst.BK_QUERY_VALUE_2, X31CWebConst.DATABEAN_SET_VALUE, 
					orJokenbean.sendMessageString(CRW04503SFConst.L3_QUERY_VALUE_2_04, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW04503SFConst.BK_QUERY_VALUE_3, X31CWebConst.DATABEAN_SET_VALUE, 
					orJokenbean.sendMessageString(CRW04503SFConst.L3_QUERY_VALUE_3_04, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW04503SFConst.BK_QUERY_VALUE_4, X31CWebConst.DATABEAN_SET_VALUE, 
					orJokenbean.sendMessageString(CRW04503SFConst.L3_QUERY_VALUE_4_04, X31CWebConst.DATABEAN_GET_VALUE));
			bean.sendMessageString(CRW04503SFConst.BK_QUERY_VALUE_5, X31CWebConst.DATABEAN_SET_VALUE, 
					orJokenbean.sendMessageString(CRW04503SFConst.L3_QUERY_VALUE_5_04, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			bean.sendMessageString(CRW04503SFConst.BK_QUERY_VALUE_INDEX, X31CWebConst.DATABEAN_SET_VALUE, 
					orJokenbean.sendMessageString(CRW04503SFConst.L3_QUERY_VALUE_INDEX_04, X31CWebConst.DATABEAN_GET_VALUE));
		}
		bean.sendMessageString(CRW04503SFConst.BK_QUERY_JOKEN_INDEX, X31CWebConst.DATABEAN_SET_VALUE, 
				orJokenbean.sendMessageString(CRW04503SFConst.L3_QUERY_JOKEN_INDEX_04, X31CWebConst.DATABEAN_GET_VALUE));

		X31SDataBeanAccessArray bkAndJoken = bean.getDataBeanArray(CRW04503SFConst.BK_QUERY_AND_JOKEN);
		for (int i = 0; i < andJoken.getCount(); i++)
		{
			X31SDataBeanAccess andJokenBean = andJoken.getDataBean(i);
			X31SDataBeanAccess bkAndJokenBean = bkAndJoken.addDataBean();

			bkAndJokenBean.sendMessageString(CRW04503SFConst.L10_QUERY_KMK_KANRI_NO_11, X31CWebConst.DATABEAN_SET_VALUE, 
					andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_KANRI_NO_05, X31CWebConst.DATABEAN_GET_VALUE));
			bkAndJokenBean.sendMessageString(CRW04503SFConst.L10_QUERY_KMK_NO_11, X31CWebConst.DATABEAN_SET_VALUE, 
					andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_NO_05, X31CWebConst.DATABEAN_GET_VALUE));

			X31SDataBeanAccessArray andVal = andJokenBean.getDataBeanArray(CRW04503SFConst.L4_AND_QUERY_VALUE_LIST);
			X31SDataBeanAccessArray bkAndVal = bkAndJokenBean.getDataBeanArray(CRW04503SFConst.L10_AND_QUERY_VALUE_LIST);
			for (int j = 0; j < andVal.getCount(); j++)
			{
				X31SDataBeanAccess andValBean = andVal.getDataBean(j);
				X31SDataBeanAccess bkAndValBean = bkAndVal.addDataBean();

				// フィールドタイプコードがnullの場合
				String  queryValue = null;
				if (JCRUtilCommon.isNull(andJokenBean.sendMessageString(CRW04503SFConst.L4_FIELD_TYPE_CD_05, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					queryValue = andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_VALUE_CD_06, X31CWebConst.DATABEAN_GET_VALUE);
				}
				else
				{
					queryValue = andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_VALUE_06, X31CWebConst.DATABEAN_GET_VALUE);
				}

				bkAndValBean.sendMessageString(CRW04503SFConst.L11_QUERY_KMK_UC_NO_12, X31CWebConst.DATABEAN_SET_VALUE, 
						andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_KMK_UC_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
				bkAndValBean.sendMessageString(CRW04503SFConst.L11_QUERY_VALUE_12, X31CWebConst.DATABEAN_SET_VALUE, queryValue);
				bkAndValBean.sendMessageString(CRW04503SFConst.L11_QUERY_JOKEN_CD_12, X31CWebConst.DATABEAN_SET_VALUE, 
						andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_JOKEN_CD_06, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW04503);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW04503);

		return true;
	}

	/**
	 * OR条件追加ボタン押下.<br>
	 * OR条件に行追加する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean addOrJoken() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// (a)(b)(c)行追加処理
		addRow(bean);

		// (d)ボタン制御設定
		// OR条件削除ボタンを活性に設定
		bean.sendMessageString(CRW04503SFConst.B_DELETE_OR_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, "");

		// OR条件リストが5明細の場合、OR条件追加ボタンを非活性に設定
		X31SDataBeanAccessArray orJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN);
		if (orJoken.getCount() == 5)
		{
			bean.sendMessageString(CRW04503SFConst.B_ADD_OR_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		}

		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW04503);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW04503);

		return true;
	}

	/**
	 * 入力項目名コンボボックス変更.<br>
	 * 入力された項目名に関連するクエリ値、クエリ条件を返す。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean choiceInputField() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// (a)クエリ値リストテンプレート、フィールドタイプコードのクリア
		bean.getDataBeanArray(CRW04503SFConst.QUERY_VALUE_TMP).clearArray();
		bean.sendMessage(CRW04503SFConst.FIELD_TYPE_CD, X31CWebConst.DATABEAN_CLEAR);

		// (b)フィールドタイプコードの設定
		X31SDataBeanAccess queryKmkBean = bean.getDataBeanArray(CRW04503SFConst.QUERY_KMK).getDataBean(0);
		int queryKmkIdx = Integer.parseInt(queryKmkBean.sendMessageString(CRW04503SFConst.L0_QUERY_KMK_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE));
		String fieldTypeCd = queryKmkBean.sendMessageString(CRW04503SFConst.L0_FIELD_TYPE_CD_01, X31CWebConst.DATABEAN_GET_VALUE, queryKmkIdx);
		bean.sendMessageString(CRW04503SFConst.FIELD_TYPE_CD, X31CWebConst.DATABEAN_SET_VALUE, fieldTypeCd);

		// フィールドタイプコードがnullの場合
		if (JCRUtilCommon.isNull(fieldTypeCd))
		{
			// (3)サービス呼出処理
			// マッピングクラスを使用する為、配列化
			X31SDataBeanAccess[] paramBean = {bean};

			// ユースケースID格納
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0162");

			// マッピングクラス
			CRSV0162_CRSV0162OPDBMapper mapper = new CRSV0162_CRSV0162OPDBMapper();

			// マッピング処理（上り）
			mapper.setGETQUERYVALUEFORCMBCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

			// サービス実行
			invokeService(paramMap, dataMap, outputMap);

			// (4)サービス処理結果の設定
			// (a)サービスの処理結果を取得する。
			// マッピング処理（下り）
			mapper.getGETQUERYVALUEFORCMBCC(paramBean, outputMap);
		}

		// (c)(d)(e)サービスフォームBeanの設定
		// OR条件リストの明細数を取得
		X31SDataBeanAccessArray orJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN);
		int orJokenCnt = orJoken.getCount();

		// OR条件リストのクリア
		bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN).clearArray();

		// 行追加処理
		for (int i = 0; i < orJokenCnt; i++)
		{
			addRow(bean);
		}

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW04503);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW04503);

		return true;
	}

	/**
	 * OR条件削除ボタン押下.<br>
	 * 選択されたOR条件の行を削除する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean deleteOrJoken() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// (a)選択された明細を、OR条件リストより削除
		X31SDataBeanAccessArray orJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN);
		orJoken.removeDataBean(Integer.parseInt(bean.sendMessageString(CRW04503SFConst.OR_JOKEN_DEL_INDEX, X31CWebConst.DATABEAN_GET_VALUE)));

		// (b)ボタン制御設定
		if (orJoken.getCount() == 1)
		{
			// OR条件リストが1明細の場合、OR条件削除ボタンを非活性に設定
			bean.sendMessageString(CRW04503SFConst.B_DELETE_OR_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
		}
		else
		{
			// OR条件リストが1明細でない場合、OR条件削除ボタン、OR条件追加ボタンを活性に設定
			bean.sendMessageString(CRW04503SFConst.B_DELETE_OR_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, "");
			bean.sendMessageString(CRW04503SFConst.B_ADD_OR_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_ACTIVE);
		}

		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW04503);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW04503);

		return true;
	}

	/**
	 * 設定ボタン押下.<br>
	 * OR条件をAND条件に設定する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean set() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// (a)(b)AND条件リストに設定
		HashMap<String, String> queryValueTmpMap = new HashMap<String, String>();
		HashMap<String, String> queryJokenTmpMap = new HashMap<String, String>();
		X31SDataBeanAccessArray queryValueTmp = bean.getDataBeanArray(CRW04503SFConst.QUERY_VALUE_TMP);
		X31SDataBeanAccessArray queryJokeneTmp = bean.getDataBeanArray(CRW04503SFConst.QUERY_JOKEN_TMP);
		// クエリ値リストテンプレートのデータをHashMapに保持
		for (int i = 0; i < queryValueTmp.getCount(); i++)
		{
			X31SDataBeanAccess tmpBean = queryValueTmp.getDataBean(i);
			String code = tmpBean.sendMessageString(CRW04503SFConst.L7_QUERY_VALUE_CD_08, X31CWebConst.DATABEAN_GET_VALUE);
			String name = tmpBean.sendMessageString(CRW04503SFConst.L7_QUERY_VALUE_08, X31CWebConst.DATABEAN_GET_VALUE);
			queryValueTmpMap.put(code, name);
		}
		// 条件リストテンプレートのデータをHashMapに保持
		for (int i = 0; i < queryJokeneTmp.getCount(); i++)
		{
			X31SDataBeanAccess tmpBean = queryJokeneTmp.getDataBean(i);
			String code = tmpBean.sendMessageString(CRW04503SFConst.L6_QUERY_JOKEN_CD_07, X31CWebConst.DATABEAN_GET_VALUE);
			String name = tmpBean.sendMessageString(CRW04503SFConst.L6_QUERY_JOKEN_CD_NM_07, X31CWebConst.DATABEAN_GET_VALUE);
			queryJokenTmpMap.put(code, name);
		}

		X31SDataBeanAccess queryKmkBean = bean.getDataBeanArray(CRW04503SFConst.QUERY_KMK).getDataBean(0);
		X31SDataBeanAccessArray orJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN);
		X31SDataBeanAccessArray andJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_AND_JOKEN);
		X31SDataBeanAccess andJokenBean = null;

		String andJokenEditIdx = bean.sendMessageString(CRW04503SFConst.AND_JOKEN_EDIT_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		int lineNum;

		// AND条件編集に値が設定されていない場合
		if (JCRUtilCommon.isNull(andJokenEditIdx))
		{
			// AND条件リストに新規登録
			andJokenBean = andJoken.addDataBean();
			lineNum = andJoken.getCount();
		}
		else
		{
			// AND条件リストを編集
			andJokenBean = andJoken.getDataBean(Integer.parseInt(andJokenEditIdx));
			lineNum = Integer.parseInt(andJokenEditIdx) + 1;
		}

		// 編集クエリ項目番号がnullでない場合、クエリ項目内訳削除リストを設定
		X31SDataBeanAccessArray andValue = andJokenBean.getDataBeanArray(CRW04503SFConst.L4_AND_QUERY_VALUE_LIST);
		if (!JCRUtilCommon.isNull(bean.sendMessageString(CRW04503SFConst.EDIT_QUERY_KMK_NO, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// OR条件リストのクエリ項目内訳番号をリストに保持
			ArrayList<String> queryKmkUcNoList = new ArrayList<String>();
			for (int i = 0; i < orJoken.getCount(); i++)
			{
				X31SDataBeanAccess orJokenBean = orJoken.getDataBean(i);
				queryKmkUcNoList.add(orJokenBean.sendMessageString(CRW04503SFConst.L3_QUERY_KMK_UC_NO_04, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// クエリ項目名が変更されている場合
			if (isChangeQueryKmkNm(bean))
			{
				X31SDataBeanAccessArray uwDelList = bean.getDataBeanArray(CRW04503SFConst.QUERY_KMK_UC_DEL_LIST);
				for (int i = 0; i < andValue.getCount(); i++)
				{
					X31SDataBeanAccess andValBean = andValue.getDataBean(i);

					// クエリ項目内訳番号がnullでない場合
					if (!JCRUtilCommon.isNull(andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_KMK_UC_NO_06, X31CWebConst.DATABEAN_GET_VALUE)))
					{
						// AND条件リストクエリ値リストをクエリ項目内訳削除リストに設定
						X31SDataBeanAccess uwDelListBean = uwDelList.addDataBean();

						uwDelListBean.sendMessageString(CRW04503SFConst.L9_QUERY_KMK_NO_10, X31CWebConst.DATABEAN_SET_VALUE, 
								bean.sendMessageString(CRW04503SFConst.EDIT_QUERY_KMK_NO, X31CWebConst.DATABEAN_GET_VALUE));
						uwDelListBean.sendMessageString(CRW04503SFConst.L9_QUERY_KMK_UC_NO_10, X31CWebConst.DATABEAN_SET_VALUE, 
								andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_KMK_UC_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
						uwDelListBean.sendMessageString(CRW04503SFConst.L9_QUWK_UPD_DTM_10, X31CWebConst.DATABEAN_SET_VALUE,
								andValBean.sendMessageString(CRW04503SFConst.L5_QUWK_UPD_DTM_06, X31CWebConst.DATABEAN_GET_VALUE));
					}
				}
			}
			else
			{
				X31SDataBeanAccessArray uwDelList = bean.getDataBeanArray(CRW04503SFConst.QUERY_KMK_UC_DEL_LIST);
				for (int i = 0; i < andValue.getCount(); i++)
				{
					X31SDataBeanAccess andValBean = andValue.getDataBean(i);

					// AND条件リストクエリ値リストのクエリ項目内訳番号がOR条件リストのクエリ項目内訳番号にない場合
					if (!queryKmkUcNoList.contains(
							andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_KMK_UC_NO_06, X31CWebConst.DATABEAN_GET_VALUE)))
					{
						// AND条件リストクエリ値リストをクエリ項目内訳削除リストに設定
						X31SDataBeanAccess uwDelListBean = uwDelList.addDataBean();

						uwDelListBean.sendMessageString(CRW04503SFConst.L9_QUERY_KMK_NO_10, X31CWebConst.DATABEAN_SET_VALUE, 
								bean.sendMessageString(CRW04503SFConst.EDIT_QUERY_KMK_NO, X31CWebConst.DATABEAN_GET_VALUE));
						uwDelListBean.sendMessageString(CRW04503SFConst.L9_QUERY_KMK_UC_NO_10, X31CWebConst.DATABEAN_SET_VALUE, 
								andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_KMK_UC_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
						uwDelListBean.sendMessageString(CRW04503SFConst.L9_QUWK_UPD_DTM_10, X31CWebConst.DATABEAN_SET_VALUE,
								andValBean.sendMessageString(CRW04503SFConst.L5_QUWK_UPD_DTM_06, X31CWebConst.DATABEAN_GET_VALUE));
					}
				}
			}
		}

		// AND条件リストを設定
		String queryKmkIdx = queryKmkBean.sendMessageString(CRW04503SFConst.L0_QUERY_KMK_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE);
		String queryKmkKanriNo = JCRWebCommon.getPullDownName(bean, CRW04503SFConst.QUERY_KMK, CRW04503SFConst.L0_QUERY_KMK_INDEX_01, 
				CRW04503SFConst.L0_QUERY_KMK_KANRI_NO_01, CRW04503SFConst.L0_QUERY_KMK_KANRI_NO_01);
		String queryKmkNm = JCRWebCommon.getPullDownName(bean, CRW04503SFConst.QUERY_KMK, 
				CRW04503SFConst.L0_QUERY_KMK_INDEX_01, CRW04503SFConst.L0_QUERY_KMK_KANRI_NO_01, CRW04503SFConst.L0_QUERY_KMK_NM_01);
		String fieldTypeCd = JCRWebCommon.getPullDownName(bean, CRW04503SFConst.QUERY_KMK, 
				CRW04503SFConst.L0_QUERY_KMK_INDEX_01, CRW04503SFConst.L0_QUERY_KMK_KANRI_NO_01, CRW04503SFConst.L0_FIELD_TYPE_CD_01);
		andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_INDEX_05, X31CWebConst.DATABEAN_SET_VALUE, queryKmkIdx);
		andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_KANRI_NO_05, X31CWebConst.DATABEAN_SET_VALUE, queryKmkKanriNo);
		andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_NO_05, X31CWebConst.DATABEAN_SET_VALUE, bean.sendMessageString(CRW04503SFConst.EDIT_QUERY_KMK_NO, X31CWebConst.DATABEAN_GET_VALUE));
		andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_NM_05, X31CWebConst.DATABEAN_SET_VALUE, queryKmkNm);
		andJokenBean.sendMessageString(CRW04503SFConst.L4_FIELD_TYPE_CD_05, X31CWebConst.DATABEAN_SET_VALUE, fieldTypeCd);
		andJokenBean.sendMessageString(CRW04503SFConst.L4_LINE_STYLE_05, X31CWebConst.DATABEAN_SET_VALUE, eo.web.webview.common.JCRWebCommon.getLineStyle(lineNum));

		// AND条件リストクエリ値リストにOR条件リストを設定
		andJokenBean.getDataBeanArray(CRW04503SFConst.L4_AND_QUERY_VALUE_LIST).clearArray();
		andValue = andJokenBean.getDataBeanArray(CRW04503SFConst.L4_AND_QUERY_VALUE_LIST);
		for (int i = 0; i < orJoken.getCount(); i++)
		{
			X31SDataBeanAccess orJokenBean = orJoken.getDataBean(i);
			X31SDataBeanAccess andValBean = andValue.addDataBean();

			// フィールドタイプコードがnullの場合
			if (JCRUtilCommon.isNull(fieldTypeCd))
			{
				String  orValIdx = orJokenBean.sendMessageString(CRW04503SFConst.L3_QUERY_VALUE_INDEX_04, X31CWebConst.DATABEAN_GET_VALUE);
				andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_VALUE_CD_06, X31CWebConst.DATABEAN_SET_VALUE, orValIdx);
				andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_VALUE_CD_NM_06, X31CWebConst.DATABEAN_SET_VALUE, queryValueTmpMap.get(orValIdx));
			}
			else
			{
				String queryValue = JCRWebCommon.editQueryValue(orJokenBean, 
						new String[] {CRW04503SFConst.L3_QUERY_VALUE_1_04, CRW04503SFConst.L3_QUERY_VALUE_2_04, CRW04503SFConst.L3_QUERY_VALUE_3_04,
						CRW04503SFConst.L3_QUERY_VALUE_4_04, CRW04503SFConst.L3_QUERY_VALUE_5_04}, fieldTypeCd);
				andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_VALUE_06, X31CWebConst.DATABEAN_SET_VALUE, queryValue);
			}

			String  orJokenIdx = orJokenBean.sendMessageString(CRW04503SFConst.L3_QUERY_JOKEN_INDEX_04, X31CWebConst.DATABEAN_GET_VALUE);
			andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_JOKEN_CD_06, X31CWebConst.DATABEAN_SET_VALUE, orJokenIdx);
			andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_JOKEN_CD_NM_06, X31CWebConst.DATABEAN_SET_VALUE, queryJokenTmpMap.get(orJokenIdx));
			andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_KMK_UC_NO_06, X31CWebConst.DATABEAN_SET_VALUE, 
					orJokenBean.sendMessageString(CRW04503SFConst.L3_QUERY_KMK_UC_NO_04, X31CWebConst.DATABEAN_GET_VALUE));
			andValBean.sendMessageString(CRW04503SFConst.L5_QUWK_UPD_DTM_06, X31CWebConst.DATABEAN_SET_VALUE, 
					orJokenBean.sendMessageString(CRW04503SFConst.L3_QUWK_UPD_DTM_04, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// (c)OR条件リスト、クエリ値リストテンプレートのクリア
		bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN).clearArray();
		bean.getDataBeanArray(CRW04503SFConst.QUERY_VALUE_TMP).clearArray();

		// (d)項目名選択インデックスに"0"を設定
		queryKmkBean.sendMessageString(CRW04503SFConst.L0_QUERY_KMK_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, "0");

		// (e)フィールドタイプコードの設定
		fieldTypeCd = queryKmkBean.sendMessageString(CRW04503SFConst.L0_FIELD_TYPE_CD_01, X31CWebConst.DATABEAN_GET_VALUE, 0);
		bean.sendMessageString(CRW04503SFConst.FIELD_TYPE_CD, X31CWebConst.DATABEAN_SET_VALUE, fieldTypeCd);

		// フィールドタイプコードがnullの場合
		if (JCRUtilCommon.isNull(fieldTypeCd))
		{
			// (3)サービス呼出処理
			// マッピングクラスを使用する為、配列化
			X31SDataBeanAccess[] paramBean = {bean};

			// ユースケースID格納
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0162");

			// マッピングクラス
			CRSV0162_CRSV0162OPDBMapper mapper = new CRSV0162_CRSV0162OPDBMapper();

			// マッピング処理（上り）
			mapper.setGETQUERYVALUEFORCMBCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

			// サービス実行
			invokeService(paramMap, dataMap, outputMap);

			// (4)サービス処理結果の設定
			// (a)サービスの処理結果を取得する。
			// マッピング処理（下り）
			mapper.getGETQUERYVALUEFORCMBCC(paramBean, outputMap);
		}

		// (c)行追加処理
		bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN).clearArray();
		addRow(bean);

		// (d)ボタン制御設定
		// AND条件リストが5明細の場合、OR条件追加ボタンを非活性に設定
		if (andJoken.getCount() == 5)
		{
			bean.sendMessageString(CRW04503SFConst.B_SET_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		}
		bean.sendMessageString(CRW04503SFConst.B_DELETE_OR_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
		bean.sendMessageString(CRW04503SFConst.B_DELETE_AND_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(CRW04503SFConst.B_ADD_OR_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_ACTIVE);

		// (e)AND条件編集インデックス、編集クエリ項目番号の設定
		bean.sendMessageString(CRW04503SFConst.AND_JOKEN_EDIT_INDEX, X31CWebConst.DATABEAN_SET_VALUE, "");
		bean.sendMessageString(CRW04503SFConst.EDIT_QUERY_KMK_NO, X31CWebConst.DATABEAN_SET_VALUE, "");

		// (f)AND条件変更有無フラグ設定
		bean.sendMessageBoolean(CRW04503SFConst.AND_JOKEN_CHANGE_FLG, X31CWebConst.DATABEAN_SET_VALUE, isChangeAndJoken(bean));

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW04503);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW04503);

		return true;
	}

	/**
	 * AND条件削除ボタン押下.<br>
	 * 選択されたAND条件の行を削除する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean deleteAndJoken() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// (a)選択された明細を、クエリ項目削除リスト、クエリ項目内訳削除リストに設定
		X31SDataBeanAccessArray andJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_AND_JOKEN);
		X31SDataBeanAccessArray delList = bean.getDataBeanArray(CRW04503SFConst.QUERY_KMK_DEL_LIST);
		X31SDataBeanAccessArray uwDelList = bean.getDataBeanArray(CRW04503SFConst.QUERY_KMK_UC_DEL_LIST);
		int andJokenDelIndex = Integer.parseInt(bean.sendMessageString(CRW04503SFConst.AND_JOKEN_DEL_INDEX, X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccess andJokenBean = andJoken.getDataBean(andJokenDelIndex);
		// クエリ項目番号がnullでない場合
		if (!JCRUtilCommon.isNull(andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_NO_05, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// クエリ項目削除リストの設定
			X31SDataBeanAccess delListBean = delList.addDataBean();
			delListBean.sendMessageString(CRW04503SFConst.L8_QUERY_KMK_NO_09, X31CWebConst.DATABEAN_SET_VALUE, 
					andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_NO_05, X31CWebConst.DATABEAN_GET_VALUE));
			delListBean.sendMessageString(CRW04503SFConst.L8_QKMK_UPD_DTM_09, X31CWebConst.DATABEAN_SET_VALUE,
					andJokenBean.sendMessageString(CRW04503SFConst.L4_QKMK_UPD_DTM_05, X31CWebConst.DATABEAN_GET_VALUE));

			X31SDataBeanAccessArray andValue = andJokenBean.getDataBeanArray(CRW04503SFConst.L4_AND_QUERY_VALUE_LIST);
			for (int i = 0; i < andValue.getCount(); i++)
			{
				// クエリ項目内訳削除リストの設定
				X31SDataBeanAccess andValueBean = andValue.getDataBean(i);
				X31SDataBeanAccess uwDelListBean = uwDelList.addDataBean();
				uwDelListBean.sendMessageString(CRW04503SFConst.L9_QUERY_KMK_NO_10, X31CWebConst.DATABEAN_SET_VALUE, 
						andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_NO_05, X31CWebConst.DATABEAN_GET_VALUE));
				uwDelListBean.sendMessageString(CRW04503SFConst.L9_QUERY_KMK_UC_NO_10, X31CWebConst.DATABEAN_SET_VALUE, 
						andValueBean.sendMessageString(CRW04503SFConst.L5_QUERY_KMK_UC_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
				uwDelListBean.sendMessageString(CRW04503SFConst.L9_QUWK_UPD_DTM_10, X31CWebConst.DATABEAN_SET_VALUE,
						andValueBean.sendMessageString(CRW04503SFConst.L5_QUWK_UPD_DTM_06, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}

		// (b)選択された明細を、OR条件リストより削除
		andJoken.removeDataBean(andJokenDelIndex);

		// (c)ボタン制御設定
		bean.sendMessageString(CRW04503SFConst.B_SET_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_ACTIVE);

		// (d)行スタイル設定
		for (int i = 0; i < andJoken.getCount(); i++)
		{
			andJokenBean = andJoken.getDataBean(i);
			andJokenBean.sendMessageString(CRW04503SFConst.L4_LINE_STYLE_05, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.getLineStyle(i + 1));
		}

		// (e)AND条件変更有無フラグ設定
		bean.sendMessageBoolean(CRW04503SFConst.AND_JOKEN_CHANGE_FLG, X31CWebConst.DATABEAN_SET_VALUE, Boolean.TRUE);

		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW04503);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW04503);

		return true;
	}

	/**
	 * AND条件編集ボタン押下.<br>
	 * 選択されたAND条件の行を編集する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean addAndJoken() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// (a)OR条件リスト、クエリ値リストテンプレートのクリア
		bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN).clearArray();
		bean.getDataBeanArray(CRW04503SFConst.QUERY_VALUE_TMP).clearArray();

		// (b)行スタイル設定
		X31SDataBeanAccessArray andJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_AND_JOKEN);
		for (int i = 0; i < andJoken.getCount(); i++)
		{
			X31SDataBeanAccess andJokenBean = andJoken.getDataBean(i);
			andJokenBean.sendMessageString(CRW04503SFConst.L4_LINE_STYLE_05, X31CWebConst.DATABEAN_SET_VALUE, JCRWebCommon.getLineStyle(i + 1));
		}

		// (c)フィールドタイプコードの設定
		int andJokenEditIndex = Integer.parseInt(bean.sendMessageString(CRW04503SFConst.AND_JOKEN_EDIT_INDEX, X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccess andJokenBean = andJoken.getDataBean(andJokenEditIndex);
		String fieldTypeCd = andJokenBean.sendMessageString(CRW04503SFConst.L4_FIELD_TYPE_CD_05, X31CWebConst.DATABEAN_GET_VALUE);
		bean.sendMessageString(CRW04503SFConst.FIELD_TYPE_CD, X31CWebConst.DATABEAN_SET_VALUE, fieldTypeCd);

		// (d)OR条件リスト項目名リストの設定
		X31SDataBeanAccess queryKmkBean = bean.getDataBeanArray(CRW04503SFConst.QUERY_KMK).getDataBean(0);
		queryKmkBean.sendMessageString(CRW04503SFConst.L0_QUERY_KMK_INDEX_01, X31CWebConst.DATABEAN_SET_VALUE, 
				andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_INDEX_05, X31CWebConst.DATABEAN_GET_VALUE));

		// (e)編集クエリ項目番号の設定
		bean.sendMessageString(CRW04503SFConst.EDIT_QUERY_KMK_NO, X31CWebConst.DATABEAN_SET_VALUE, 
				andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_NO_05, X31CWebConst.DATABEAN_GET_VALUE));

		// フィールドタイプコードがnullの場合
		if (JCRUtilCommon.isNull(fieldTypeCd))
		{
			// (3)サービス呼出処理
			// マッピングクラスを使用する為、配列化
			X31SDataBeanAccess[] paramBean = {bean};

			// ユースケースID格納
			paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0162");

			// マッピングクラス
			CRSV0162_CRSV0162OPDBMapper mapper = new CRSV0162_CRSV0162OPDBMapper();

			// マッピング処理（上り）
			mapper.setGETQUERYVALUEFORCMBCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

			// サービス実行
			invokeService(paramMap, dataMap, outputMap);

			// (4)サービス処理結果の設定
			// (a)サービスの処理結果を取得する。
			// マッピング処理（下り）
			mapper.getGETQUERYVALUEFORCMBCC(paramBean, outputMap);
		}

		// (c)(d)OR条件リストの設定
		X31SDataBeanAccessArray andValList = andJokenBean.getDataBeanArray(CRW04503SFConst.L4_AND_QUERY_VALUE_LIST);
		for (int i = 0; i < andValList.getCount(); i++)
		{
			// 行追加処理
			addRow(bean);

			X31SDataBeanAccess andValListBean = andValList.getDataBean(i);
			X31SDataBeanAccessArray orJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN);
			X31SDataBeanAccess orJokenBean = orJoken.getDataBean(orJoken.getCount() - 1);
			JCRWebCommon.setSplitQueryValue(orJokenBean, 
					andValListBean.sendMessageString(CRW04503SFConst.L5_QUERY_VALUE_06, X31CWebConst.DATABEAN_GET_VALUE),
					new String[] {CRW04503SFConst.L3_QUERY_VALUE_1_04, CRW04503SFConst.L3_QUERY_VALUE_2_04, CRW04503SFConst.L3_QUERY_VALUE_3_04, 
					CRW04503SFConst.L3_QUERY_VALUE_4_04, CRW04503SFConst.L3_QUERY_VALUE_5_04}, fieldTypeCd);
			orJokenBean.sendMessageString(CRW04503SFConst.L3_QUERY_VALUE_INDEX_04, X31CWebConst.DATABEAN_SET_VALUE, 
					andValListBean.sendMessageString(CRW04503SFConst.L5_QUERY_VALUE_CD_06, X31CWebConst.DATABEAN_GET_VALUE));
			orJokenBean.sendMessageString(CRW04503SFConst.L3_QUERY_JOKEN_INDEX_04, X31CWebConst.DATABEAN_SET_VALUE, 
					andValListBean.sendMessageString(CRW04503SFConst.L5_QUERY_JOKEN_CD_06, X31CWebConst.DATABEAN_GET_VALUE));
			orJokenBean.sendMessageString(CRW04503SFConst.L3_QUERY_KMK_UC_NO_04, X31CWebConst.DATABEAN_SET_VALUE, 
					andValListBean.sendMessageString(CRW04503SFConst.L5_QUERY_KMK_UC_NO_06, X31CWebConst.DATABEAN_GET_VALUE));
			orJokenBean.sendMessageString(CRW04503SFConst.L3_QUWK_UPD_DTM_04, X31CWebConst.DATABEAN_SET_VALUE, 
					andValListBean.sendMessageString(CRW04503SFConst.L5_QUWK_UPD_DTM_06, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// (e)ボタン制御設定
		bean.sendMessageString(CRW04503SFConst.B_SET_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_ACTIVE);
		bean.sendMessageString(CRW04503SFConst.B_DELETE_AND_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);

		if (bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN).getCount() == 1)
		{
			bean.sendMessageString(CRW04503SFConst.B_DELETE_OR_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_STRING);
		}
		else
		{
			bean.sendMessageString(CRW04503SFConst.B_DELETE_OR_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, "");
		}

		if (bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN).getCount() < 5)
		{
			bean.sendMessageString(CRW04503SFConst.B_ADD_OR_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_ACTIVE);
		}
		else
		{
			bean.sendMessageString(CRW04503SFConst.B_ADD_OR_JOKEN_DISABLED, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.DISABLED_DEACTIVE);
		}

		// (f)行スタイル設定
		andJokenBean.sendMessageString(CRW04503SFConst.L4_LINE_STYLE_05, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.LINE_STYLE_EDIT);

		// (5)引継情報の設定
		// なし。

		// (6)共有フォームビーンの設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW04503);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW04503);

		return true;
	}

	/**
	 * 更新確認ボタン押下.<br>
	 * 入力チェックを行い、エラーがない場合は、クエリ更新確認画面に遷移する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean confirmUpd() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();
// ANK-3656-00-00 ADD START
		// AND条件の総件数
		int tatalJknCnt = 0;
		// B6(〜を含まない)の件数
		int b6Cnt = 0;
		X31SDataBeanAccessArray arraybean = bean.getDataBeanArray(CRW04503SFConst.QUERY_AND_JOKEN);
		// AND条件を総当たりして、B6の件数をカウントする。
		for(int i = 0; i < arraybean.getCount(); i++){
			X31SDataBeanAccess subbean = arraybean.getDataBean(i);
			X31SDataBeanAccessArray subArraybean = subbean.getDataBeanArray(CRW04503SFConst.L4_AND_QUERY_VALUE_LIST);
			for(int j = 0; j < subArraybean.getCount(); j++){
				X31SDataBeanAccess subbeanDetail = subArraybean.getDataBean(j);
				tatalJknCnt += 1;
				if ("B6".equals(subbeanDetail.sendMessageString(CRW04503SFConst.L5_QUERY_JOKEN_CD_06, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					b6Cnt += 1;
				}
			}
		}
		// AND条件の総件数とB6の件数が同じだったら、「〜を含まない」しか条件設定されていないのでワーニング出力
		if (tatalJknCnt == b6Cnt)
		{
			JCRWebCommon.setMessageInfo(this, "EKBF340--W");
		}
// ANK-3656-00-00 ADD END
		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// サービスフォームBeanの設定
		// なし。

		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0161");

		// マッピングクラス
		CRSV0161_CRSV0161OPDBMapper mapper = new CRSV0161_CRSV0161OPDBMapper();

		// マッピング処理（上り）
		mapper.setUPDATEQUERYINFOCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_2);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// (a)行スタイル設定
		String andJokenEditIdx = bean.sendMessageString(CRW04503SFConst.AND_JOKEN_EDIT_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		// AND条件が編集中の場合
		if (!JCRUtilCommon.isNull(andJokenEditIdx))
		{
			X31SDataBeanAccessArray andJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_AND_JOKEN);
			X31SDataBeanAccess andJokenBean = andJoken.getDataBean(Integer.parseInt(andJokenEditIdx));
			andJokenBean.sendMessageString(CRW04503SFConst.L4_LINE_STYLE_05, X31CWebConst.DATABEAN_SET_VALUE, 
					JCRWebCommon.getLineStyle(Integer.parseInt(andJokenEditIdx) + 1));
		}

		// (5)引継情報の設定
		// なし。

		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW04504);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW04504);

		return true;
	}

	/**
	 * 確定ボタン押下.<br>
	 * クエリ、クエリ項目、クエリ項目内訳を登録する。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean fix() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// ユースケースID格納用マップ
		HashMap<String, Object> paramMap = new HashMap<String, Object>();

		// マッピング用Map
		HashMap<String, Object> dataMap = new HashMap<String, Object>();

		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// なし。

		// (3)サービス呼出処理
		// マッピングクラスを使用する為、配列化
		X31SDataBeanAccess[] paramBean = {bean, commoninfoBean};

		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, "CRSV0161");

		// マッピングクラス
		CRSV0161_CRSV0161OPDBMapper mapper = new CRSV0161_CRSV0161OPDBMapper();

		// マッピング処理（上り）
		mapper.setUPDATEQUERYINFOCC(paramBean, dataMap, JPCModelConstant.FUNC_CD_1);

		// サービス実行
		invokeService(paramMap, dataMap, outputMap);

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// (a)戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
		JCRWebCommon.setScreenId(this, JCRScreenConst.SCREEN_ID_CRW04401, JCRScreenConst.SCREEN_ID_CRW04504);

		// (b)次画面への引継情報(dataMap)を作成する。
		paramMap.put(JCRStrConst.KEY_REFRESH_TYPE, JCRStrConst.QUERY_ALL_REFRESH);

		// (c)画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		JCRWebCommon.setScreenInfo(this, JCRScreenConst.SCREEN_ID_CRW04401, paramMap);

		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCCScreenConst.SCREEN_ID_CCW00105);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCCScreenConst.SCREEN_NAME_CCW00105);

		return true;
	}

	/**
	 * キャンセルボタン押下.<br>
	 * クエリ更新画面に戻る。
	 * 
	 * @return boolean
	 * @throws Exception Exception
	 */
	public boolean cancel() throws Exception
	{
		// サービスフォームBeanの内容の取得
		X31SDataBeanAccess bean = getServiceFormBean();

		// 共通フォームBeanの内容を取得
		X31SDataBeanAccess commoninfoBean = getCommonInfoBean();

		// (1)引継情報の取得
		// なし。

		// (2)サービスフォームBeanの設定
		// (a)行スタイル設定
		String andJokenEditIdx = bean.sendMessageString(CRW04503SFConst.AND_JOKEN_EDIT_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		// AND条件が編集中の場合
		if (!JCRUtilCommon.isNull(andJokenEditIdx))
		{
			X31SDataBeanAccessArray andJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_AND_JOKEN);
			X31SDataBeanAccess andJokenBean = andJoken.getDataBean(Integer.parseInt(andJokenEditIdx));
			andJokenBean.sendMessageString(CRW04503SFConst.L4_LINE_STYLE_05, X31CWebConst.DATABEAN_SET_VALUE, JCRStrConst.LINE_STYLE_EDIT);
		}

		// (3)サービス呼出処理
		// なし。

		// (4)サービス処理結果の設定
		// なし。

		// (5)引継情報の設定
		// なし。

		// (6)遷移先画面の設定
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_ID_CRW04503);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME
				, X31CWebConst.DATABEAN_SET_VALUE, JCRScreenConst.SCREEN_NAME_CRW04503);

		return true;
	}

	/**
	 * 行追加処理.<br>
	 * OR条件リストに行を追加する。
	 * 
	 * @param bean サービスフォームBean
	 */
	private void addRow(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccess orJokenBean = bean.getDataBeanArray(CRW04503SFConst.QUERY_OR_JOKEN).addDataBean();

		// クエリ項目リストが0件の場合設定しない
		X31SDataBeanAccess queryKmkBean = bean.getDataBeanArray(CRW04503SFConst.QUERY_KMK).getDataBean(0);
		if ((Integer)queryKmkBean.sendMessage(CRW04503SFConst.L0_FIELD_TYPE_CD_01, X31CWebConst.DATABEAN_GET_COUNT) == 0)
		{
			return;
		}

		// OR条件リスト項目名の選択インデックスを取得
		int queryKmkIdx = Integer.parseInt(queryKmkBean.sendMessageString(CRW04503SFConst.L0_QUERY_KMK_INDEX_01, X31CWebConst.DATABEAN_GET_VALUE));

		// フィールドタイプコード、クエリ条件コードを取得
		String fieldTypeCd = queryKmkBean.sendMessageString(CRW04503SFConst.L0_FIELD_TYPE_CD_01, X31CWebConst.DATABEAN_GET_VALUE, queryKmkIdx);
		String queryJokenCd = queryKmkBean.sendMessageString(CRW04503SFConst.L0_QUERY_JOKEN_GRP_CD_01, X31CWebConst.DATABEAN_GET_VALUE, queryKmkIdx);
		queryJokenCd = queryJokenCd.substring(queryJokenCd.indexOf(".") + 1);

		if (JCRUtilCommon.isNull(fieldTypeCd))
		{
			// フィールドタイプコードがnullの場合、クエリ値プルダウン項目を設定
			X31SDataBeanAccessArray queryValueTmp = bean.getDataBeanArray(CRW04503SFConst.QUERY_VALUE_TMP);
			X31SDataBeanAccessArray valList = orJokenBean.getDataBeanArray(CRW04503SFConst.L3_OR_QUERY_VALUE_LIST);
			for (int i = 0; i < queryValueTmp.getCount(); i++)
			{
				String index = String.valueOf(i + 1) + ".";
				X31SDataBeanAccess tmpBean = queryValueTmp.getDataBean(i);
				X31SDataBeanAccess valBean = valList.addDataBean();
				valBean.sendMessageString(CRW04503SFConst.L2_QUERY_VALUE_CD_03, X31CWebConst.DATABEAN_SET_VALUE, 
						tmpBean.sendMessageString(CRW04503SFConst.L7_QUERY_VALUE_CD_08, X31CWebConst.DATABEAN_GET_VALUE));
				valBean.sendMessageString(CRW04503SFConst.L2_QUERY_VALUE_03, X31CWebConst.DATABEAN_SET_VALUE, 
						index + tmpBean.sendMessageString(CRW04503SFConst.L7_QUERY_VALUE_08, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// OR条件リストクエリ値選択リストが0件でない場合
			if (valList.getCount() != 0)
			{
				orJokenBean.sendMessageString(CRW04503SFConst.L3_QUERY_VALUE_INDEX_04, X31CWebConst.DATABEAN_SET_VALUE, 
						valList.getDataBean(0).sendMessageString(CRW04503SFConst.L2_QUERY_VALUE_CD_03, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}

		// クエリ条件プルダウン項目を設定
		int cnt = 1;
		X31SDataBeanAccessArray queryJokeneTmp = bean.getDataBeanArray(CRW04503SFConst.QUERY_JOKEN_TMP);
		X31SDataBeanAccessArray jokenList = orJokenBean.getDataBeanArray(CRW04503SFConst.L3_OR_QUERY_JOKEN_LIST);
		for (int i = 0; i < queryJokeneTmp.getCount(); i++)
		{
			X31SDataBeanAccess tmpBean = queryJokeneTmp.getDataBean(i);
			String code = tmpBean.sendMessageString(CRW04503SFConst.L6_QUERY_JOKEN_CD_07, X31CWebConst.DATABEAN_GET_VALUE);
			String name = tmpBean.sendMessageString(CRW04503SFConst.L6_QUERY_JOKEN_CD_NM_07, X31CWebConst.DATABEAN_GET_VALUE);

			if (queryJokenCd.equals(code.substring(0, 1)))
			{
				String index = String.valueOf(cnt++) + ".";
				X31SDataBeanAccess jokenBean = jokenList.addDataBean();
				jokenBean.sendMessageString(CRW04503SFConst.L1_QUERY_JOKEN_CD_02, X31CWebConst.DATABEAN_SET_VALUE, code);
				jokenBean.sendMessageString(CRW04503SFConst.L1_QUERY_JOKEN_CD_NM_02, X31CWebConst.DATABEAN_SET_VALUE, index + name);
			}
		}

		// OR条件リストクエリ条件選択リストが0件でない場合
		if (jokenList.getCount() != 0)
		{
			orJokenBean.sendMessageString(CRW04503SFConst.L3_QUERY_JOKEN_INDEX_04, X31CWebConst.DATABEAN_SET_VALUE, 
					jokenList.getDataBean(0).sendMessageString(CRW04503SFConst.L1_QUERY_JOKEN_CD_02, X31CWebConst.DATABEAN_GET_VALUE));
		}
	}

	/**
	 * AND条件変更判定処理.<br>
	 * AND条件が変更されているか判定する。
	 * 
	 * @param bean サービスフォームBean
	 * @return true：変更あり、false：変更なし
	 */
	private boolean isChangeAndJoken(X31SDataBeanAccess bean)
	{
		X31SDataBeanAccessArray andJoken = bean.getDataBeanArray(CRW04503SFConst.QUERY_AND_JOKEN);
		X31SDataBeanAccessArray bkAndJoken = bean.getDataBeanArray(CRW04503SFConst.BK_QUERY_AND_JOKEN);

		// AND条件リストの明細数が同じでない場合
		if (!andJoken.getCount().equals(bkAndJoken.getCount()))
		{
			return true;
		}

		for (int i = 0; i < andJoken.getCount(); i++)
		{
			X31SDataBeanAccess andJokenBean = andJoken.getDataBean(i);
			X31SDataBeanAccess bkAndJokenBean = bkAndJoken.getDataBean(i);

			// AND条件リストの内容が同じでない場合
			if (!andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_KANRI_NO_05, X31CWebConst.DATABEAN_GET_VALUE).equals(
					bkAndJokenBean.sendMessageString(CRW04503SFConst.L10_QUERY_KMK_KANRI_NO_11, X31CWebConst.DATABEAN_GET_VALUE))
				|| !andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_NO_05, X31CWebConst.DATABEAN_GET_VALUE).equals(
						bkAndJokenBean.sendMessageString(CRW04503SFConst.L10_QUERY_KMK_NO_11, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				return true;
			}

			X31SDataBeanAccessArray andVal = andJokenBean.getDataBeanArray(CRW04503SFConst.L4_AND_QUERY_VALUE_LIST);
			X31SDataBeanAccessArray bkAndVal = bkAndJokenBean.getDataBeanArray(CRW04503SFConst.L10_AND_QUERY_VALUE_LIST);

			// AND条件リストクエリ値リストの明細数が同じでない場合
			if (andVal.getCount() != bkAndVal.getCount())
			{
				return true;
			}

			for (int j = 0; j < andVal.getCount(); j++)
			{
				X31SDataBeanAccess andValBean = andVal.getDataBean(j);
				X31SDataBeanAccess bkAndValBean = bkAndVal.getDataBean(j);

				// フィールドタイプコードがnullの場合
				String  queryValue = null;
				if (JCRUtilCommon.isNull(andJokenBean.sendMessageString(CRW04503SFConst.L4_FIELD_TYPE_CD_05, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					queryValue = andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_VALUE_CD_06, X31CWebConst.DATABEAN_GET_VALUE);
				}
				else
				{
					queryValue = andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_VALUE_06, X31CWebConst.DATABEAN_GET_VALUE);
				}

				// AND条件リストクエリ値リストの内容が同じでない場合
				if (!andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_KMK_UC_NO_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
						bkAndValBean.sendMessageString(CRW04503SFConst.L11_QUERY_KMK_UC_NO_12, X31CWebConst.DATABEAN_GET_VALUE))
					|| !queryValue.equals(bkAndValBean.sendMessageString(CRW04503SFConst.L11_QUERY_VALUE_12, X31CWebConst.DATABEAN_GET_VALUE))
					|| !andValBean.sendMessageString(CRW04503SFConst.L5_QUERY_JOKEN_CD_06, X31CWebConst.DATABEAN_GET_VALUE).equals(
							bkAndValBean.sendMessageString(CRW04503SFConst.L11_QUERY_JOKEN_CD_12, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					return true;
				}
			}
		}

		return false;
	}

	/**
	 * クエリ項目名変更判定処理.<br>
	 * クエリ項目名が変更されているか判定する。
	 * 
	 * @param bean サービスフォームBean
	 * @return true：変更あり、false：変更なし
	 */
	private boolean isChangeQueryKmkNm(X31SDataBeanAccess bean)
	{
		int idx = Integer.parseInt(bean.sendMessageString(CRW04503SFConst.AND_JOKEN_EDIT_INDEX, X31CWebConst.DATABEAN_GET_VALUE));
		X31SDataBeanAccess andJokenBean = bean.getDataBeanArray(CRW04503SFConst.QUERY_AND_JOKEN).getDataBean(idx);

		String queryKmkKanriNo = JCRWebCommon.getPullDownName(bean, CRW04503SFConst.QUERY_KMK, CRW04503SFConst.L0_QUERY_KMK_INDEX_01, 
				CRW04503SFConst.L0_QUERY_KMK_KANRI_NO_01, CRW04503SFConst.L0_QUERY_KMK_KANRI_NO_01);

		// クエリ対象項目管理番号が同じでない場合
		if (!queryKmkKanriNo.equals(andJokenBean.sendMessageString(CRW04503SFConst.L4_QUERY_KMK_KANRI_NO_05, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return true;
		}

		return false;
	}
}
