2021/04/30

MANUAL

FAQ:サンプルコード:親テーブルの項目の値を子テーブルの項目に転記する

## 概要 リンク機能で親子関係を結んでいるテーブルにおいて、親テーブルで入力された項目の値を子テーブルの項目に転記します。 例として、[Aテーブル(親)] [Bテーブル(子)]の時、 Bテーブルの「分類A」をリンク項目として、 Bテーブルの「分類B」にAテーブルの「分類A」の値をセットする場合のサンプルコードを以下に記載します。(この例では、Bテーブルにスクリプトを設定します) プリザンターでは「$p.apiGet」を使用すると、レコードIDを指定するだけでajaxのPOSTリクエストによる値の取得が可能です。 ## 事前準備 1. スクリプトを設定したいテーブルを選択してレコード一覧画面を表示する 1. 画面右上の[管理]-[テーブルの管理]を選択し、テーブルの管理画面を表示する 1. [スクリプト]タブを選択後「新規作成」ボタンを押下し、スクリプトの設定を行う 1. 「タイトル」「[スクリプト](/manual/table-management-script)」を記述したら、「出力先」で"新規作成","編集"にチェックを付ける  ※[ダイアログで編集]の設定をしている場合、"一覧"にもチェックが必要です ##### JavaScript ``` //編集画面読込時のイベント $p.events.on_editor_load = function () { getParentData(); } //Bテーブルの「分類A」の値が変更されるたびに呼び出されるイベント $(document).on('change', '#' + $p.tableName() + '_ClassA', function () { getParentData(); }); function getParentData() { //Bテーブルの「分類A」に値がセットされている場合のみ、Aテーブルの指定したレコードの値を取得する if ($('#' + $p.tableName() + '_ClassA').val()) { $p.apiGet({ //Bテーブルの「分類A」の値(レコードID)を指定 'id': $p.getControl('ClassA').val(), 'done': function (data) { //Bテーブルの「分類B」にAテーブルから取得した「分類A」の値をセット $p.set($p.getControl('ClassB'), data.Response.Data[0].ClassA); }, 'fail': function (data) { console.log(data); } }); } else { //Bテーブルの「分類A」に値がセットされていない場合、Bテーブルの「分類B」に空文字をセット $p.set($p.getControl('ClassB'), ''); } } ```
このページをシェアする