[[pirka]]~
[[IOP-toolの使い方]]

*機能拡張2:選択リストをカスタマイズ [#z87341aa]

**1.選択リスト カスタマイズクラス作成 [#vaf7ce92]
***選択リストクラスを継承したクラスを作成する。 [#cb05ca5d]
 /**
  * 所属部門マスター 選択リスト カスタマイズクラス<BR>
  * @author
  *
  */
 public class GroupmasterSelectListEx extends GroupmasterSelectList{
 }

***選択リストをデータベースより取得する直前にDAOに対して検索条件や並び順を設定するとき、又は選択リストに未選択項目が必要なとき [#l4d39d72]
選択リスト カスタマイズクラスに protected void preSearch(Dao&#x42;ase dao) のオーバーライドを行う
	@Override
	/**
	 * 選択リストを部門コードの降順にする
	 * 選択リストの先頭に全部門を追加
	 * 
	 */
	protected void preSearch(DaoBase dao){
		// DBから取得のソート順を部門コードの降順に設定
		dao.addSortDescParameter("groupcode");
		// 選択リストの先頭に全部門を追加
		selectList.add("全部門", "");
	}

***表示される選択リストの値を編集したいとき [#wa69b101]
選択リスト カスタマイズクラスに protected void addSelect&#x4c;ist&#x49;tem(Grouopmaster record) のオーバーライドを行う
	@Override
	/**
	 * 選択リストの表示値は、部門コード+半角スペース+部門名称にする
	 * 
	 */
	protected void addSelectListItem(Grouopmaster record) {
		String optionValue = DaoBase.changeString(record.getGroupName());
		String sendValue = DaoBase.changeString(record.getGroupCode());
		if(optionValue == null && sendValue == null){
			selectList.add("");
		} else if(optionValue == null && sendValue != null){
			selectList.add(sendValue);
		} else if(optionValue != null && sendValue == null){
			selectList.add(optionValue);
		}
		// 表示値に部門コード+半角スペースを付加
		selectList.add(sendValue + " " + optionValue, sendValue);
	}

***データベースより取得した選択リストに対して何らかの処理を行いたいとき [#c0bde18d]
選択リスト カスタマイズクラスに protected Select&#x4c;ist afterSearch(Select&#x4c;ist selectList) のオーバーライドを行う	
	@Override
	/**
	 * 選択リストの表示値に連番を追加
	 * 
	 */
	protected SelectList afterSearch(SelectList selectList) {
		SelectList newList = new SelectList();
		String optionValue;
		String sendValue;
		int i = 0;
		for (SelectListItem item:selectList.getSelectListItems()){
			// 表示値に連番を付加
			optionValue = i + " : " + item.getOptionValue();
			sendValue = item.getSendValue();
			newList.add(optionValue, sendValue);
			i++;
		}
		return newList;
	}
**2.入力画面/変更画面Javaクラス画面でカスタマイズした選択リストの設定 [#l17c15f4]

入力画面/変更画面Javaクラスの、コンストラクタ
		// 選択リストの設定
		// 所属部門マスター 選択リスト カスタマイズクラス
		GroupmasterSelectListEx groupItem = new GroupmasterSelectListEx();
		SelectList field_groupCode_select_list = groupItem.getSelectList();
		fm.setSelectList("field_groupCode", field_groupCode_select_list); // 所属部門
&ref(SELECTCUSTOM_01.png,wrap);
&size(40){&color(red){→};}; &ref(SELECTCUSTOM_02.png,wrap);

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS