4.1. Read-only切り替えチェックボックスの作成
「記入済み」チェックボックスにチェックを入れると、そのレコードがRead-Onlyになるよにします。
1. 以下のSQLを実行してください。
ALTER TABLE adempiere.lja_processtransaction ADD COLUMN processed character(1) NOT NULL DEFAULT 'N'::bpchar
2. [メニュー]-[アプリケーション設定]-[テーブルとカラム]から、「テーブル名:lja_processtransaction」レコードにて、「DBからカラムを作成」ボタンをクリックしlja_processtransaction.Processedカラムを作成します。
「テーブルとカラム]ウィンドウの「カラム」タブに移動し、「Processed」を選択して、以下のように設定してください。
常に更新可能 | チェックいれる |
3. [メニュー]-[アプリケーション設定]-[ウィンドウ、タブ&フィールド]を選択し、「名前:工程A作業実績」を開いて、「タブ」タブに移動し、「フィールドを作成」ボタンをクリックします。
確認メッセージが表示されるのでOKボタンをクリックすると「Processedフィールド作成」メッセージが表示されます。
続いて、「フィールド翻訳」タブに移動し「Processed」の翻訳を「記入済み」と設定します。
これで設定は終わりです。
「工程A作業実績」ウィンドウを開くと、「記入済み」チェックボックスが作成されていることがわかります。
「記入済み」チェックボックスにチェックを入れると、Read-Onlyとなることがわかります。
各フィールド(入力項目)で色がついていますが、色の意味は下記の通りです。
赤色 | 入力必須項目でまだ未入力。 |
青色 | 入力必須項目で入力済み。変更可能。 |
アイボリー | 読取のみ可能 |
既存ウィンドウに入力フィールドを追加する方法はWikiページに記載されている手順でも行えます。
もう理解いただけたかと思いますが「Processed」カラムは対象レコードをRead-Onlyにするフラグです。ADempiereにはこのような特殊カラムが存在し、そのようなカラムはWikiページに記載されていますので興味のある方はご参考ください。
4.2. Dynamic validationsの設定
もうすでに「完成」欄にチェックが入っている作業実績がある場合、新しいレコード作成時その製造Noが選択できないようにします。
1. [メニュー]-[アプリケーション設定]-[妥当性検証ルール]を開き、下記のように設定し保存します。
名前 | Work Process Validation |
タイプ | SQL |
検証コード | lja_processcontrolmaster_id not in (select lja_processcontrolmaster_id from adempiere.lja_processtransaction pt where pt.iscomplete = 'Y' and pt.workprocess='@workprocess@') |
2. 続いて[メニュー]-[アプリケーション設定]-[テーブルとカラム]を開き、「lja_processtransaction」の「動的妥当性検証」欄に「Work Process Validation」を選択し保存します。
これで終了です。ではさっそく試してみましょう。製造管理マスタは以下のように設定されているとします。
「工程A作業実績」を開き、製造No"20111208"を完成とします。
すると新規レコード作成時、「製造No"20111208"」が選択できなくなります。