/*********************************************************************
*  All Rights reserved,Copyright (c) K-Opticom						 *
**********************************************************************
*＜プログラム内容＞
*	システム名			：eo顧客基幹システム
*	モジュール名		：ZMW11301SFLogic
*	ソースファイル名	：ZMW11301SFLogic.java
*	作成者				：富士通　
*	作成日				：2012年03月08日
*＜機能概要＞
*  組織選択画面の画面制御を行います。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v3.00       2012/03/08  FJ) 宮前    新規作成
*	v3.00		2012/04/06	FJ) 宮前	【SGY-2012-000006】統合認証対応
*	v3.00		2012/04/06	FJ) 宮前	【ANK-0025-00-00】ギガルータ対応
*	v3.00		2012/04/06	FJ) 宮前	【ANK-0023-00-00】着信Eポップの転送時引き継ぎ対応
*	v5.00		2013/03/21	FJ）岩元	【OT-2013-0000507】
*
*********************************************************************/
package eo.web.webview.ZMW11301SF;

import java.util.HashMap;

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.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.ZMW06901SF.ZMW06901SFConst;
import eo.web.webview.common.JCCAuthorityCtrlUtil;
import eo.web.webview.common.JCCWebCommon;
import eo.web.webview.common.JZMScreenConst;
import eo.web.webview.common.JZMWebCommon;
import eo.web.webview.mapping.ZMSV0002_ZMSV0002OPDBMapper;

/**
 * 組織選択画面画面ビューロジック<p>
 * <BR>
 * @author FJ
 */
@SuppressWarnings("serial")
public class ZMW11301SFLogic extends JCCWebBusinessLogic
{
	
	/** 権限コード取得用 区切り文字（権限グループコード） */
	private static final String AUTHORITY_CD_DELIM = ":";
	
	/** サービス ZMSV0002 */
	private static final String USECASE_ID_0002 = "ZMSV0002";
	
	/** 実組織一覧作成用 KEY項目名 */
	private static final String[] KEY_ORG_LIST = 
	{
		ZMW11301SFConst.ORG_CD_01,
		ZMW11301SFConst.ORG_NM_01,
		ZMW11301SFConst.POSITION_NM_01,
		ZMW11301SFConst.AUTHORITY_GRP_NM_01
	};
	
	/** 業務個別設定組織一覧作成用 KEY項目名 */
	private static final String[] KEY_WKKBT_ORG_LIST = 
	{
		ZMW11301SFConst.WKKBT_ORG_CD_02,
		ZMW11301SFConst.WKKBT_ORG_NM_02,
		ZMW11301SFConst.WKKBT_POSITION_NM_02,
		ZMW11301SFConst.WKKBT_AUTHORITY_GRP_NM_02,
		ZMW11301SFConst.WKORG_CD_02
	};
	
	/** 中間組織一覧作成用 KEY項目名 */
	private static final String[] KEY_CHUKAN_ORG_LIST = 
	{
		ZMW11301SFConst.CHUKAN_ORG_CD_03,
		ZMW11301SFConst.CHUKAN_ORG_NM_03,
		ZMW11301SFConst.CHUKAN_POSITION_NM_03,
		ZMW11301SFConst.CHUKAN_AUTHORITY_GRP_NM_03,
		ZMW11301SFConst.CHUKAN_JOI_ORG_CD_03
	};
	
	/** 特別権限組織一覧作成用 KEY項目名 */
	private static final String[] KEY_SPA_ORG_LIST = 
	{
		ZMW11301SFConst.SPA_ORG_CD_04,
		ZMW11301SFConst.SPA_ORG_NM_04,
		ZMW11301SFConst.SPA_POSITION_NM_04,
		ZMW11301SFConst.SPA_KGGRP_NM_04
	};
	
	/** 実組織 Key項目一覧（共有フォームBean設定用） */
	private static final String[][] KEY_ORG_LIST_FOR_CF = 
	{
		{CommonInfoCFConst.ORG_CD_01, ZMW11301SFConst.ORG_CD_01},
		{CommonInfoCFConst.ORG_NM_01, ZMW11301SFConst.ORG_NM_01},
		{CommonInfoCFConst.POSITION_CD_01, ZMW11301SFConst.POSITION_CD_01},
		{CommonInfoCFConst.POSITION_NM_01, ZMW11301SFConst.POSITION_NM_01},
		{CommonInfoCFConst.KGGRP_CD_01, ZMW11301SFConst.KGGRP_CD_01},
		{CommonInfoCFConst.KGGRP_NM_01, ZMW11301SFConst.AUTHORITY_GRP_NM_01}
	};
	
