/*********************************************************************
* All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*   システム名      ：eo顧客基幹システム
*   モジュール名    ：JZMWebCommon
*   ソースファイル名：JZMWebCommon.java
*   作成者          ：富士通
*   日付            ：2011年05月20日
*＜機能概要＞
*   マスタ共通部品です。
*＜修正履歴＞
*   バージョン  修正日       修正者      修正内容
*   v1.00.00    2011/05/20   FJ) 山本    新規作成
*   v5.00.00    2013/08/14   FJ) 日野    【OT-2013-0000713】ディレイド文字コード対応
*
**********************************************************************/
package eo.web.webview.common;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;

import com.fujitsu.futurity.web.x31.X31BWebBusinessLogic;
import com.fujitsu.futurity.web.x31.X31CVector;
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.x31.X31SRuntimeException;

import eo.common.util.JCCFrameworkException;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;


/**
 * マスタ共通部品です。
 * @author 909281
 *
 */
public class JZMWebCommon extends JCCWebCommon
{
	/** 1桁以上の数値の正規表現 */
	private static final String REGEX_NUMBER = "\\d+";

	/** コード名称リスト */
	private static final String EZM0171B012CBSMSG1LIST = "EZM0171B012CBSMsg1List";
	
	/** 初期表示コード */
	private static final String SHK_DSP_CD = "shk_dsp_cd";
	
	/** コード区分 */
	private static final String CD_DIV = "cd_div";
	
	/** コード区分名称 */
	private static final String CD_DIV_NM = "cd_div_nm";
	
	/** . */
	private static final String DOT = ".";
	
	/** Class Style Even */
	private static final String CLASS_STYLE_EVEN = "even";
	
	/** Class Style Odd */
	private static final String CLASS_STYLE_ODD = "odd";
	
	/** →未使用 */
	private static final String CHG_STAT_NASI = "　→　未使用";
	
	/** →予約中 */
	private static final String CHG_STAT_RSV = "　→　予約中";
	
	/** →使用中 */
	private static final String CHG_STAT_USE = "　→　使用中";
	
	/** →回復可能 */
	private static final String CHG_STAT_KAIFK_PSB = "　→　回復可能";
	
	/** →エージング中 */
	private static final String CHG_STAT_KAIFK_FAIL = "　→　エージング中";
	
	/** → */
	private static final String ARROW = "　→";
	
	/**
	 * 電話番号を市外局番、市内局番、加入者番号に分割します。
	 * 
	 * @param bl  ViewLogic
	 * @param tln 電話番号。数字だけで構成された9桁以上の文字列。
	 * @return 分割した番号を格納した配列。
	 * @throws Exception 予期せぬエラー
	 */
	public static String[] splitTln(JCCWebBusinessLogic bl, String tln) throws Exception 
	{
		return JZMEditTln.splitTln(bl, tln);
	}
	
	/**
	 * 電話番号を市外局番、市内局番、加入者番号に分割し、ハイフン編集を行います。
	 * 
	 * @param bl ViewLogic
	 * @param tln 電話番号。数字だけで構成された9桁以上の文字列。
	 * @return 分割した番号をハイフン編集した文字列。
	 * @throws Exception 予期せぬエラー
	 */
	public static String editTln(JCCWebBusinessLogic bl, String tln) throws Exception 
	{
		return JZMEditTln.editTln(bl, tln);
	}
	
	/**
	 * 引数をそのまま返します。
	 * IMRCの固定値の設定に使用します。
	 * @param param 固定値
	 * @return 固定値
	 */
	public static String getConstantValue(String param)
	{
		return param;
	}
	
	/**
	 * 引数がnullかどうかを返します。
	 * 
	 * @param obj
	 * @return obj == null
	 */
	private static boolean isNull(Object obj)
	{
		return obj == null;
	}
		
	/**
	 * 適用終了年月日が20991231だった場合、ブランクに置換します。
	 * @param bean データBean
	 * @param tendymdName 適用終了年月日名称
	 */
	public static void replaceTendymd(X31SDataBeanAccess bean, String tendymdName)
	{
		String ymd = getSendMessageString(bean, tendymdName);
		if(JZMWebConst.ENDYMD.equals(ymd))
		{
			setSendMessageString(bean, tendymdName, JZMWebConst.BLANK);
		}
	}
	
	/**
	 * 適用終了年月日設定明細用
	 * 適用終了年月日が20991231だった場合、ブランクに置換します。
	 * @param bean データBean フォームDataBean
	 * @param cbsMsgListKmkNm 一覧の項目名
	 * @param tendymdName 適用終了年月日名称
	 */
	public static void replaceTendymd(X31SDataBeanAccess bean, String cbsMsgListKmkNm, String tendymdName)
	{
		
		// 一覧のデータリストを取得する。
		X31SDataBeanAccessArray icrnData = bean.getDataBeanArray(cbsMsgListKmkNm);
		
		if(!(icrnData == null))
		{
			for (int i = 0; i < icrnData.getCount(); i++)
			{
				
				// 行のデータを取得する。
				X31SDataBeanAccess rowData = icrnData.getDataBean(i);
				String ymd = rowData.sendMessageString(tendymdName, X31CWebConst.DATABEAN_GET_VALUE);
				if(JZMWebConst.ENDYMD.equals(ymd))
				{
					
					// 行のスタイルクラスを白色にする。
					rowData.sendMessageString(tendymdName, X31CWebConst.DATABEAN_SET_VALUE, JZMWebConst.BLANK);
				}
			}
		}
	}
	
	/**
	 * 終了年月日時分秒が20991231235959999だった場合、ブランクに置換します。
	 * @param bean データBean
	 * @param endDtmName 終了年月日時分秒名称
	 */
	public static void replaceEndDtm(X31SDataBeanAccess bean, String endDtmName)
	{
		String dtm = getSendMessageString(bean, endDtmName);
		if(JZMWebConst.ENDDTM.equals(dtm))
		{
			setSendMessageString(bean, endDtmName, JZMWebConst.BLANK);
		}
	}
	
	/**
	 * 年月日(8桁)を分割してBeanにセットします。
	 * @param bean データBean
	 * @param ymdName	年月日名称
	 * @param yearName	年名称
	 * @param monName	月名称
	 * @param dayName	日名称
	 */
	public static void setSplitYmd(X31SDataBeanAccess bean, String ymdName, String yearName, String monName, String dayName)
	{
		String ymd = getSendMessageString(bean, ymdName);
		if(ymd != null && !JZMWebConst.ENDYMD.equals(ymd) && ymd.length() == 8)
		{
			setSendMessageString(bean, yearName, ymd.substring(0, 4));
			setSendMessageString(bean, monName, ymd.substring(4, 6));
			setSendMessageString(bean, dayName, ymd.substring(6, 8));
		}
	}

