FAQ:サンプルコード:親テーブルの項目の値を子テーブルの項目に転記する
## 新機能
1. .NET Framweork版 0.50.251 以降、.NET Core版 1.1.27 以降のバージョンでは「[スクリプト](/manual/table-management-script)」を使用せず「[ルックアップ](/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.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」の値をセット
//※バージョン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>2023/08/25 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="" />