	/** 業務個別設定組織 Key項目一覧（共有フォームBean設定用） */
	private static final String[][] KEY_WKKBT_ORG_LIST_FOR_CF =
	{
		{CommonInfoCFConst.ORG_CD_01, ZMW11301SFConst.WKKBT_ORG_CD_02},
		{CommonInfoCFConst.ORG_NM_01, ZMW11301SFConst.WKKBT_ORG_NM_02},
		{CommonInfoCFConst.POSITION_CD_01, ZMW11301SFConst.WKKBT_POSITION_CD_02},
		{CommonInfoCFConst.POSITION_NM_01, ZMW11301SFConst.WKKBT_POSITION_NM_02},
		{CommonInfoCFConst.KGGRP_CD_01, ZMW11301SFConst.WKKBT_KGGRP_CD_02},
		{CommonInfoCFConst.KGGRP_NM_01, ZMW11301SFConst.WKKBT_AUTHORITY_GRP_NM_02}
	};
	
	/** 中間組織 Key項目一覧（共有フォームBean設定用） */
	private static final String[][] KEY_CHUKAN_ORG_LIST_FOR_CF =
	{
		{CommonInfoCFConst.ORG_CD_01, ZMW11301SFConst.CHUKAN_ORG_CD_03},
		{CommonInfoCFConst.ORG_NM_01, ZMW11301SFConst.CHUKAN_ORG_NM_03},
		{CommonInfoCFConst.POSITION_CD_01, ZMW11301SFConst.CHUKAN_POSITION_CD_03},
		{CommonInfoCFConst.POSITION_NM_01, ZMW11301SFConst.CHUKAN_POSITION_NM_03},
		{CommonInfoCFConst.KGGRP_CD_01, ZMW11301SFConst.CHUKAN_KGGRP_CD_03},
		{CommonInfoCFConst.KGGRP_NM_01, ZMW11301SFConst.CHUKAN_AUTHORITY_GRP_NM_03}
	};
	
	/** 特別権限組織 Key項目一覧（共有フォームBean設定用） */
	private static final String[][] KEY_SPA_ORG_LIST_FOR_CF =
	{
		{CommonInfoCFConst.ORG_CD_01, ZMW11301SFConst.SPA_ORG_CD_04},
		{CommonInfoCFConst.ORG_NM_01, ZMW11301SFConst.SPA_ORG_NM_04},
		{CommonInfoCFConst.POSITION_CD_01, ZMW11301SFConst.SPA_POSITION_CD_04},
		{CommonInfoCFConst.POSITION_NM_01, ZMW11301SFConst.SPA_POSITION_NM_04},
		{CommonInfoCFConst.KGGRP_CD_01, ZMW11301SFConst.SPA_KGGRP_CD_04},
		{CommonInfoCFConst.KGGRP_NM_01, ZMW11301SFConst.SPA_KGGRP_NM_04}
	};
	
