ブログ

2023/06/07
【プリザンター】 第198回)読取専用項目の値を指定項目へ転記する方法

読取専用項目の取り扱い

こんにちは、シーイーシーカスタマサービスの森山です。

プリザンターではレコードの新規作成、更新を行った際に編集画面の上部(以下の画像の青線部分)にその情報(日付やユーザ名)が表示されます。



この情報はユーザマニュアルにも記載のある通り「配置」の変更はできず、常に画面上部に表示されます。

別テーブルでレコードのデータを使う場合、これらの情報も項目に転記して使用したいという場面があります。ただ、新規作成や更新の情報はその操作が行われた時に初めて表示されるため、どのように情報を取得したら良いのか困られている方もいらっしゃるのではないでしょうか。
このような場合にサーバスクリプトを使うと、エディタ画面上の項目へこれらの情報を転記することができ、別テーブルからの情報取得が可能となります。

そこで今回は、レコードの作成情報と更新情報を転記するサーバスクリプトについてご紹介します。

サーバスクリプトで設定

はじめに、レコードの作成情報を転記する項目を以下の通り設定します。この時、作成者を転記する[分類A]の選択肢一覧には [[Users]] を設定します。

作成日時 → 日付A ※エディタの書式は 任意のもの を設定
作成者 → 分類A ※選択肢に [[Users]] を設定

項目の設定ができたら、テーブルの管理 > サーバスクリプト にて以下の条件を指定し、コードを記載します。
■条件:作成後


model.DateA = model.CreatedTime;
model.ClassA = model.Creator;
model.UpdateOnExit = true;


次に、レコードの更新情報を転記する項目を以下の通り設定します。この時、更新者を転記する[分類B]には作成者同様に選択肢一覧に [[Users]] を設定します。
なお、この設定はバージョン1.3.34.0以上から使用可能となりますのでご注意ください。
また、この設定とあわせて履歴管理を行う場合には、テーブルの管理 > エディタ の下部にある「自動バージョンアップ」の「既定」または「無効」を設定してください。
「既定」を設定した場合:
 更新日、更新者が異なる場合に新バージョンとして履歴が1つ記録されます。
「無効」を設定した場合:
 編集画面「新バージョンとして保存」に手動でチェックを入れて更新すると、履歴が1つ記録されます。
 なお、「新バージョンとして保存」にチェックを入れずに更新した場合は、履歴は記録されません。
「常時」を設定した場合:
 レコード更新後さらにレコードを更新する操作が行われるため、履歴が2つ記録されます。

更新日時 → 日付B ※エディタの書式は 任意のもの を設定
更新者 → 分類B ※選択肢に [[Users]] を設定

項目の設定ができたら、テーブルの管理 > サーバスクリプト にて以下の条件を指定し、コードを記載します。
■条件:更新後

if (context.ServerScript.ScriptDepth === 0) {//初回の呼び出しであることをチェック
model.DateB = model.UpdatedTime;
model.ClassB = model.Updator;
model.UpdateOnExit = true;
}


上記2つの設定を行うと、画像の通り表示されます。なお、日付項目のエディタの書式は 作成日時「年月日」、更新日時「日付と時刻(秒)」 を設定しています。

まとめ

いかがでしたか?

条件でレコードを絞り込んだり、別のテーブルで使用する際に「読取専用の情報」が任意の項目にあると使いやすくなります。また、今回ご紹介した作成・更新情報だけでなく「レコードIDの取得」にも応用できますので、是非一度お試しください。

弊社ではスタイル・スクリプトサンプル集、プリザンター逆引き辞典だけでなく、運用ノウハウ集、Dockerを使った構築の販売もございます。
また、PDF帳票出力支援パックの販売も開始しています。
導入の支援や、スクリプト開発などの支援も行っておりますので、まずは気軽にご相談ください。
※ご相談の内容によっては有料となる場合がございます。予めご了承ください。
☆☆☆
ブログ内容への質問や追加説明をご希望の方は【 問い合わせフォーム 】からお気軽にお問合せください。
☆☆☆

PAGE TOP