テーブルの行追加について

素人質問で大変恐縮ですが、レコードの編集画面で用意したボタンを押下すると、テーブルに1行追加されるプログラムを作成したいと考えています。

始めに編集画面を開いた際にテーブルに1行追加される。というコードを作成し動作確認を行いました。
問題なかったため、編集画面上にボタンを用意して、それが押されたら1行追加される。というコードにしてみたのですが、ボタンを押下しても行がうまく追加されませんでした。
エラーメッセージ等は無く、consoleで確認してみると1行追加はされている様子なので、何が悪いのかわからない状況です。ご教授いただけますでしょうか。

テーブル
フィールドコード:table

テーブル内の文字列
フィールドコード:string

(() => {
    'use strict'

    kintone.events.on('app.record.edit.show', function(event) {   
        const addRowButton = document.createElement('button'); 
        addRowButton.id = 'add_row_button';
        addRowButton.innerText = '行追加ボタン';
        kintone.app.record.getSpaceElement('add_row_button').appendChild(addRowButton);
        
        addRowButton.onclick = () => { 
            const record = event.record;    
            record.table.value.push({
                "value": {
                    "string": {
                        "type": "SINGLE_LINE_TEXT",
                        "value": 'xxx'
                    }
                }
            });            
        };

        return event;
    });
})();

最終的に実現したいのはルックアップを自動で行うソフトですが、その前々段階として一旦ボタンを押したら1行追加されることを確認たかったです。
この段階で躓いてしまったため質問させていただきました。
かなり初歩的な質問で申し訳ありませんが何卒お願いいたします。

@takashi.saito さん

こんにちは、少しだけお力になれそうだったのでご回答させていただきました。
レコード編集イベントの中で行追加ボタンを作成されておりますが、あくまでレコード編集イベントでは、行追加ボタンの作成と処理を定義をしていてボタンを押すころには、レコード編集イベントはreturn event;で終了しております。
それ故に、ボタンを押したときにevent変数は使えないんです…

そんなときに用意してくださっているのが、
kintone.app.record.get()kintone.app.record.set() です。
(開いているレコードのデータ取得と更新をする関数 下記にリンク有)
これらを利用して @takashi.saito さんのコードを利用してみるとこんな感じになるかと思われます。

(() => {
    'use strict'

    kintone.events.on('app.record.edit.show', function(event) {   
        const addRowButton = document.createElement('button'); 
        addRowButton.id = 'add_row_button';
        addRowButton.innerText = '行追加ボタン';
        kintone.app.record.getSpaceElement('add_row_button').appendChild(addRowButton);
        
        addRowButton.onclick = () => { 
            const rec = kintone.app.record.get()    
            rec.record.table.value.push({
                "value": {
                    "string": {
                        "type": "SINGLE_LINE_TEXT",
                        "value": 'xxx'
                    }
                }
            });
            kintone.app.record.set(rec);            
        };
        return event;
    });
})();

不明点がございましたら、おっしゃってくださいね!


「いいね!」 3

Yuki_Minamitani

返信ありがとうございます。
確かに行が追加されたこと確認できました。

get, setで対応するのですね。
大変勉強になりました。

ありがとうございます。

「いいね!」 1

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