チェックボックスが入ったテーブルを同レコード内の文字列にコピー

Kintoneで同一レコード内での動作を希望しています。

テーブルに複数行あり、そのなかのチェックボックスが入った行の中の
テーブルB列の値のみを
別フィールドの文字列フィールドにコピーをしたいのですが、
実装方法ご教授いただけないでしょうか?
また、チェックボックスが外れたら文字列フィールドからの値も消えるよう設定したいです。

テーブル名:履歴
テーブル テーブルA テーブルB テーブルC チェックボックス
1行目 1 3 5 □レ
2行目 2 4 6
文字列 テーブルBの値をコピー

チェックありで、なおかつ[テーブルB]の値ありの行が複数ある場合
どうコピーするか不明なので、上の行から順に結合するようにしてます。

(() => {
    "use strict";

    kintone.events.on([
        'app.record.edit.show',
        'app.record.edit.change.履歴',
        'app.record.create.change.履歴',
        'app.record.edit.change.チェックボックス',
        'app.record.create.change.チェックボックス',
        'app.record.edit.change.テーブルB',
        'app.record.create.change.テーブルB'
    ], (event) => {
        const record = event.record;
        const historyTable = record['履歴'].value;
        let copiedValues = []; // [文字列]にコピーする値を格納する配列

        // [履歴]テーブルの各行をチェック
        historyTable.forEach((row) => {
            const checkbox = row.value['チェックボックス'].value;
            const tableBValue = row.value['テーブルB'].value;
            
            // [チェックボックス]がチェックされている場合
            if (checkbox.includes('チェック')) {
                copiedValues.push(tableBValue); // [テーブルB]の値を配列に追加
            }
        });

        // [文字列]にチェックありの行の[テーブルB]の値を結合して設定
        record['文字列'].value = copiedValues.join('');

        return event;
    });
})();

具体的にお伝えしておらず大変失礼いたしました。
チェックボックスは複数行内に1つしか存在しない状態です。

であれば、上のコードをそのまま使えます。
上図の3行目以降が無い場合は[文字列]に「3」がコピーされるので。

1 Like

無事実装できました。ありがとうございました!

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。