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

**URL:** <https://community.cybozu.dev/t/topic/8219>\
**Category:** kintone 開発相談\
**Created:** [2023 年 10 月 18 日午前 8:27 UTC](https://community.cybozu.dev/t/topic/8219 "2023-10-18T08:27:40Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![takashi.saito](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@takashi.saito](https://community.cybozu.dev/u/takashi.saito)\
**Post date:** [2023 年 10 月 18 日午前 8:27 UTC](https://community.cybozu.dev/t/topic/8219/1 "2023-10-18T08:27:40Z")

</div>

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

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

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

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

```javascript
(() => {
    '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行追加されることを確認たかったです。  
この段階で躓いてしまったため質問させていただきました。  
かなり初歩的な質問で申し訳ありませんが何卒お願いいたします。

---

<div class="post-metadata">

**Author:** ![y\_minamitani9534](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/y_minamitani9534/32/462_2.png) [@y\_minamitani9534](https://community.cybozu.dev/u/y_minamitani9534)\
**Post date:** [2023 年 10 月 19 日午前 12:27 UTC](https://community.cybozu.dev/t/topic/8219/2 "2023-10-19T00:27:12Z")

</div>

@takashi.saito さん

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

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

```javascript
(() => {
    '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;
    });
})();

```

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

* * *

> **[レコードの値を取得する](https://cybozu.dev/ja/kintone/docs/js-api/record/get-record/)**
>
> 現在開いているレコードのデータを取得します。

> **[レコードに値をセットする](https://cybozu.dev/ja/kintone/docs/js-api/record/set-record-value/)**
>
> 現在開いているレコードに値をセットします。

---

<div class="post-metadata">

**Author:** ![takashi.saito](https://avatars.discourse-cdn.com/v4/letter/t/3be4f8/32.png) [@takashi.saito](https://community.cybozu.dev/u/takashi.saito)\
**Post date:** [2023 年 10 月 19 日午前 12:47 UTC](https://community.cybozu.dev/t/topic/8219/3 "2023-10-19T00:47:28Z")

</div>

[Yuki\_Minamitani](https://community.cybozu.dev/u/y_minamitani9534)様

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

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

ありがとうございます。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2023 年 10 月 22 日午前 12:48 UTC](https://community.cybozu.dev/t/topic/8219/4 "2023-10-22T00:48:00Z")

</div>

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