[[pirka]]~
[[IOP-toolの使い方]]
*機能拡張2:選択リストをカスタマイズ [#z87341aa]
**1.選択リスト カスタマイズクラス作成 [#vaf7ce92]
***選択リストクラスを継承したクラスを作成する。 [#cb05ca5d]
/**
* 所属部門マスター 選択リスト カスタマイズクラス<BR>
* @author
*
*/
public class GroupmasterSelectListEx extends GroupmasterSelectList{
}
***選択リストをデータベースより取得する直前にDAOに対して検索条件や並び順を設定するとき、又は選択リストに未選択項目が必要なとき [#l4d39d72]
選択リスト カスタマイズクラスに protected void preSearch(DaoBase dao) のオーバーライドを行う
@Override
/**
* 選択リストを部門コードの降順にする
* 選択リストの先頭に全部門を追加
*
*/
protected void preSearch(DaoBase dao){
// DBから取得のソート順を部門コードの降順に設定
dao.addSortDescParameter("groupcode");
// 選択リストの先頭に全部門を追加
selectList.add("全部門", "");
}
***表示される選択リストの値を編集したいとき [#wa69b101]
選択リスト カスタマイズクラスに protected void addSelectListItem(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 SelectList afterSearch(SelectList 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);