# ボタン押下時に別アプリのサブテーブルの内容をコピーする

**URL:** <https://community.cybozu.dev/t/topic/886>\
**Category:** kintone 開発相談\
**Created:** [2017 年 9 月 1 日午前 1:38 UTC](https://community.cybozu.dev/t/topic/886 "2017-09-01T01:38:01Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1874](https://avatars.discourse-cdn.com/v4/letter/l/3da27b/32.png) [@Legacy\_Account1874](https://community.cybozu.dev/u/Legacy_Account1874)\
**Post date:** [2017 年 9 月 1 日午前 1:38 UTC](https://community.cybozu.dev/t/topic/886/1 "2017-09-01T01:38:01Z")

</div>

javascript初心者で初歩的な質問かもしれませんが、よろしくお願い致します。

下記のような動作をイメージしております。

【Aアプリ】

サブテーブルを含む内容

&nbsp;

【Bアプリ】

（登録・変更処理時）

ルックアップでAアプリのサブテーブル以外の内容を取得。

ボタンを設置し、そのボタンが押下されたら、Aアプリのサブテーブルの内容をBアプリのサブテーブルへコピー。

ソースは下記のように書きましたが、うまく動作していません。

デバックで確認すると、

Aアプリからのサブテーブル内容取得、

Bアプリのサブテーブル内容設定

までは問題なく処理されているようですが、画面に反映されません。

どこがおかしいのかご教示頂ければと思います。

よろしくお願い致します。

&nbsp;

--------------[ソース from]--------------

(function($) {  
“use strict”;

var events = [‘app.record.create.show’,‘app.record.edit.show’]

kintone.events.on(events, function(event) {

var rec = event.record;  
var params = {  
app: 20,  
id: (rec[“srec\_no”][“value”]) \* 1  
};

// SPACE部分にボタンを設置  
var btn\_1 = document.createElement(‘button’);  
btn\_1.id = ‘btn\_1’;  
btn\_1.innerHTML = ‘収支表明細データ取得’;  
btn\_1.onclick = function() {

rec[“Table”][“value”]=[];

kintone.api(  
kintone.api.url(‘/k/v1/record’, true), // pathOrUrl  
‘GET’, // method  
params, // params  
function(resp) { // 成功時のcallback  
var srec = resp.record

for (var i = 0; i \< srec[“Table”][“value”][“length”]; i++) {

var newRow = {  
value: {  
tbl\_data\_1: {  
type: srec[“Table”][“value”][i][“value”][“tbl\_data\_1”][“type”],  
value: srec[“Table”][“value”][i][“value”][“tbl\_data\_1”][“value”]  
},  
//商品名  
tbl\_data\_2: {  
type: srec[“Table”][“value”][i][“value”][“tbl\_data\_2”][“type”],  
value: srec[“Table”][“value”][i][“value”][“tbl\_data\_2”][“value”]  
},  
//数量  
tbl\_data\_3: {  
type: srec[“Table”][“value”][i][“value”][“tbl\_data\_3”][“type”],  
value: srec[“Table”][“value”][i][“value”][“tbl\_data\_3”][“value”]  
},  
//商品単価  
tbl\_data\_4: {  
type: srec[“Table”][“value”][i][“value”][“tbl\_data\_4”][“type”],  
value: srec[“Table”][“value”][i][“value”][“tbl\_data\_4”][“value”]  
},  
//商品金額  
tbl\_data\_5: {  
type: ‘CALC’,  
value: srec[“Table”][“value”][i][“value”][“tbl\_data\_5”][“value”]  
}  
}  
}

rec[“Table”][“value”].push(newRow);

}  
return(event);  
});

}  
kintone.app.record.getSpaceElement(‘btn\_space’).appendChild(btn\_1);  
});  
})();

--------------[ソース to &nbsp;]--------------

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1517](https://avatars.discourse-cdn.com/v4/letter/l/4bbf92/32.png) [@Legacy\_Account1517](https://community.cybozu.dev/u/Legacy_Account1517)\
**Post date:** [2017 年 9 月 1 日午前 8:15 UTC](https://community.cybozu.dev/t/topic/886/2 "2017-09-01T08:15:26Z")

</div>

加藤さん

ボタンクリックの処理内で、return event; を行っても画面には反映されません。  
[kintone.app.record.get](https://community.cybozu.dev/hc/ja/articles/201942014-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%A9%B3%E7%B4%B0%E6%83%85%E5%A0%B1%E5%8F%96%E5%BE%97#step2), [kintone.app.record.set](https://community.cybozu.dev/hc/ja/articles/201942014-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%A9%B3%E7%B4%B0%E6%83%85%E5%A0%B1%E5%8F%96%E5%BE%97#step4) をペアで使ってください。  
ボタンクリック時の最新情報を使いましょう。

&nbsp;

```
//レコードの値を取得する
var record = kintone.app.record.get();

var srec = record['record'];
// レコード変更
...

//レコードに値をセットする
kintone.app.record.set(record)

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1874](https://avatars.discourse-cdn.com/v4/letter/l/3da27b/32.png) [@Legacy\_Account1874](https://community.cybozu.dev/u/Legacy_Account1874)\
**Post date:** [2017 年 9 月 1 日午前 8:56 UTC](https://community.cybozu.dev/t/topic/886/3 "2017-09-01T08:56:17Z")

</div>

rex0220 様

&nbsp;

ありがとうございます！

教えて頂いた通り、get で情報取得後、編集し、set で値を設定することで画面に反映されました。

大変助かりました！
