テーブル内の入力フィールド(ドロップダウン)が「未」であれば、番号フィールドに「A」、「済」であれば「A B」と動的に表示させたい。
IF関数で表示だけならさせられますが、表示させた文字列の後ろに手入力で入力したいため困っています。
ご教示いただけませんでしょうか。
(function() {
"use strict";
// ドロップダウンフィールドの値に応じて「番号」フィールドの値を設定する関数
function updateNumberField(record, rowIndex) {
var table = record.テーブル.value;
if (rowIndex !== undefined) {
var dropdownValue = table[rowIndex].value.入力.value;
if (dropdownValue === "未") {
table[rowIndex].value.番号.value = "A";
} else if (dropdownValue === "済") {
table[rowIndex].value.番号.value = "A B";
} else {
table[rowIndex].value.番号.value = "";
}
} else {
// 全ての行を更新
for (var i = 0; i < table.length; i++) {
var dropdownValue = table[i].value.入力.value;
if (dropdownValue === "未") {
table[i].value.番号.value = "A";
} else if (dropdownValue === "済") {
table[i].value.番号.value = "A B";
} else {
table[i].value.番号.value = "";
}
}
}
record.テーブル.value = table; // 更新したテーブルの配列をレコードに設定
return record;
}
// レコードの表示および編集画面の読み込み時に実行
kintone.events.on(['app.record.create.show', 'app.record.edit.show'], function(event) {
var record = event.record;
record = updateNumberField(record); // 初期表示時にテーブルの全行を更新
return event;
});
// テーブル内の「入力」フィールドが変更された時に「番号」フィールドの値を更新
kintone.events.on('app.record.create.change.テーブル', function(event) {
var record = event.record;
var table = record.テーブル.value;
// 変更された行のインデックスを取得
var rowIndex = event.change.rowIndex;
// 行のインデックスがある場合にのみ更新
if (rowIndex !== undefined) {
record = updateNumberField(record, rowIndex);
// テーブルの変更を即座に反映
kintone.app.record.set({ record: record });
}
return event;
});
})();