	/**
	 * 時分(4桁)を分割してBeanにセットします。
	 * @param bean データBean
	 * @param hmName	時分名称
	 * @param jiName	時名称
	 * @param hunName	分名称
	 */
	public static void setSplitHm(X31SDataBeanAccess bean, String hmName, String jiName, String hunName)
	{
		String hm = getSendMessageString(bean, hmName);
		if(hm != null && hm.length() == 4)
		{
			setSendMessageString(bean, jiName, hm.substring(0, 2));
			setSendMessageString(bean, hunName, hm.substring(2, 4));
		}
		else
		{
			setSendMessageString(bean, jiName, JZMWebConst.BLANK);
			setSendMessageString(bean, hunName, JZMWebConst.BLANK);
		}
	}
	
	/**
	 * 年、月、日の各項目すべてに値を持っている場合Trueを返します。
	 * @return 判定結果
	 */
	public static boolean hasSplitedYmd(X31SDataBeanAccess bean, String yearName, String monName, String dayName)
	{
		return (!isNullOrBlank(getSendMessageString(bean, yearName))
				&& !isNullOrBlank(getSendMessageString(bean, monName))
				&& !isNullOrBlank(getSendMessageString(bean, dayName)));
	}
	
	/**
	 * プルダウン項目設定処理（コード名称管理）です。
	 * プルダウン項目のリスト（コード、名称）を設定します。
	 * 
	 * @param bean データBean フォームDataBean
	 * @param dataTypeBeanName プルダウン項目名称
	 * @param indexName インデックス項目名称
	 * @param codeListName コードリスト名称
	 * @param nameListName 名称リスト名称
	 * @param mapParam 下りマップ
	 * @return 初期表示フラグがTrueのインデックス
	 */
	@SuppressWarnings("unchecked")
	public static int setPullDown(X31SDataBeanAccess bean, String dataTypeBeanName, String indexName, 
			String codeListName, String nameListName, HashMap mapParam)
	{
		ArrayList<Object> childList = null;
		
		int index = 0;
		
		X31SDataBeanAccessArray comboBoxList = bean.getDataBeanArray(dataTypeBeanName);
		childList = null;
		if(mapParam.containsKey(EZM0171B012CBSMSG1LIST))
		{
			childList = (ArrayList)mapParam.get(EZM0171B012CBSMSG1LIST);
			
			X31SDataBeanAccess subbean = null;
			
			if(comboBoxList.getCount() - 1 >= 0)
			{
				subbean = comboBoxList.getDataBean(0);
			}
			else
			{
				subbean = comboBoxList.addDataBean();
			}
			
			// コードリスト ← 空白
			subbean.sendMessageString(codeListName, X31CWebConst.DATABEAN_ADD_VALUE, JZMWebConst.BLANK);
			
			// 名称リスト ← 空白
			subbean.sendMessageString(nameListName, X31CWebConst.DATABEAN_ADD_VALUE, JZMWebConst.BLANK);
			
			for(int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				
				if(childMap.containsKey(SHK_DSP_CD) && JZMWebConst.ONE.equals(childMap.get(SHK_DSP_CD))) 
				{
					index = i + 1;
				}
				// コードリスト ← コード名称管理一覧照会.コード名称管理一覧照会明細.コード区分
				subbean.sendMessageString(codeListName, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get(CD_DIV));
				
				// 名称リスト ← コード名称管理一覧照会.コード名称管理一覧照会明細.コード区分名
				subbean.sendMessageString(nameListName, X31CWebConst.DATABEAN_ADD_VALUE, String.valueOf(i + 1) + DOT + (String)childMap.get(CD_DIV_NM));
			}
		}
		return index;
	}
	
	/**
	 * プルダウン項目設定処理（通信事業者）です。
	 * プルダウン項目のリスト（コード、名称、フラグ）を設定します。
	 * 
	 * @param bean データBean フォームDataBean
	 * @param pullDownId プルダウン項目ID
	 * @param indexId インデックス項目ID
	 * @param codeListId コードリストID
	 * @param nameListId 名称リストID
	 * @param flgListId フラグリストID
	 * @param mapParam 対象マップ
	 */
	@SuppressWarnings("unchecked")
	public static void setPullDownTsjgs(X31SDataBeanAccess bean,
			String pullDownId, String indexId, String codeListId, String nameListId, String flgListId, HashMap mapParam)
	{
		ArrayList<Object> childList = null;
		
		boolean hasFlg = flgListId != null;
		
		X31SDataBeanAccessArray listPullDown = bean.getDataBeanArray(pullDownId);
		childList = null;
		if(mapParam.containsKey("ETU0051B010CBSMsg1List"))
		{
			childList = (ArrayList)mapParam.get("ETU0051B010CBSMsg1List");
			
			X31SDataBeanAccess subbean = null;
			
			if(listPullDown.getCount() - 1 >= 0)
			{
				subbean = listPullDown.getDataBean(0);
			}
			else
			{
				subbean = listPullDown.addDataBean();
			}
			
			// コードリスト ← 空白
			subbean.sendMessageString(codeListId, X31CWebConst.DATABEAN_ADD_VALUE, JZMWebConst.BLANK);
			
			// 名称リスト ← 空白
			subbean.sendMessageString(nameListId, X31CWebConst.DATABEAN_ADD_VALUE, JZMWebConst.BLANK);
			
			if(hasFlg)
			{
				
				// フラグリスト ← 空白
				subbean.sendMessageString(flgListId, X31CWebConst.DATABEAN_ADD_VALUE, JZMWebConst.BLANK);
			}
			
			
			for(int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				
				// コードリスト ← 通信事業者一覧照会.通信事業者一覧照会明細.通信事業者コード
				subbean.sendMessageString(codeListId, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("tsjgs_cd"));
				
				// 名称リスト ← 通信事業者一覧照会.通信事業者一覧照会明細.通信事業者名
				subbean.sendMessageString(nameListId, X31CWebConst.DATABEAN_ADD_VALUE, String.valueOf(i + 1) + DOT + (String)childMap.get("tsjgs_nm"));
				
				if(hasFlg)
				{
					
					// フラグリスト ← 通信事業者一覧照会.通信事業者一覧照会明細.自社他社フラグ
					subbean.sendMessageString(flgListId, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("jisha_tasha_flg"));
				}
			}
		}
		return ;
	}
	
