Kintoneにおいて、サブテーブルを複数行入力する必要がある時に、一番初めに入力した行のフィールドを以降のフィールドにも入力したいケースや、一行上のフィールドと同じ値を追加する行にコピーしたいといったケースがあります。
このような処理を実行するための無料または有料のプラグインも存在しますが、JavaScriptでも簡単に実装することができます。
<サンプルコードの仕様>
・コード内の"対象テーブルのフィールドコード"の箇所を、対象とするテーブル自体のフィールドコードに差し替えてください。
・コード内の"コピーしたいフィールドコード{数字}"の箇所を、コピーしたいフィールドコードに差し替えてください(フィールドは複数指定可能です)。
サンプルコードを環境に合わせてご変更いただければ、かなり便利なスクリプトになるかと思いますので、ご自由にお使いください!
※ご質問にはお答えできませんので予めご承知おきくださいませ。
コード
(function () {
"use strict";
const events = ["app.record.edit.change.対象テーブルのフィールドコード", "app.record.create.change.対象テーブルのフィールドコード"];
const tableCode = "対象テーブルのフィールドコード";
const fieldsToCopy = ["コピーしたいフィールドコード1", "コピーしたいフィールドコード2"];
kintone.events.on(events, function (event) {
const record = event.record;
const tableRows = record[tableCode].value;
// テーブル行が増えた場合のみ処理
if (tableRows.length < 2) {
return event;
}
const previousRow = tableRows[tableRows.length - 2];
const newRow = tableRows[tableRows.length - 1];
fieldsToCopy.forEach((field) => {
if (previousRow.value[field] && newRow.value[field] !== undefined) {
newRow.value[field].value = previousRow.value[field].value;
}
});
return event;
});
})();