Skip to content

Latest commit

 

History

History
209 lines (143 loc) · 9.83 KB

Select.md

File metadata and controls

209 lines (143 loc) · 9.83 KB

SelectField (セレクト)

これは何か

プルダウンから選択するフィールド。候補は直接指定することも、他モジュールから動的に引くこともできます。

いつ使うか

  • ステータス・カテゴリ・都道府県など、あらかじめ決まった選択肢からの選択
  • 他モジュールのデータを候補として表示(例: 担当者一覧から選ぶ)
  • 3 つ以上の選択肢で検索条件を複数選びたい場合

選択肢が 2 つなら Boolean、ラジオボタン表示なら RadioGroup が向きます。


デザイナでの設定

SelectFieldのプロパティパネル

プロパティ一覧

システム

C#名 日本語表示名 説明
- フィールドタイプ セレクト 固定

基本設定

C#名 日本語表示名 型 既定値 説明
Name 名前 string "" フィールド識別子
DisplayName 表示名 string "" 画面表示用の名前
DbColumn DBカラム string "" 対応する DB 列名(Join 可)
EnumName 列挙型名 string "" デザインで定義した列挙型の名前。指定するとそのメンバーが候補になる(Candidates・モジュール候補より優先)
Candidates 選択肢一覧 List<string> [] 固定候補。1 行 1 候補、"表示文字,値" 形式
ValueVariable 値用変数 string "" モジュール候補で「値」として使う Field 名
DisplayTextVariable 表示用変数 string "" モジュール候補で「表示文字」として使う Field 名
EmptyCandidateType 空の選択肢の種別 enum StringEmpty 未選択時の扱い
IsRequired 必須 bool false 入力必須
IsUpdateProtected 更新無効 bool false 更新時に値を変更できないようにする
OnDataChanged データ変更イベント string "" 値変更時のスクリプトイベント
IgnoreModification 変更判定から除外 bool false 変更検知(IsModified)から除外

検索設定

C#名 日本語表示名 型 既定値 説明
IsSimpleSearchParameter 簡易検索条件 bool false 簡易検索の対象にする
AllowOrSearch OR検索を許可 bool false 検索時の複数選択(OR)を許可
OrSearchLayoutType OR検索の候補の並べ方 enum Vertical OR 検索のチェックボックスの並べ方。Vertical(縦): 1 行に 1 候補 / Horizontal(横(折り返し)): 横に並べ、幅に収まらなければ折り返す
AllowEmptySearch 空検索を許可 bool false 空での検索を許可する
OnSearchDataChanged 検索モードデータ変更イベント string "" 検索条件が変更された時のスクリプトイベント

絞り込み条件(モジュール候補)

モジュールから候補を引く場合の設定です。固定候補(Candidates)を使う場合は不要です。

C#名 日本語表示名 型 既定値 説明
SearchCondition.ModuleName モジュール名 string "" 候補を取得するモジュール名
SearchCondition.Condition 抽出条件 MultiMatchCondition - 候補の絞り込み条件(「設定を開く」から編集)
SearchCondition.LimitCount 件数上限 int 50 取得する候補の最大件数
SearchCondition.SortConditions ソート List [] 候補の表示順

候補の指定方式

固定候補(Candidates)

シンプルに決め打ちの選択肢を並べたい場合。 表示文字,値 の形式で 1 行 1 候補を記述します。値を省略すると表示文字がそのまま値になります。

選択肢 A,A
選択肢 B,B
選択肢 C,C

列挙型(EnumName)

デザインで定義した列挙型を候補にする場合は EnumName に列挙型名を指定します。列挙型のメンバーが候補になり、Candidates やモジュール候補より優先されます。

モジュール候補(SearchCondition)

他モジュールのデータを候補にする場合:

  1. SearchCondition.ModuleName で対象モジュールを指定
  2. ValueVariable で値として使う Field を指定
  3. DisplayTextVariable で表示文字として使う Field を指定
  4. 必要に応じて Condition / LimitCount / SortConditions で絞り込み