	/**
	 * プルダウン項目設定処理（申込事業所）です。
	 * プルダウン項目のリスト（コード、名称、フラグ）を設定します。
	 * 
	 * @param bean データBean フォームDataBean
	 * @param pullDownId プルダウン項目ID
	 * @param indexId インデックス項目ID
	 * @param codeListId コードリストID
	 * @param nameListId 名称リストID
	 * @param mapParam 対象マップ
	 */
	@SuppressWarnings("unchecked")
	public static void setPullDownMskm(X31SDataBeanAccess bean,
			String pullDownId, String indexId, String codeListId, String nameListId, HashMap mapParam)
	{
		ArrayList<Object> childList = null;
		
		X31SDataBeanAccessArray listPullDown = bean.getDataBeanArray(pullDownId);
		childList = null;
		if(mapParam.containsKey("ETU0041B010CBSMsg1List"))
		{
			childList = (ArrayList)mapParam.get("ETU0041B010CBSMsg1List");
			
			X31SDataBeanAccess subbean = null;
			
			if(listPullDown.getCount() - 1 >= 0)
			{
				subbean = listPullDown.getDataBean(0);
			}
			else
			{
				subbean = listPullDown.addDataBean();
			}
			
			// コードリスト ← 空白
			subbean.sendMessageString(codeListId, X31CWebConst.DATABEAN_ADD_VALUE, JZMWebConst.BLANK);
			
			// 名称リスト ← 空白
			subbean.sendMessageString(nameListId, X31CWebConst.DATABEAN_ADD_VALUE, JZMWebConst.BLANK);
			
			for(int i = 0; i < childList.size(); i++)
			{
				HashMap childMap = (HashMap)childList.get(i);
				
				// コードリスト ← 申込事業所一覧照会.申込事業所一覧照会明細.申込事業所番号
				subbean.sendMessageString(codeListId, X31CWebConst.DATABEAN_ADD_VALUE, (String)childMap.get("mskm_jigsho_no"));
				
				// 名称リスト ← 申込事業所一覧照会.申込事業所一覧照会明細.通信事業者名
				subbean.sendMessageString(nameListId, X31CWebConst.DATABEAN_ADD_VALUE, String.valueOf(i + 1) + DOT + (String)childMap.get("mskm_jigshonm"));
				
			}
		}
		return ;
	}
	
	/**
	 * プルダウンで選択された値を取得します。
	 * 
	 * @param bean データBean
	 * @param dataTypeBeanName データタイプBean名称
	 * @param listName　ArrayList名称
	 * @param indexName インデックス項目名称
	 * @return String　ArrayListの項目値
	 */
	public static String getPullDownSelectedValue(X31SDataBeanAccess bean, String dataTypeBeanName, String listName, String indexName)
	{
		
		// フォームDataBeanがnullの場合
		if (isNull(bean))
		{
			return null;
		}
		
		// フォームDataTypeBeanNameがnullの場合
		if (isNull(dataTypeBeanName))
		{
			return null;
		}
		
		// フォームListNaneがnullの場合
		if (isNull(listName))
		{
			return null;
		}
		
		// プルダウンデータBeanの取得
		X31SDataBeanAccess comboBean = bean.getDataBeanArray(dataTypeBeanName).getDataBean(0);
		
		// 選択された項目のインデックスを取得
		String selectedIndex = comboBean.sendMessageString(indexName, X31CWebConst.DATABEAN_GET_VALUE);
		return getRidOfNumber(comboBean.sendMessageString(listName, X31CWebConst.DATABEAN_GET_VALUE, Integer.parseInt(selectedIndex)));
	}
	
	/**
	 * コンボボックスの名称リストに付与される番号（1.xxx の"1."）を取り除きます。
	 * @param comboValue　コンボボックス名称値
	 * @return String　返却値
	 */
	public static String getRidOfNumber(String comboValue)
	{
		String rtn = comboValue;
		if(comboValue.contains(DOT))
		{
			rtn = rtn.substring(rtn.indexOf(DOT) + 1, rtn.length()) ;
		}
		return rtn;
	}
	
	/**
	 * プルダウンのインデックスに値を設定します。
	 * @param bean データBean
	 * @param dataTypeBeanName データタイプBean
	 * @param indexName　インデックス名称
	 * @param indexValue　設定値
	 * @return String
	 */
	public static void setPullDownIndex(X31SDataBeanAccess bean, String dataTypeBeanName, String indexName , String indexValue)
	{
		
		// フォームDataBeanがnullの場合
		if (isNull(bean))
		{
			return;
		}
		
		// 選択コードがnullの場合
		if (isNull(indexValue))
		{
			return;
		}
		
		// プルダウン項目IDがnullの場合
		if (isNull(dataTypeBeanName))
		{
			return;
		}
		
		// コードリストIDがnullの場合
		if (isNull(indexName))
		{
			return;
		}
		
		// プルダウンデータBeanの取得
		X31SDataBeanAccess comboBean = bean.getDataBeanArray(dataTypeBeanName).getDataBean(0);
		
		// プルダウンデータBeanがnullの場合
		if (comboBean == null)
		{
			return;
		}
		comboBean.sendMessageString(indexName, X31CWebConst.DATABEAN_SET_VALUE, indexValue);
	}
	
	/**
	 * プルダウンから現在表示しているインデックスを取得します。
	 * 
	 * @param bean データBean
	 * @param dataTypeBeanName
	 * @param idxClmName
	 * @return String
	 */
	public static String getPullDownIndex(X31SDataBeanAccess bean, String dataTypeBeanName, String idxClmName)
	{
		
		// フォームDataBeanがnullの場合
		if (isNull(bean))
		{
			return null;
		}
		
		// プルダウン項目IDがnullの場合
		if (isNull(dataTypeBeanName))
		{
			return null;
		}
		
		// インデックス名称がnullの場合
		if (isNull(idxClmName))
		{
			return null;
		}
		
		// プルダウンデータBeanの取得
		X31SDataBeanAccess comboBean = bean.getDataBeanArray(dataTypeBeanName).getDataBean(0);
		
		// プルダウンデータBeanがnullの場合
		if (comboBean == null)
		{
			return null;
		}
		
		return String.valueOf(getSendMessageString(comboBean, idxClmName));
	}
	
