# サブテーブルレコードの追加について

**URL:** <https://community.cybozu.dev/t/topic/3852>\
**Category:** kintone 開発相談\
**Created:** [2019 年 3 月 14 日午前 5:08 UTC](https://community.cybozu.dev/t/topic/3852 "2019-03-14T05:08:02Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account333](https://avatars.discourse-cdn.com/v4/letter/l/6bbea6/32.png) [@Legacy\_Account333](https://community.cybozu.dev/u/Legacy_Account333)\
**Post date:** [2019 年 3 月 14 日午前 5:08 UTC](https://community.cybozu.dev/t/topic/3852/1 "2019-03-14T05:08:02Z")

</div>

上記のようなテーブルフォームを作成しています。

処理内容として、チェックボックスがある場合に、「チェックしたデータの複写」ボタンを押すと、新しいテーブル行を追加しチェックしたデータをそのままコピーしたいとおもっています。

処理のイベントは’app.record.create.show’,'app.record.edit.show’になります。

record.record.mousitate.value.push(newRow);のPUSH後にデバックをしレコードの状態を確認すると以下のようになっておりPUSH自体には成功しているとおもっています。

returnの位置がおかしいのかもしれませんが、処理が終わっている状態で画面及びデータに反映されていない状態となっております。

後記

PUSHの後に、kintone.app.record.set(record);を実行することにより画面表示することはできました。

この場合に、app.record.create.change.テーブル名のイベントを発生させることはできないでしょうか？

&nbsp;

&nbsp;

ご教授願えれば幸いです。

以下デバックの結果

以下作成済みソース

var myJQuery = jQuery.noConflict(true);

(function($) {  
“use strict”;

kintone.events.on([‘app.record.create.show’,‘app.record.edit.show’], function(event) {  
var record = event.record;  
initform\_Buton(record)  
return event;  
});

function initform\_Buton(record){  
// 任意のスペースフィールドにボタンを設置  
button\_set(‘M\_button2’,‘チェックしたデータの複写’);  
myJQuery(‘#M\_button2’).on(‘click’, function() {Copy\_M(kintone.app.record.get())});  
return;  
}

function Copy\_M(record){  
var check = 0  
var copymoto = 0  
for (var count = 0 ; count \< record.record.mousitate.value.length ; count++){  
if (record.record.mousitate.value[count].value.M選択.value.length == 1){  
copymoto = count;  
check = ++check;  
}  
}  
switch (check) {  
case 0:  
window.alert(‘コピーする元が選択されていません。’);  
break;  
case 1:  
var copydata = {  
“M種別” : record.record.mousitate.value[copymoto].value.M種別.value,  
“M郵便” : record.record.mousitate.value[copymoto].value.M郵便.value,  
“M住所” : record.record.mousitate.value[copymoto].value.M住所.value,  
“M氏名” : record.record.mousitate.value[copymoto].value.M氏名.value,  
“M携帯” : record.record.mousitate.value[copymoto].value.M携帯.value,  
“M電話” : record.record.mousitate.value[copymoto].value.M電話.value,  
“MFAX” : record.record.mousitate.value[copymoto].value.MFAX.value  
}  
//新しい行の追加  
var newRow ={  
value: {  
‘M選択’: {  
type: ‘CHECK\_BOX’,  
value: NULL  
},  
‘M郵便’: {  
type: ‘SINGLE\_LINE\_TEXT’,  
value: ‘郵便番号’  
},  
‘M郵便’: {  
type: ‘SINGLE\_LINE\_TEXT’,  
value: ‘郵便番号’  
},  
‘M住所’: {  
type: ‘SINGLE\_LINE\_TEXT’,  
value: ‘住所’  
},  
‘M氏名’: {  
type: ‘SINGLE\_LINE\_TEXT’,  
value: ‘氏名’  
},  
‘M携帯’: {  
type: ‘SINGLE\_LINE\_TEXT’,  
value: ‘携帯’  
},  
‘M電話’: {  
type: ‘SINGLE\_LINE\_TEXT’,  
value: ‘電話’  
},  
‘MFAX’: {  
type: ‘SINGLE\_LINE\_TEXT’,  
value: ‘FAX’  
}  
}  
};  
record.record.mousitate.value.push(newRow);

return event;  
default:  
window.alert(‘コピーする元が複数チェックされています。’);  
}  
}

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1657](https://avatars.discourse-cdn.com/v4/letter/l/f4b2a3/32.png) [@Legacy\_Account1657](https://community.cybozu.dev/u/Legacy_Account1657)\
**Post date:** [2019 年 3 月 25 日午前 8:38 UTC](https://community.cybozu.dev/t/topic/3852/2 "2019-03-25T08:38:07Z")

</div>

Kintone初心者研修中さん

JavaScriptAPIのイベント発火は画面上で操作を行った場合のみになります。

そのため、kintone.app.record.setで値を更新した場合、発火しません。

kintone.app.record.set時にイベント内と同じ処理を行いたい場合、必要な処理を関数化し、

kintone.app.record.setの処理後に呼び出してあげる形になると思います。
