# テーブルのフィールドデータを、普通のフィールドに上書き

**URL:** <https://community.cybozu.dev/t/topic/2490>\
**Category:** kintone 開発相談\
**Created:** [2016 年 3 月 21 日午前 2:41 UTC](https://community.cybozu.dev/t/topic/2490 "2016-03-21T02:41:45Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2124](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@Legacy\_Account2124](https://community.cybozu.dev/u/Legacy_Account2124)\
**Post date:** [2016 年 3 月 21 日午前 2:41 UTC](https://community.cybozu.dev/t/topic/2490/1 "2016-03-21T02:41:45Z")

</div>

テーブル内に、複数のお客様リストを登録します。

その中の1件を普通のフィールドにセットしたいと考えています。

テーブル内のレコード番号を入力する数値フィールドを作成し、

その数値が変更したときに、ボタンを表示させ、

ボタンをクリックしたら、テーブル内の指定レコード番号のフィールドデータを

普通のフィールドにセットするようにしたいのですが、

データの確認用に画面に指定したレコード番号をメッセージ表示させることはできるのですが、

肝心のデータのセットが動作しません。

次のような記述で作成しています。どなかた助けてください。

* * *

(function () {  
“use strict”;  
var events1 = [‘app.record.create.change.MainTokNo’,‘app.record.edit.change.MainTokNo’];  
kintone.events.on(events1, function (event) {  
var record = event.record;  
var CtableRecords = event.record.Customer.value;

var SMsg = ‘テスト中です。’;  
var ErrMsg = ‘主得意先Noは、関連するお客様の件数以下にしてください。。’;

// 任意のスペースフィールドにボタンを設置  
var mySpaceFieldButton = document.createElement(‘button’);  
mySpaceFieldButton.id = ‘my\_space\_field\_button’;  
mySpaceFieldButton.innerHTML = ‘主得意先をセットするならクリック’;  
mySpaceFieldButton.onclick = function () {  
if ( record.MainTokNo.value \> record.Customer.value.length ) {  
window.alert(ErrMsg);  
}else{  
var i = record.MainTokNo.value-1;  
var TC = CtableRecords[i].value[‘TOKCD\_T’].value;  
var TN = CtableRecords[i].value[‘TOKNM\_T’].value;  
var TTN = CtableRecords[i].value[‘TOKTANNM\_T’].value;  
var TMNN = CtableRecords[i].value[‘見積番号\_T’].value;  
record[‘TOKCD’][‘value’] = TC;  
//record[‘文字列\_0’][‘value’] = ‘この文字列で上書き’;  
record[‘TOKNM’][‘value’] = TN;  
record[‘TOKTANNM’][‘value’] = TTN;  
record[‘見積番号’][‘value’] = TMNN;  
window.alert(TC+TN+TTN+TMNN);  
[//window.alert](https://window.alert)(SMsg);  
}

}

kintone.app.record.getSpaceElement(‘my\_space\_field’).appendChild(mySpaceFieldButton);

});  
})();

* * *

&nbsp;

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2115](https://avatars.discourse-cdn.com/v4/letter/l/e9bcb4/32.png) [@Legacy\_Account2115](https://community.cybozu.dev/u/Legacy_Account2115)\
**Post date:** [2016 年 3 月 21 日午前 2:45 UTC](https://community.cybozu.dev/t/topic/2490/2 "2016-03-21T02:45:26Z")

</div>

Shoji Shinodaさん

cstapの瀧ヶ平です。

おそらくイベントハンドラー内でeventオブジェクトをreturnしていないことが原因だと思います。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2124](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@Legacy\_Account2124](https://community.cybozu.dev/u/Legacy_Account2124)\
**Post date:** [2016 年 3 月 21 日午前 2:59 UTC](https://community.cybozu.dev/t/topic/2490/3 "2016-03-21T02:59:02Z")

</div>

瀧ヶ平さん ありがとうございます。

最後のほうに、次のように追加してみましたが、結果は変わりませんでした。

難しいものです。

* * *

window.alert(TC+TN+TTN+TMNN);  
[//window.alert](https://window.alert)(SMsg);  
}

}  
kintone.app.record.getSpaceElement(‘my\_space\_field’).appendChild(mySpaceFieldButton);  
return event; //ここに追加しました。  
});  
})();

* * *

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2115](https://avatars.discourse-cdn.com/v4/letter/l/e9bcb4/32.png) [@Legacy\_Account2115](https://community.cybozu.dev/u/Legacy_Account2115)\
**Post date:** [2016 年 3 月 21 日午前 3:27 UTC](https://community.cybozu.dev/t/topic/2490/4 "2016-03-21T03:27:43Z")

</div>

Shoji Shinodaさん

onclick内の処理なのでイベントハンドラーによるレコードの変更はできないですね、すいません。

なのでonclick内の処理最初の行に

```
var record = kintone.app.record.get().record;
var CtableRecords = record.Customer.value;

```

処理最後の行に

```
kintone.app.record.set({record:record});

```

を追加すれば解決するかと思います

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2124](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@Legacy\_Account2124](https://community.cybozu.dev/u/Legacy_Account2124)\
**Post date:** [2016 年 3 月 21 日午前 4:03 UTC](https://community.cybozu.dev/t/topic/2490/5 "2016-03-21T04:03:52Z")

</div>

瀧ヶ平さん

**ありがとうございました。**

狙い通りの動作ができました。

これからも、Javascriptを利用してkintoneをより有効に活用していきます。

* * *

mySpaceFieldButton.onclick = function () {

var record = kintone.app.record.get().record;  
var CtableRecords = record.Customer.value;

if ( record.MainTokNo.value \> record.Customer.value.length ) {  
window.alert(ErrMsg);  
}else{  
var i = record.MainTokNo.value-1;  
var TC = CtableRecords[i].value[‘TOKCD\_T’].value;  
var TN = CtableRecords[i].value[‘TOKNM\_T’].value;  
var TTN = CtableRecords[i].value[‘TOKTANNM\_T’].value;  
var TMNN = CtableRecords[i].value[‘見積番号\_T’].value;  
record[‘TOKCD’][‘value’] = TC;  
record[‘TOKNM’][‘value’] = TN;  
record[‘TOKTANNM’][‘value’] = TTN;  
record[‘見積番号’][‘value’] = TMNN;  
window.alert(TC+TN+TTN+TMNN);  
}  
kintone.app.record.set({record:record});

}

* * *

---

<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:** [2025 年 3 月 25 日午前 8:17 UTC](https://community.cybozu.dev/t/topic/2490/6 "2025-03-25T08:17:47Z")

</div>

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