	/**
	 * プルダウンから指定したコードのインデックスを取得します。
	 * @param bean データBean
	 * @param dataTypeBeanName	データタイプビーンの名称
	 * @param listName　データタイプビーンに格納されたリストの名称
	 * @param selectedCode	インデックスを取得するコード
	 * @return String
	 */
	public static String getPullDownIndex(X31SDataBeanAccess bean, String dataTypeBeanName, String listName, String selectedCode)
	{
		
		// フォームDataBeanがnullの場合
		if (isNull(bean))
		{
			return null;
		}
		
		// 選択コードがnullの場合
		if (isNull(selectedCode))
		{
			return null;
		}
		
		// プルダウン項目IDがnullの場合
		if (isNull(dataTypeBeanName))
		{
			return null;
		}
		
		// コードリストIDがnullの場合
		if (isNull(listName))
		{
			return null;
		}
		
		// プルダウンデータBeanの取得
		X31SDataBeanAccess comboBean = bean.getDataBeanArray(dataTypeBeanName).getDataBean(0);
		
		// プルダウンデータBeanがnullの場合
		if (comboBean == null)
		{
			return null;
		}
		
		// プルダウンの項目数を取得
		int itemCount = ((Integer)(comboBean.sendMessage(listName, X31CWebConst.DATABEAN_GET_COUNT))).intValue();
		
		int selectedIndex = 0;
		
		// プルダウン項目より、選択されたインデックスを取得
		for (int i = 0; i < itemCount; i++)
		{
			
			// 選択されたインデックスの場合、ループを終了し、その際のループカウンタをインデックスとする
			if (selectedCode.equals(comboBean.sendMessageString(listName, X31CWebConst.DATABEAN_GET_VALUE, i)))
			{
				selectedIndex = i;
				break;
			}
		}
		return String.valueOf(selectedIndex);
	}
	
	/**
	 * データタイプArrayListの１要素の中から指定の項目の値を取得します。
	 * @param bean データBean
	 * @param beanArrayName データBeanArrayName
	 * @param index　Arrayのインデックス
	 * @param clmName　Array内の要素の項目名
	 * @return String　項目値
	 */
	public static String getBeanArrayValue(X31SDataBeanAccess bean, String beanArrayName, int index, String clmName)
	{
		Integer arrCnt = bean.getDataBeanArray(beanArrayName).getCount();
		if(arrCnt <= index)
		{
			return JZMWebConst.BLANK;
		}
		X31SDataBeanAccess msgBean = bean.getDataBeanArray(beanArrayName).getDataBean(index);
		return	msgBean.sendMessageString(clmName, X31CWebConst.DATABEAN_GET_VALUE);
	}
	
	/**
	 * beanの項目から項目へ値を渡します。
	 * @param bean データBean
	 * @param saki	コピー先項目名称
	 * @param moto	コピー元項目名称
	 */
	public static void shiftBeanValue(X31SDataBeanAccess bean, String saki , String moto)
	{
		setSendMessageString(bean, saki, nullToBlank(getSendMessageString(bean, moto)));
	}
	