	/**
	 * 組織選択画面 初期表示処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean init() throws Exception
	{
		
		
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		JCCWebCommon.getScreenInfo(this);
		
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		X31SDataBeanAccess svBean = getServiceFormBean();
		
		//実組織一覧データ
		X31SDataBeanAccessArray list = svBean.getDataBeanArray(ZMW11301SFConst.ORG_LIST);
		String value = getArrayStringForJS(list, KEY_ORG_LIST);
		svBean.sendMessageString(ZMW11301SFConst.ORG_LIST_DATA, X31CWebConst.DATABEAN_SET_VALUE, value);
		
		//業務個別設定組織一覧データ
		list = svBean.getDataBeanArray(ZMW11301SFConst.WKKBT_ORG_LIST);
		value = getArrayStringForJS(list, KEY_WKKBT_ORG_LIST);
		svBean.sendMessageString(ZMW11301SFConst.WKKBT_ORG_LIST_DATA, X31CWebConst.DATABEAN_SET_VALUE, value);
		
		//中間組織一覧データ
		list = svBean.getDataBeanArray(ZMW11301SFConst.CHUKAN_ORG_LIST);
		value = getArrayStringForJS(list, KEY_CHUKAN_ORG_LIST);
		svBean.sendMessageString(ZMW11301SFConst.CHUKAN_ORG_LIST_DATA, X31CWebConst.DATABEAN_SET_VALUE, value);
		
		//特別権限組織一覧データ※
		list = svBean.getDataBeanArray(ZMW11301SFConst.SPA_ORG_LIST);
		value = getArrayStringForJS(list, KEY_SPA_ORG_LIST);
		svBean.sendMessageString(ZMW11301SFConst.SPA_ORG_LIST_DATA, X31CWebConst.DATABEAN_SET_VALUE, value);
		
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		//共有フォームBean
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		
		// 遷移先画面IDを共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_ID_ZMW11301);
		
		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_NAME_ZMW11301);
		return true;
	}
	
	/**
	 * 確定ボタン押下処理
	 * @return boolean
	 * @throws Exception
	 */
	public boolean select_org() throws Exception
	{
		
		// 権限リストのクリア処理
		JCCAuthorityCtrlUtil.clearAuthorityList();
		
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// (a) 以下のインデックスから、選択された組織に該当する権限グループコードを取得する。
		X31SDataBeanAccess svBean = getServiceFormBean();
		
		// 実組織一覧選択行インデックス
		String orgSelectedIndex = svBean.sendMessageString(ZMW11301SFConst.ORG_LIST_SELECTED_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 業務個別設定組織一覧選択行インデックス
		String wkkbtSelectedIndex = svBean.sendMessageString(ZMW11301SFConst.WKKBT_ORG_LIST_SELECTED_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 中間組織一覧選択行インデックス
		String chukanSelectedIndex = svBean.sendMessageString(ZMW11301SFConst.CHUKAN_ORG_LIST_SELECTED_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		
		// (b) 取得した権限グループコードを「:」で繋げて、以下の項目に設定する。
		StringBuilder authority_cd = new StringBuilder();
		String value = null;
		
		// 実組織
		if(!"".equals(orgSelectedIndex))
		{
			value = getSelectedAuthorityCd(svBean.getDataBeanArray(ZMW11301SFConst.ORG_LIST), orgSelectedIndex, 
											ZMW11301SFConst.KGGRP_CD_01);
			authority_cd.append(value).append(AUTHORITY_CD_DELIM);
		}
		
		// 業務個別設定組織
		if(!"".equals(wkkbtSelectedIndex))
		{
			value = getSelectedAuthorityCd(svBean.getDataBeanArray(ZMW11301SFConst.WKKBT_ORG_LIST), wkkbtSelectedIndex, 
												ZMW11301SFConst.WKKBT_KGGRP_CD_02);
			authority_cd.append(value).append(AUTHORITY_CD_DELIM);
		}
		
		// 中間組織
		if(!"".equals(chukanSelectedIndex))
		{
			value = getSelectedAuthorityCd(svBean.getDataBeanArray(ZMW11301SFConst.CHUKAN_ORG_LIST), chukanSelectedIndex, 
												ZMW11301SFConst.CHUKAN_KGGRP_CD_03);
			authority_cd.append(value).append(AUTHORITY_CD_DELIM);
		}
		
		// 特別権限組織
		value = getAllAuthorityCd(svBean.getDataBeanArray(ZMW11301SFConst.SPA_ORG_LIST), ZMW11301SFConst.SPA_KGGRP_CD_04, 
															AUTHORITY_CD_DELIM);
		authority_cd.append(value);
		
		// 権限グループコードセット
		svBean.sendMessageString(ZMW11301SFConst.AUTHORITY_CD, X31CWebConst.DATABEAN_SET_VALUE, authority_cd.toString());
		
		// 基準年月日セット
		svBean.sendMessageString(ZMW11301SFConst.STDARD_YMD, X31CWebConst.DATABEAN_SET_VALUE, JCCWebCommon.getSysDate());
		
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		X31SDataBeanAccess[] beans = {svBean};
		
		// ユースケースID格納用マップ
		HashMap<Object, String> paramMap = new HashMap<Object, String>();
		
		// ユースケースID格納
		paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, USECASE_ID_0002);
		
		// マッピング用Map
		HashMap<String, Object> inMap = new HashMap<String, Object>();
		
		// サービス実行結果データ用Map
		HashMap<String, Object> outputMap = new HashMap<String, Object>();
		
		// マッピングクラス
		ZMSV0002_ZMSV0002OPDBMapper mapper = new ZMSV0002_ZMSV0002OPDBMapper();
		mapper.setZMSV000201SC(beans, inMap, JPCModelConstant.FUNC_CD_1);
		
		// サービス実行
		invokeService(paramMap, inMap, outputMap);
		
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// (a)サービスの処理結果を取得する。
		mapper.getZMSV000201SC(beans, outputMap);
		
		// (b)権限コードを共有フォームBeanに設定する。
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		kenmuShori(cfBean, svBean);
		
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// (a) 次画面への引継情報(dataMap)を作成する。
		HashMap<String, Object> dataMap = JCCWebCommon.getScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW06901);
		if(dataMap == null)
		{
			dataMap = new HashMap<String, Object>();
		}
		dataMap.put(ZMW06901SFConst.KENMU_FLG, true);
		
		// (b) 画面情報設定部品（JCCWebCommon.setScreenInfo)を使用し、次画面への引継情報を設定する。
		JCCWebCommon.setScreenInfo(this, JZMScreenConst.SCREEN_ID_ZMW06901, dataMap);
		
		// (c) 戻り先画面ID設定（JCCWebCommon.setScreenId)を使用し、次画面への引継情報を設定する。
		JCCWebCommon.setScreenId(this, JZMScreenConst.SCREEN_ID_ZMW06901, JZMScreenConst.SCREEN_ID_ZMW11301);
		
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 遷移先画面IDを共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_ID_ZMW11301);
		
		// 遷移先画面名を共有フォームBeanに設定
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE,
				JZMScreenConst.SCREEN_NAME_ZMW11301);
		return true;
	}
	
	/**
	 * 組織選択画面の次画面（次ウィンドウ）への遷移処理
	 * @return 
	 * @throws Exception
	 */
	public boolean next() throws Exception 
	{
		
		// -------------------------------------------------- //
		// (1)引継情報の取得
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (2)サービスフォームBeanの設定
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (3)サービス呼出処理
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (4)サービス処理結果の設定
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (5)引継情報の設定
		// -------------------------------------------------- //
		// なし
		// -------------------------------------------------- //
		// (6)共有フォームBeanの設定
		// -------------------------------------------------- //
		// 共有フォームBean
		X31SDataBeanAccess cfBean = getCommonInfoBean();
		
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_ID_ZMW06901);
		cfBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME, X31CWebConst.DATABEAN_SET_VALUE, JZMScreenConst.SCREEN_NAME_ZMW06901);

		return true;
	}
	
	/**
	 * 組織選択後に選択された組織を共有フォームBeanへセットします。
	 * また、該当する組織に対する権限コードも共有フォームBeanへセットします。
	 * 前提条件：ZMSV0002サービス呼ばれており、権限コードがサービスフォームBeanへ格納されていること。
	 * @param cf_bean
	 * @param sv_bean
	 */
	private void kenmuShori(X31SDataBeanAccess cf_bean, X31SDataBeanAccess sv_bean)
	{
		
		// 共有フォームBean 権限リスト
		X31SDataBeanAccessArray cfBeanList = cf_bean.getDataBeanArray(CommonInfoCFConst.KGGRP_CD_LIST);
		
		// サービスフォームBean 権限コード一覧
		X31SDataBeanAccessArray svBeanKengenList = sv_bean.getDataBeanArray(ZMW11301SFConst.AUTHORITY_CD_LIST);
		cfBeanList.clearArray();
		
		// 実組織 組織情報のセット
		X31SDataBeanAccess cfSubBean = cfBeanList.addDataBean();
		
		// 選択された実組織のインデックス
		String index = sv_bean.sendMessageString(ZMW11301SFConst.ORG_LIST_SELECTED_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 共有フォームBeanへ設定
		JZMWebCommon.setOrgAndAuthInfoForCfBean(cfSubBean, sv_bean, ZMW11301SFConst.ORG_LIST, Integer.parseInt(index), KEY_ORG_LIST_FOR_CF, 
												svBeanKengenList, ZMW11301SFConst.KGGRP_CD_05, ZMW11301SFConst.AUTHORITY_CD_05);
		
		// 業務個別設定組織
		cfSubBean = cfBeanList.addDataBean();
		if(sv_bean.getDataBeanArray(ZMW11301SFConst.WKKBT_ORG_LIST).getCount() > 0)
		{
			index = sv_bean.sendMessageString(ZMW11301SFConst.WKKBT_ORG_LIST_SELECTED_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
			if(!"".equals(index))
			{
				JZMWebCommon.setOrgAndAuthInfoForCfBean(cfSubBean, sv_bean, ZMW11301SFConst.WKKBT_ORG_LIST, Integer.parseInt(index), 
						KEY_WKKBT_ORG_LIST_FOR_CF, svBeanKengenList, ZMW11301SFConst.KGGRP_CD_05, ZMW11301SFConst.AUTHORITY_CD_05);
			}
		}
		
		// 中間組織
		cfSubBean = cfBeanList.addDataBean();
		if(sv_bean.getDataBeanArray(ZMW11301SFConst.CHUKAN_ORG_LIST).getCount() > 0)
		{
			index = sv_bean.sendMessageString(ZMW11301SFConst.CHUKAN_ORG_LIST_SELECTED_INDEX, X31CWebConst.DATABEAN_GET_VALUE);
			if(!"".equals(index))
			{
				JZMWebCommon.setOrgAndAuthInfoForCfBean(cfSubBean, sv_bean, ZMW11301SFConst.CHUKAN_ORG_LIST, Integer.parseInt(index), 
						KEY_CHUKAN_ORG_LIST_FOR_CF, svBeanKengenList, ZMW11301SFConst.KGGRP_CD_05, ZMW11301SFConst.AUTHORITY_CD_05);
			}
		}
		
		// 特別権限組織
		X31SDataBeanAccessArray spBeanArray = sv_bean.getDataBeanArray(ZMW11301SFConst.SPA_ORG_LIST);
		for(int iCnt = 0; iCnt < spBeanArray.getCount(); iCnt++)
		{
			cfSubBean = cfBeanList.addDataBean();
			JZMWebCommon.setOrgAndAuthInfoForCfBean(cfSubBean, sv_bean, ZMW11301SFConst.SPA_ORG_LIST, iCnt, KEY_SPA_ORG_LIST_FOR_CF, 
					svBeanKengenList, ZMW11301SFConst.KGGRP_CD_05, ZMW11301SFConst.AUTHORITY_CD_05);
		}
		
		// ステータスを設定
		sv_bean.sendMessageString(ZMW11301SFConst.LOGIN_PROC_STATUS, X31CWebConst.DATABEAN_SET_VALUE, "4");

	}
	
	/**
	 * 組織選択画面で動的にテーブルを作成するJSで利用する文字列を作成します。
	 * @param list サービスフォームBean 組織一覧
	 * @param key_list サービスフォームBean 組織一覧の項目名配列
	 * @return String JSで利用できる配列の形式にした文字列
	 */
	private String getArrayStringForJS(X31SDataBeanAccessArray list, String[] key_list)
	{
		StringBuilder retValue = new StringBuilder();
		
		for(int iCnt = 0; iCnt < list.getCount(); iCnt++)
		{
			retValue.append(iCnt < 1 ? "" : ";");
			X31SDataBeanAccess subBean = list.getDataBean(iCnt);
			for(int iCntKeyList = 0; iCntKeyList < key_list.length; iCntKeyList++)
			{
				retValue.append(iCntKeyList < 1 ? "" : ",")
						.append(subBean.sendMessageString(key_list[iCntKeyList], X31CWebConst.DATABEAN_GET_VALUE));
			}
		}
		return retValue.toString();
	}
	
	/**
	 * 指定されたリストから選択されたIndexに対応する項目を返します。
	 * @param list サービスフォームBean 組織リスト
	 * @param selected 選択された組織のIndex
	 * @param key 返す項目のKey名称
	 * @return String 指定されたリストから選択されたIndexに対応する項目（値）
	 */
	private String getSelectedAuthorityCd(X31SDataBeanAccessArray list, String selected, String key)
	{
		
		// 指定されたインデックス
		int iSelected = Integer.parseInt(selected);
		
		// 指定されたインデックスに該当するサブサービスフォームBean
		X31SDataBeanAccess subBean = list.getDataBean(iSelected);
		
		String retValue = subBean.sendMessageString(key, X31CWebConst.DATABEAN_GET_VALUE);
		
		return retValue;
	}
	
	/**
	 * 指定されたリストからすべての項目を指定された区切り文字で連結して返します。
	 * @param list サービスフォームBean 組織リスト
	 * @param key 返す項目のKey名称
	 * @param delim 区切り文字
	 * @return String すべての項目を指定された区切り文字で連結した文字列
	 */
	private String getAllAuthorityCd(X31SDataBeanAccessArray list, String key, String delim)
	{
		StringBuilder retValue = new StringBuilder();
		
		for(int iCnt = 0; iCnt < list.getCount(); iCnt++)
		{
			X31SDataBeanAccess subBean = list.getDataBean(iCnt);
			String value = subBean.sendMessageString(key, X31CWebConst.DATABEAN_GET_VALUE);
			retValue.append(value).append(delim);
		}
		
		return retValue.toString();
	}
}