スクリプトから

プロパティ

名前 型 説明
Value string? 選択値(Category.Value = "A"; で設定)
DisplayText string? 表示テキスト
SearchValue string? 検索値(代入で設定)
SearchValues List<string> 複数選択検索値(代入で設定)
SearchIsEmpty bool? 空検索(代入で設定)
IsInverted bool NOT 検索(読み取り専用。設定は SetNotFlag)
AllowReloadLinkData bool 候補の再読み込み許可
AllowLoadCandidates bool モジュール候補を読み込むか(既定 true)。false の間は候補を取得しない

メソッド

名前 戻り値 説明
SetCandidates(params string[]) void 候補を差し替える(表示文字 = 値)
SetCandidates(Dictionary<string, string>) void 候補を差し替える(キー = 表示文字、値 = 値)
ReloadCandidates() Task<bool> モジュール候補を再取得
SetAdditionalCondition(ModuleSearcher) void 候補の絞り込み条件を追加
SetNotFlag(bool) Task NOT 検索フラグを設定

共通プロパティは Field 共通プロパティ を参照。

よく使う例

// 選択値に応じて別の Field を出し分け
void Status_OnDataChanged()
{
    ReasonField.IsVisible = Status.Value == "rejected";
}

// 候補を動的に差し替え
Category.SetCandidates(new Dictionary<string, string> {
    { "カテゴリ A", "A" },
    { "カテゴリ B", "B" }
});

// 他モジュール連携時、候補を条件で絞り込む
var cond = new ModuleSearcher<Department>();
cond.AddEquals(d => d.IsActive.Value, true);
Assignee.SetAdditionalCondition(cond);
Assignee.ReloadCandidates();

検索での挙動

候補と同じドロップダウンが検索フォームに出ます。選んだ値で 一致 検索が基本です。

検索条件の Select 同士を連動させる場合: 候補の絞り込み条件(SearchCondition の FieldVariableMatchCondition)が参照するのは Value ですが、検索条件の入力は SearchValue に入ります。親側の OnSearchDataChanged で 親.Value = 親.SearchValue; と 1 行コピーすると、親の変更で子の候補がリアルタイムに取り直され、候補から外れた子の選択値は自動でクリアされます。詳細は 検索条件の Select 連動 を参照。

簡易検索(IsSimpleSearchParameter=true)

SelectField 簡易検索

ドロップダウンのみ。選んだ値で一致検索。

詳細検索(IsSimpleSearchParameter=false)

SelectField 詳細検索(既定)

ドロップダウンの右側に モード切替(一致 ボタン) が出ます。クリックで 一致 / 不一致 を切り替えられます。

モード 挙動
一致(既定) 選んだ値と等しいデータ(= 値)
不一致 選んだ値と異なるデータ(!= 値)

詳細検索 + 空検索を許可(IsSimpleSearchParameter=false, AllowEmptySearch=true)

SelectField 詳細検索(空検索を許可)

モード切替に 空 / 空以外 が追加されます。

Or 検索(AllowOrSearch=true)

SelectField Or検索

候補がチェックボックスのリストに変わり、複数選択 できます。選択した複数値のうちいずれかに一致するデータが対象(OR 結合)。モード切替で 不一致 にすれば「いずれにも一致しない」検索になります。

チェックボックスの並べ方は OrSearchLayoutType(OR検索の候補の並べ方)で指定します。既定の Vertical(縦)は 1 行に 1 候補、Horizontal(横(折り返し))は横に並べて幅に収まらなければ折り返します。

例: カテゴリで「アパレル」「家電」両方を選択 → どちらかのカテゴリの行を全部表示。

スクリプトから

// 検索値を設定
Category.SearchValue = "アパレル";

// 不一致(NOT)モード
Category.SetNotFlag(true);

// 空モード
Category.SearchIsEmpty = true;

検索全体の仕組みは SearchField を参照。


関連項目