	/**
	 * 共通フォームBeanに遷移先画面IDと名称を設定します。
	 * @param commoninfoBean 共通フォームBean
	 * @param nextScreenId 遷移先画面ID
	 * @param nextScreenNm 遷移先画面名
	 */
	public static void setNextScreenInfo(X31SDataBeanAccess commoninfoBean, String nextScreenId, String nextScreenNm)
	{
		// 遷移先画面ID、名称の設定
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_ID,
				X31CWebConst.DATABEAN_SET_VALUE, nextScreenId);
		commoninfoBean.sendMessageString(CommonInfoCFConst.NEXT_SCREEN_NAME,
				X31CWebConst.DATABEAN_SET_VALUE, nextScreenNm);
	}
	
	/**
	 * bean内の指定項目に値（String）を設定します。
	 * @param bean データBean
	 * @param clmName 項目名
	 * @param value 設定値
	 */
	public static void setSendMessageString(X31SDataBeanAccess bean, String clmName , String value)
	{
		bean.sendMessageString(clmName, X31CWebConst.DATABEAN_SET_VALUE, nullToBlank(value));
	}
	
	/**
	 * bean内の指定項目に値（String）を設定します。
	 * @param bean データBean
	 * @param clmName 項目名
	 * @param value 設定値
	 */
	public static void setSendMessageString(X31SDataBeanAccess bean, String clmName , int value)
	{
		setSendMessageString(bean, clmName, String.valueOf(value));
	}
	
	/**
	 * bean内の指定項目に値（boolean）を設定します。
	 * @param bean データBean
	 * @param clmName 項目名
	 * @param value 値
	 */
	public static void setSendMessageBoolean(X31SDataBeanAccess bean, String clmName , boolean value)
	{
		bean.sendMessageBoolean(clmName, X31CWebConst.DATABEAN_SET_VALUE, value);
	}
	
	/**
	 * bean内の指定項目の値を返します。
	 * @param bean データBean
	 * @param clmName 項目名
	 * @return String
	 */
	public static String getSendMessageString(X31SDataBeanAccess bean, String clmName)
	{
		return bean.sendMessageString(clmName, X31CWebConst.DATABEAN_GET_VALUE);
	}
	
	/**
	 * bean内の指定項目の値を返します。
	 * @param bean データBean
	 * @param clmName 項目名
	 * @return boolean
	 */
	public static boolean getSendMessageBoolean(X31SDataBeanAccess bean, String clmName)
	{
		return bean.sendMessageBoolean(clmName, X31CWebConst.DATABEAN_GET_VALUE);
	}
	


	/**
	 * Beanからリストのカウントを取得する。
	 * @param bean データBean
	 * @param listClmNm リスト名
	 * @return カウント
	 */
	public static int getBeanListCount(X31SDataBeanAccess bean, String listClmNm)
	{
		return ((Integer)(bean.sendMessage(listClmNm, X31CWebConst.DATABEAN_GET_COUNT))).intValue();
	}
	
	/**
	 * 引数がnullの場合ブランクを返します。
	 * @param val
	 * @return String
	 */
	public static String nullToBlank(String val)
	{
		String rtn = val;
		if (rtn == null)
		{
			rtn = JZMWebConst.BLANK;
		}
		return rtn;
	}
	
	/**
	 * 行スタイルクラス設定
	 * 一覧の行スタイルクラスを設定します。
	 * @param bean データBean フォームDataBean
	 * @param cbsMsgListKmkNm 一覧の項目名
	 * @param rowStyleClassKmkNm スタイルクラスの項目名
	 */
	public static void setRowStyleClass(X31SDataBeanAccess bean, String cbsMsgListKmkNm, String rowStyleClassKmkNm)
	{
		
		// 一覧のデータリストを取得する。
		X31SDataBeanAccessArray icrnData = bean.getDataBeanArray(cbsMsgListKmkNm);
		
		if(!(icrnData == null))
		{
			for (int i = 0; i < icrnData.getCount(); i++)
			{
				
				// 行のデータを取得する。
				X31SDataBeanAccess rowData = icrnData.getDataBean(i);
				if (i % 2 == 0)
				{
					
					// 行のスタイルクラスを白色にする。
					rowData.sendMessageString(rowStyleClassKmkNm, X31CWebConst.DATABEAN_SET_VALUE, CLASS_STYLE_ODD);
				}
				else
				{
					
					// 行のスタイルクラスを青色にする。
					rowData.sendMessageString(rowStyleClassKmkNm, X31CWebConst.DATABEAN_SET_VALUE, CLASS_STYLE_EVEN);
				}
			}
		}
	}
	
	/**
	 * 表示項目がブランクだった場合、「なし」に置換します。
	 * @param bean データBean
	 * @param tagetItem 表示対象項目
	 */
	public static void replaceBlank(X31SDataBeanAccess bean, String tagetItem)
	{
		
		String taget = getSendMessageString(bean, tagetItem);
		if(JZMWebConst.BLANK.equals(taget))
		{
			setSendMessageString(bean, tagetItem, JZMWebConst.BLANK_NASI);
		}
	}

	/**
	 * 処理区分によって電話番号予約ステータス名称に変更ステータスを付与します。
	 * @param bean データBean
	 * @param clmNam 項目名
	 * @param tranDiv 処理区分
	 */
	public static void setTelnoRsvStatTranDiv(X31SDataBeanAccess bean, String clmNam, String tranDiv)
	{
		String strDiv = JZMWebConst.BLANK;
		if(JZMWebConst.ONE.equals(tranDiv) || JZMWebConst.TWO.equals(tranDiv))
		{
			strDiv = CHG_STAT_RSV;
		}
		else if(JZMWebConst.THREE.equals(tranDiv))
		{
			strDiv = CHG_STAT_NASI;
		}
		
		setSendMessageString(bean, clmNam, bean.sendMessageString(clmNam, X31CWebConst.DATABEAN_GET_VALUE) + strDiv);
	}

	/**
	 * 処理区分によってエイジングステータス名称に変更ステータスを付与します。
	 * @param bean データBean
	 * @param clmNam 項目名
	 * @param tranDiv 処理区分
	 */
	public static void setAgingStatTranDiv(X31SDataBeanAccess bean, String clmNam, String tranDiv)
	{
		String strDiv = JZMWebConst.BLANK;
		if(JZMWebConst.ONE.equals(tranDiv) || JZMWebConst.THREE.equals(tranDiv))
		{
			strDiv = CHG_STAT_USE;
		}
		else if(JZMWebConst.TWO.equals(tranDiv))
		{
			strDiv = CHG_STAT_KAIFK_PSB;
		}
		else if(JZMWebConst.FOUR.equals(tranDiv))
		{
			strDiv = CHG_STAT_KAIFK_FAIL;
		}
		else if(JZMWebConst.FIVE.equals(tranDiv))
		{
			strDiv = CHG_STAT_NASI;
		}
		
		setSendMessageString(bean, clmNam, bean.sendMessageString(clmNam, X31CWebConst.DATABEAN_GET_VALUE) + strDiv);
	}
	
	/**
	 * ステータスの名称に付与される変更ステータスを取り除きます
	 * @param statNm ステータス名称
	 * @return String
	 */
	public static String getRidOfStatTranDiv(String statNm)
	{
		String rtn = statNm;
		if(statNm.contains(ARROW))
		{
			rtn = rtn.substring(0, rtn.indexOf(ARROW)) ;
		}
		return rtn;
	}

	/**
	 * 共通ビーンのメッセージリストに値が存在するかを返します。
	 * @param commonBean
	 * @return boolean
	 */
	public static boolean hasMsgList(X31SDataBeanAccess commonBean) 
	{
		return false;
	}
	
	/**
	 * 選択行の設定を行います。
	 * 一覧明細の中から選択番号を検索し一致するインデックスを選択行に設定します。
	 * 選択番号が一覧明細に存在しない場合は0を設定します。
	 * @param bean データBean
	 * @param choiseColumnName	選択項目名称
	 * @param msgListName		一覧明細名称
	 * @param compColumnName	比較項目名称
	 * @param choiseRowName		選択行名称
	 */
	public static void setChoiseRow(X31SDataBeanAccess bean, 
			String choiseColumnName, 
			String msgListName,
			String compColumnName, 
			String choiseRowName)
	{
		X31SDataBeanAccessArray dataList = bean.getDataBeanArray(msgListName); 
		
		// 選択番号
		String choiseNo = getSendMessageString(bean, choiseColumnName);
		
		for (int i = 0; i < dataList.getCount(); i++) 
		{
			
			// 一覧明細リストの要素Beanの取得
			X31SDataBeanAccess listBean = bean.getDataBeanArray(msgListName).getDataBean(i);
			
			String compNo = getSendMessageString(listBean, compColumnName);
			
			if (nullToBlank(choiseNo).equals(compNo)) 
			{
				
				// 一致する行の選択を選択状態にする
				setSendMessageString(bean, choiseRowName, Integer.toString(i));
				break;
			}
		}
		if(JZMWebConst.BLANK.equals(getSendMessageString(bean, choiseRowName)))
		{
			setSendMessageString(bean, choiseRowName, JZMWebConst.ZERO);
		}
	}
	
	/**
	 * 値に対するラジオボタンINDEXを返却します。
	 * <br>
	 * @param bean データBean
	 * @param dataTypeBeanName データタイプBean
	 * @param valueListName 配列リスト名称
	 * @param value　ラジオボタン設定値
	 * @return ラジオボタンINDEX
	 */
	public static String getRadioValue(X31SDataBeanAccess bean, String dataTypeBeanName, String valueListName, String value)
	{
		X31SDataBeanAccessArray infoList = bean.getDataBeanArray(dataTypeBeanName);
		for(int index = 0; index < infoList.getCount(); index++)
		{
			X31SDataBeanAccess infoBean = infoList.getDataBean(index);
			String listValue = JZMWebCommon.getSendMessageString(infoBean, valueListName);
			if (value.equals(listValue))
			{
				return Integer.toString(index);
			}
		}
		return JZMWebConst.ZERO;
	}
	
	/**
	 * ラジオボタンINDEXに対する値を返却します。
	 * <br>
	 * @param bean データBean
	 * @param dataTypeBeanName データタイプBean
	 * @param valueListName 配列リスト名称
	 * @param index　ラジオボタンINDEX
	 * @return ラジオボタン設定値
	 */
	public static String getRadiSelectoValue(X31SDataBeanAccess bean, String dataTypeBeanName, String valueListName, String index)
	{
		X31SDataBeanAccessArray infoList = bean.getDataBeanArray(dataTypeBeanName);
		X31SDataBeanAccess infoBean = infoList.getDataBean(Integer.parseInt(index));
		String listValue = JZMWebCommon.getSendMessageString(infoBean, valueListName);
		
		return listValue;
	}
	
	/**
	 * 組織権限情報編集部品<BR>
	 * No.1 引継ぎ情報作成処理<BR>
	 * サービスフォームBeanから組織情報を取得し、画面間引継ぎ用のHashMapを作成する。<BR>
	 * 
	 * @param sv_bean サービスフォームBean
	 * @param list_name データタイプBean名
	 * @param key_list サービスフォームBean項目名リスト
	 * @param data_map 画面引継ぎ情報用HashMap
	 * @throws IllegalArgumentException
	 */
	public static void createHktgiOrgInfo(X31SDataBeanAccess sv_bean, String list_name, 
									String[] key_list, HashMap<String, Object> data_map) throws IllegalArgumentException
	{
		JZMEditOrgAndAuthInfo.createHktgiOrgInfo(sv_bean, list_name, key_list, data_map);
	}
	
	/**
	 * 組織権限情報編集部品<BR>
	 * No.2 共有フォームBean設定処理<BR>
	 * サービスフォームBeanから組織情報と権限情報を共有フォームBeanへセットする。<BR>
	 * 
	 * @param cf_bean 共有フォームBean 権限リストにセットされている要素そのもの
	 * @param sv_bean サービスフォームBean
	 * @param org_list_name サービスフォームBeanで組織一覧として設定しているデータタイプBeanの名称
	 * @param index 共有フォームBeanへセットする組織一覧のインデックス
	 * @param key_kmk_nm_list 共有フォームBeanおよびサービスフォームBean 項目名リスト
	 * @param auth_list 権限コードリスト
	 * @param key_kggrp_cd_kmk 権限コード一覧 権限グループコード項目名
	 * @param key_auth_sbt_cd_kmk 権限コード一覧 権限コード項目名
	 */
	public static void setOrgAndAuthInfoForCfBean(X31SDataBeanAccess cf_bean, X31SDataBeanAccess sv_bean, String org_list_name, 
											int index, String[][] key_kmk_nm_list, X31SDataBeanAccessArray auth_list, 
											String key_kggrp_cd_kmk, String key_auth_sbt_cd_kmk)
	{
		JZMEditOrgAndAuthInfo.setOrgAndAuthInfoForCfBean(cf_bean, sv_bean, org_list_name, index, key_kmk_nm_list, auth_list, 
																						key_kggrp_cd_kmk, key_auth_sbt_cd_kmk);
	}
	
	/**
	 * 組織権限情報編集部品<BR>
	 * No.3 サービスフォームBean設定処理<BR>
	 * 統合認証システム連携部品から取得した組織、立場情報をサービスフォームBeanへセットする<BR>
	 * 
	 * @param map_array 統合認証システム連携部品から取得した組織情報リスト
	 * @param beanArray サービスフォームBean 組織情報リスト
	 * @param key_org 統合認証システム連携部品から取得した組織情報の組織コードのKey名称
	 * @param key_pos 統合認証システム連携部品から取得した組織情報の立場コードのKey名称
	 * @param key_joi_org 統合認証システム連携部品から取得した組織情報の上位組織コードのKey名称
	 * @param key_org_bean サービスフォームBean 組織情報リストにセットする組織コードのKey名称
	 * @param key_pos_bean サービスフォームBean 組織情報リストにセットする立場コードのKey名称
	 * @param key_joi_org_bean  サービスフォームBean 組織情報リストにセットする上位組織コードのKey名称
	 */
	public static void setOrgInfoForSvBean(X31SDataBeanAccess bean, HashMap<String, Object> map, String[][] key_list)
	{
		JZMEditOrgAndAuthInfo.setOrgInfoForSvBean(bean, map, key_list);
	}
	
	
	/**
	 * nullかブランクの場合Trueを返します。
	 * @param str 判定対象
	 * @return 判定結果
	 */
	public static boolean isNullOrBlank(String str)
	{
		return str == null || str.length() == 0;
	}

	/**
	 * attachMapを作成します。<BR />
	 * @param shroiKbn 処理区分(0:新規登録, 1:更新）
	 * @param roleCd ロールコード
	 * @param roleNm ロール名
	 * @param tstaymd 適用開始年月日
	 * @param tendymd 適用終了年月日
	 * @param updDateTimeStamp 更新年月日時分秒
	 * @param choiceAuthorityCdList 選択権限コードリスト
	 * @param choiceAuthorityUpdDtmList 選択権限更新年月日時分秒リスト
	 * @param delAuthorityCdList 削除権限コードリスト
	 * @param delAuthorityUpdDtmList 削除権限更新年月日時分秒リスト
	 * @return attachMap
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public static HashMap<String, Object> getRoleAttachMap(int shoriKbn, String roleCd,
			String roleNm, String tstaymd, String tendymd, String updDateTimeStamp,
			ArrayList<String> choiceAuthorityCdList,
			ArrayList<String> choiceAuthorityUpdDtmList,
			ArrayList<String> delAuthorityCdList,
			ArrayList<String> delAuthorityUpdDtmList) throws Exception 
	{
		
		StringBuffer sb = new StringBuffer();
		
		boolean hasChoiceList = false;
		
		if(choiceAuthorityCdList != null)
		{
			for(int i = 0; i < choiceAuthorityCdList.size(); i++)
			{
				if(shoriKbn == 0)
				{
					if(i == 0)
					{
						setAttachMapLine(sb, JZMWebConst.ROLE_DLYD_NEW_ADD, roleCd, roleNm, tstaymd, tendymd, updDateTimeStamp,
								choiceAuthorityCdList.get(i), choiceAuthorityUpdDtmList.get(i));
						hasChoiceList = true;
					}
					else
					{
						setAttachMapLine(sb, JZMWebConst.ROLE_DLYD_NEW_ADD, null, null, null, null, null,
								choiceAuthorityCdList.get(i), choiceAuthorityUpdDtmList.get(i));
					}
				}
				else
				{
					if(i == 0)
					{
						setAttachMapLine(sb, JZMWebConst.ROLE_DLYD_ADD, roleCd, roleNm, tstaymd, tendymd, updDateTimeStamp,
								choiceAuthorityCdList.get(i), choiceAuthorityUpdDtmList.get(i));
					}
					else
					{
						setAttachMapLine(sb, JZMWebConst.ROLE_DLYD_ADD, null, null, null, null, null,
								choiceAuthorityCdList.get(i), choiceAuthorityUpdDtmList.get(i));
					}
				}
			}
		}
		if(delAuthorityCdList != null)
		{
			for(int i = 0; i < delAuthorityCdList.size(); i++)
			{
				if(shoriKbn == 1)
				{
					if(i == 0 && !hasChoiceList)
					{
						setAttachMapLine(sb, JZMWebConst.ROLE_DLYD_DEL, roleCd, roleNm, tstaymd, tendymd, updDateTimeStamp,
								delAuthorityCdList.get(i), delAuthorityUpdDtmList.get(i));
//						setAttachMapLine(sb, JZMWebConst.ROLE_DLYD_DEL, roleCd, roleNm, tstaymd, tendymd, updDateTimeStamp,
//								delAuthorityCdList.get(i), delAuthorityCdList.get(i));
					}
					else
					{
						setAttachMapLine(sb, JZMWebConst.ROLE_DLYD_DEL, null, null, null, null, null,
								delAuthorityCdList.get(i), delAuthorityUpdDtmList.get(i));
//						setAttachMapLine(sb, JZMWebConst.ROLE_DLYD_DEL, null, null, null, null, null,
//								delAuthorityCdList.get(i), delAuthorityCdList.get(i));
					}
				}
			}
		}
		
		if(sb.length() == 0)
		{
			if(shoriKbn == 1)
			{
				setAttachMapLine(sb, JZMWebConst.ROLE_DLYD_ADD, roleCd, roleNm, tstaymd, tendymd, updDateTimeStamp, null, null);
			}
		}
		
		// バイナリ用Map
		HashMap<String, Object> attachMap = new HashMap<String, Object>();
		
		HashMap<String, Object> fileMap = new HashMap<String, Object>();
		ArrayList fileList = new ArrayList();
		fileMap.put(X31CWebConst.TELEGRAM_INFO_ATTACH_FILE,  sb.toString().getBytes(JZMWebConst.ENCODE_MS932));
		fileList.add(fileMap);
		attachMap.put(X31CWebConst.TELEGRAM_INFO_ATTACH_FILE_LIST, fileList);
		
		return attachMap;
	}

	/**
	 * StringBufferにロール_権限のデータを設定します。
	 * @param sb StringBuffer
	 * @param shorikbn 処理区分(0:新規登録 1:追加 2:削除 3:複写登録 4:一括削除)
	 * @param roleCd ロールコード
	 * @param roleNm ロール名
	 * @param roleTstaymd 開始年月日
	 * @param roleTendymd 終了年月日
	 * @param roleUpdDateTimeStamp ロール更新年月日時分秒
	 * @param authorityCd 権限コード
	 * @param authorityUpdDateTimeStamp 権限更新年月日時分秒
	 */
	public static void setAttachMapLine(StringBuffer sb, String shorikbn,
			String roleCd, String roleNm, String roleTstaymd, String roleTendymd, String roleUpdDateTimeStamp,
			String authorityCd, String authorityUpdDateTimeStamp)
	{

		// ロールコード
		String tmpRoleCd = nullToBlank(roleCd);
		
		// ロール名
		String tmpRoleNm = nullToBlank(roleNm);
		
		// ロール適用開始年月日
		String tmpTstaymd = nullToBlank(roleTstaymd);

		// ロール適用終了年月日
		String tmpTendymd = roleTendymd;
		if(tmpTendymd == null)
		{
			tmpTendymd = JZMWebConst.ENDYMD;
		}
		
		// ロール更新年月日時分秒
		String tmpUpdDateTimeStamp = nullToBlank(roleUpdDateTimeStamp);
		
		// 権限コード
		String tmpAuthorityCd = nullToBlank(authorityCd);

		// 権限更新年月日時分秒
		String tmpAuthorityUpdDateTimeStamp = nullToBlank(authorityUpdDateTimeStamp);
		
		sb.append(shorikbn);
		sb.append(JZMWebConst.COMMA);
		sb.append(tmpRoleCd);
		sb.append(JZMWebConst.COMMA);
		sb.append(tmpRoleNm);
		sb.append(JZMWebConst.COMMA);
		sb.append(tmpTstaymd);
		sb.append(JZMWebConst.COMMA);
		sb.append(tmpTendymd);
		sb.append(JZMWebConst.COMMA);
		sb.append(tmpUpdDateTimeStamp);
		sb.append(JZMWebConst.COMMA);
		sb.append(tmpAuthorityCd);
		sb.append(JZMWebConst.COMMA);
		sb.append(tmpAuthorityUpdDateTimeStamp);
		sb.append(JZMWebConst.KAIGYO);
	}
	

	/**
	 * HashMapとDataBeanの変換を行います。
	 * @param paramMap 引継ぎ情報を格納したHashMap
	 * @param bean 引継ぎ情報を設定するDataBean
	 * @throws makeJCCFrameworkException 
	 */
	@SuppressWarnings("unchecked")
	public static void setMapToDataBean(HashMap<String, Object> paramMap, X31SDataBeanAccess bean) throws Exception
	{
		Iterator ite = paramMap.keySet().iterator();
		while(ite.hasNext())
		{
			String key = (String)ite.next();
			Object value = paramMap.get(key);
			
			// 値がNULLの場合、次へ
			if(value == null)
			{
				continue;
			}
			
			// 引継ぎ情報がString型の場合
			if(value instanceof String)
			{
				bean.sendMessageString(key, X31CWebConst.DATABEAN_SET_VALUE, (String)paramMap.get(key));
			// 引継ぎ情報がLong型の場合
			}
			else if(value instanceof Long)
			{
				bean.sendMessageLong(key, X31CWebConst.DATABEAN_SET_VALUE, (Long)paramMap.get(key));
			// 引継ぎ情報がBoolean型の場合
			}
			else if(value instanceof Boolean)
			{
				bean.sendMessageBoolean(key, X31CWebConst.DATABEAN_SET_VALUE, (Boolean)paramMap.get(key));
			// 引継ぎ情報がString[]型の場合
			}
			else if(value instanceof String[])
			{
				X31CVector<String> vec = new X31CVector<String>();
				for(String s:(String[])value)
				{
					vec.add(s);
				}
				bean.sendMessageStringArray(key, X31CWebConst.DATABEAN_SET_DEF_VALUE, vec);
			// 引継ぎ情報がLong[]型の場合
			}
			else if(value instanceof Long[])
			{
				X31CVector<Long> vec = new X31CVector<Long>();
				for(Long s:(Long[])value)
				{
					vec.add(s);
				}
				bean.sendMessageLongArray(key, X31CWebConst.DATABEAN_SET_DEF_VALUE, vec);
			// 引継ぎ情報がBoolean[]型の場合
			}
			else if(value instanceof Boolean[])
			{
				X31CVector<Boolean> vec = new X31CVector<Boolean>();
				for(Boolean s:(Boolean[])value)
				{
					vec.add(s);
				}
				bean.sendMessageBooleanArray(key, X31CWebConst.DATABEAN_SET_DEF_VALUE, vec);
			// 引継ぎ情報がArrayList型の場合
			}
			else if(value instanceof ArrayList)
			{
				
				X31SDataBeanAccessArray subBeanArray = null;
				try
				{
					subBeanArray = bean.getDataBeanArray(key);
				}
				catch (X31SRuntimeException sre)
				{
					continue;
				}
				
				// 固定長配列用カウンタ
				int i = 0;
				for(Object map : (ArrayList)value)
				{
					// リストの最後尾に要素を追加する。
					X31SDataBeanAccess beanArray = subBeanArray.addDataBean();
					
					// 固定長配列の場合、addDataBeanの戻り値はnullの為、カウンタを使用し明示的に要素を取得する。
					if (beanArray == null)
					{
						beanArray = subBeanArray.getDataBean(i);
						// カウンタをインクリメントする。
						i++;
					}
					
					HashMap listMap = (HashMap)map;
					// 再起呼び出し
					setMapToDataBean(listMap, beanArray);
				}
				
			// 上記以外の場合は例外をthrowする。
			}
			else
			{
				throw new JCCFrameworkException("JZMWebCommon#getScreenInfoでサポートされていないオブジェクトの型です。");
			}
		}
	}
	

	/**
	 * 
	 * @param bean サービスフォームBean
	 * @param choiceAuthorityCdListNm 選択権限コードリスト項目名称
	 * @param choiceAuthorityCdNm 選択権限コード項目名称
	 * @param authCd 比較権限コード
	 * @return インデックス(見つからない場合は -1)
	 */
	public static int getSameAuthorityCdIndex(X31SDataBeanAccess bean, String choiceAuthorityCdListNm, String choiceAuthorityCdNm, String authCd)
	{
		for(int j = 0; j < bean.getDataBeanArray(choiceAuthorityCdListNm).getCount(); j++)
		{
			X31SDataBeanAccess comboBean = bean.getDataBeanArray(choiceAuthorityCdListNm).getDataBean(j);
			if(authCd.equals(JZMWebCommon.getSendMessageString(comboBean, choiceAuthorityCdNm)))
			{
				return j;
			}
		}
		return -1;
	}
	
	/**
	 * 指定された権限コードが共有フォームBeanにセットされているか判定する。
	 * @param vl ビューロジック
	 * @param map 共有フォームBeanから取得した権限コードマップ(JCCWebCommon.SetAuthorityList)
	 * @param prp_map 権限プロパティに設定されているKey Valueのマップ
	 * @param key 権限プロパティKey
	 * @return boolean true:共有フォームBeanにセットされている false:セットされていない
	 */
	public static boolean judgeAuthorityCd(X31BWebBusinessLogic vl, HashMap<String, String> map, HashMap<String, String> prp_map, String key)
	{
		return JZMJudgeAuthority.judgeAuthorityCd(vl, map, prp_map, key);
	}
	
	/**
	 * プルダウンのコード区分値を全行分取得し、カンマ区切りで格納して出力する。
	 * @param bean データBean
	 * @param dataTypeBeanName データタイプBean名称
	 * @param listName ArrayList名称
	 * @return カンマ区切りで格納されたプルダウンのコード区分値
	 */
	public static String getPullDownAllValue(X31SDataBeanAccess bean, String dataTypeBeanName, String listName)
	{
		
		// コード区分情報Beanの取得
		X31SDataBeanAccess divListBean = bean.getDataBeanArray(dataTypeBeanName).getDataBean(0);
		
		StringBuffer pulldownValue = new StringBuffer();
		String divValue = new String();

		// コンボボックスのデータ数を取得
		int cnt = JZMWebCommon.getBeanListCount(divListBean, listName);
		
		for (int i = 0; i < cnt; i++) 
		{
			
			// コンボボックスの対象行の値を取得
			divValue = divListBean.sendMessageString(listName, X31CWebConst.DATABEAN_GET_VALUE, i);

			if (i > 0)
			{
				pulldownValue.append(",");
				pulldownValue.append(divValue);
			}
			else
			{
				pulldownValue.append(divValue);
			}
		}
		
		return pulldownValue.toString();
	}
	

	/**
	 * 引数が数値か判定する。
	 * @param str 対象文字列
	 * @return 判定結果
	 */
	public static boolean isNumeric(String str)
	{
		if(str == null)
		{
			return false;
		}
		if(str.matches(REGEX_NUMBER))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 共有フォームBeanにセットされた特別権限組織コードを取得する。
	 * @param cf_bean 共有フォームBean
	 * @param kind 種別 1:SPRi
	 * @return ArrayList<String> 特別権限組織コード
	 */
	public static ArrayList<String> getSpclAuthOrgCd(X31SDataBeanAccess cf_bean, int kind)
	{
		return JZMJudgeAuthority.getSpclAuthOrgCd(cf_bean, kind);
	}

	/**
	 * サービスフォームBeanの指定項目にnullを設定する。
	 * @param bean サービスフォームBean
	 * @param clmNm 項目名
	 */
	public static void setNullToBeanClm(X31SDataBeanAccess bean, String clmNm)
	{
		setSendMessageString(bean, clmNm, null);
	}
	
}
