ユーザマニュアル





2024/04/29

MANUAL

FAQ:親テーブルの項目の値を子テーブルの項目に転記したい

## 回答 「[スクリプト](/manual/table-management-script)」を使用します。 **NET Framweork版 0.50.251 以降、.NET Core版 1.1.27 以降のバージョンでは「[ルックアップ](/manual/table-management-lookup)」機能で実現できます。** --- ## 概要 「[リンク](/manual/table-management-choices-text-link)」機能で親子関係を結んでいるテーブルにおいて、親テーブルで入力された項目の値を子テーブルの項目に転記します。 例として、[Aテーブル(親)] [Bテーブル(子)]の時、Bテーブルの「分類A」をリンク項目として、Bテーブルの「分類B」にAテーブルの「分類A」の値をセットする場合のサンプルコードを以下に記載します。(この例では、Bテーブルにスクリプトを設定します) プリザンターでは「[$p.apiGet](/manual/script-api-get)」を使用すると、レコードIDを指定するだけでajaxのPOSTリクエストによる値の取得が可能です。 ※バージョン1.3.12.0以前をお使いの場合は、一部の記述内容が異なります。サンプルコード内のコメントを確認してください。 ## 操作方法 1. スクリプトを設定したいテーブルを選択してレコード一覧画面を表示する 1. 画面右上の[管理]-[テーブルの管理]を選択し、テーブルの管理画面を表示する 1. [スクリプト]タブを選択後「新規作成」ボタンを押下し、スクリプトの設定を行う 1. 「[タイトル](/manual/tenant-logo)」「[スクリプト](/manual/table-management-script)」を記述したら、「出力先」で"新規作成","編集"にチェックを付ける ※[ダイアログで編集]の設定をしている場合、"一覧"にもチェックが必要です ## サンプルコード ##### JavaScript ``` //編集画面読込時のイベント $p.events.on_editor_load = function () { getParentData(); } //Bテーブルの「分類A」の値が変更されるたびに呼び出されるイベント $(document).on('change', '#' + $p.getControl('ClassA')[0].id, function () { getParentData(); }); getParentData = function() { //Bテーブルの「分類A」に値がセットされている場合のみ、Aテーブルの指定したレコードの値を取得する if ($p.getControl('ClassA').val()) { $p.apiGet({ //Bテーブルの「分類A」の値(レコードID)を指定 'id': $p.getControl('ClassA').val(), 'done': function (data) { //Bテーブルの「分類B」にAテーブルから取得した「分類A」の値をセット //※バージョン1.3.12.0以前をお使いの場合は、以下のコメント行の行頭にある//を外し、その次の行を削除してください。 //$p.set($p.getControl('ClassB'), data.Response.Data[0].ClassA); $p.set($p.getControl('ClassB'), data.Response.Data[0].ClassHash.ClassA); }, 'fail': function (data) { console.log(data); } }); } else { //Bテーブルの「分類A」に値がセットされていない場合、Bテーブルの「分類B」に空文字をセット $p.set($p.getControl('ClassB'), ''); } } ``` ## 関連情報 <div id="ManualList"><ul><li><a href="/manual/table-management-choices-text-link">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:リンク</a><span>2024/04/09 up</span></li> <li><a href="/manual/table-management-choice-json">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:フィルタ、ソート、表示フォーマット</a><span>2024/04/09 up</span></li> <li><a href="/manual/table-management-choice-json-column-filter-expressions">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:フィルタ(選択肢一覧を他の項目の値で絞り込む)</a><span>2024/04/09 up</span></li> <li><a href="/manual/table-management-lookup">テーブルの管理:エディタ:項目の詳細設定:選択肢一覧:ルックアップ</a><span>2023/06/22 up</span></li></ul></article> <ul><li><a href="/manual/table-management-link-view">テーブルの管理:リンク</a><span>2024/05/20 up</span></li></ul></article> <ul><li><a href="/manual/table-management-script">テーブルの管理:スクリプト</a><span>2023/05/18 up</span></li></ul></article> <ul><li><a href="/manual/tenant-logo">テナント管理機能:ロゴ、タイトル、ロゴ画像</a><span>2024/04/11 up</span></li></ul></article> <ul><li><a href="/manual/script-api-get">開発者向け機能:スクリプト:$p.apiGet</a><span>2023/09/22 up</span></li></ul></article> <ul><li><a href="/manual/advanced-operations-link">応用編:リンク</a><span>2023/08/14 up</span></li></ul></article></div><input id="SearchTextHidden" type="hidden" value="" />
TOP
このページをシェアする
記載された商品名、各製品名は各社の登録商標または商標です。 © Implem Inc.