データを一意に識別するキーとなるフィールド。Module には System Field として Id が 1 つ必要です(追加・更新・削除の対象となるデータを特定するため)。
- System Field として: Module のデータの主キー(追加・更新・削除をするなら必須)
- 一般 Field として: 別テーブルの Id を保持する外部キー的な用途
System Field の Id と一般 Field の Id の違いは本ページ下部の「System Field の Id と一般 Field の Id」を参照してください。
Id の値をどう決めるかで 3 つの方式があります。
| 方式 | 設定 | 用途 |
|---|---|---|
| DB 自動生成 | 手動入力: false + DB 側で AUTO_INCREMENT / SERIAL / IDENTITY |
連番の ID |
| ユーザー入力 | 手動入力: true |
見積番号・商品コードなど、人間が決める ID |
| 複合 Id | 複合ID + 複合IDの区切り文字 |
複数 Field を結合した ID(例: 姓 + 名) |
| C#名 | 日本語表示名 | 説明 |
|---|---|---|
| - | フィールドタイプ | Id 固定 |
| C#名 | 日本語表示名 | 型 | 既定値 | 説明 |
|---|---|---|---|---|
| Name | 名前 | string | "" |
フィールド識別子 |
| DisplayName | 表示名 | string | "" |
画面表示用の名前 |
| DbColumn | DBカラム | string | "" |
対応する DB 列名 |
| IsManualInput | 手動入力 | bool | false |
ユーザー入力にする(オフなら DB 自動生成を期待) |
| Placeholder | プレースホルダー | string | "" |
未入力時の案内文 |
| CompositeIdVariables | 複合ID | List<string> | [] |
複合 Id を構成する他 Field 名 |
| CompositeIdSeparator | 複合IDの区切り文字 | string | "" |
複合 Id の区切り文字 |
| IsRequired | 必須 | bool | false |
入力必須 |
| IsUpdateProtected | 更新無効 | bool | false |
更新時に値を変更できないようにする |
| OnDataChanged | データ変更イベント | string | "" |
値変更時のスクリプトイベント |
| IgnoreModification | 変更判定から除外 | bool | false |
変更検知(IsModified)から除外 |
| C#名 | 日本語表示名 | 型 | 既定値 | 説明 |
|---|---|---|---|---|
| IsSimpleSearchParameter | 簡易検索条件 | bool | false |
簡易検索の対象にする |
| AllowEmptySearch | 空検索を許可 | bool | false |
空での検索を許可する |
| OnSearchDataChanged | 検索モードデータ変更イベント | string | "" |
検索条件が変更された時のスクリプトイベント |
| SearchComparisonDefaultValue | テキスト検索の比較方法(初期値) | enum? | null | 検索の既定比較(Equal / Like) |
注意: System Field の Id は Name を "Id" から変更できません。DB 列の名前が異なる場合は
DbColumnプロパティで調整してください。
| 名前 | 型 | 説明 |
|---|---|---|
Value |
string? | Id の値 |
SearchValue |
string? | 検索値 |
SearchComparison |
MatchComparison | 検索比較(Equal / Like) |
共通プロパティは Field 共通プロパティ を参照。
// Id 検索条件を動的に設定
await this.Id.SetSearchValueAsync("CUS-0001");
await this.Id.SetSearchComparisonAsync(MatchComparison.Like);
// ModuleSearcher で Id を条件にする
var searcher = new ModuleSearcher<Customer>();
searcher.AddEquals(c => c.Id.Value, selectedId);
var result = searcher.Execute();Id には 2 種類があります。
- Module の主キー。追加・更新・削除の際にこの値でデータを特定する
- Name は
"Id"で固定(変更不可) - 1 Module に必ず 1 つ必要(DB 操作をする場合)
- 主キーではなく、別テーブルの Id を保持する用途
- Name は自由に変更可能(例:
CustomerId,AuthorId) - 他モジュールと紐付けるための外部キーとして使う
見積書 モジュールの場合:
| Field 名 | 種類 | 用途 |
|---|---|---|
Id |
System Field | 見積書を特定する主キー |
CustomerId |
一般 Field(Id 型) | どの顧客の見積書かを指す外部キー |
CustomerId は 顧客 モジュールと紐づけるためのキーで、主キーではありません。
IdField の検索 UI は TextField と同じ挙動です。簡易/詳細 + 空検索許可 で UI が 3 段階に変わります。
入力欄のみが描画されます。常に部分一致(LIKE %入力値% 相当)で検索されます。
入力欄の右側に 比較演算子ドロップダウン が出ます。
| 演算子 | 挙動 |
|---|---|
| 部分一致(既定) | LIKE %値% で含むものを検索 |
| 完全一致 | = 値 で完全一致 |
ドロップダウンに 空 / 空以外 が追加されます。
| 演算子 | 挙動 |
|---|---|
| 部分一致(既定) | LIKE %値% |
| 完全一致 | = 値 |
| 空 | NULL または空文字 |
| 空以外 | 何か値がある |
ID は通常システムが付番するので、検索では「ID の一部を覚えていてリスト先頭から探す」用途で部分一致が便利です。
検索全体の仕組みは SearchField を参照。
- Field 共通プロパティ
- Field 全体 — System Field の一覧
- Link — 他モジュールの Id を選択する GUI を提供
- SearchField — 検索全体の仕組み
- チュートリアル: はじめてのモジュール作成



