テープルに追加する

お世話になっております。

「Add to table」で追加した場合、Date:today、USER_SELECT:Login_userで自動入力させたいですが、今のコードでは動かない状態です。

なにかアドバイス頂けたら幸いです。どうぞよろしくお願い致します。

(function() {
‘use strict’;

var SPACE = ‘buttonspace’;
var TEXT = ‘textfield’;
var NUMBER = ‘numberfield’;

var TABLE = ‘mytable’;
var TABLE_Date = ‘Dete_in_table’;
var TABLE_USER_SELECT = ‘USER_SELECT_in_table’;
var TABLE_TEXT = ‘text_in_table’;
var TABLE_NUMBER = ‘number_in_table’;

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

kintone.events.on(events, function(event) {
var record = event.record;
var elSpace = kintone.app.record.getSpaceElement(SPACE);
var elButton = document.createElement(‘button’);
elButton.textContent = ‘Add to table’;
elSpace.appendChild(elButton);

elSpace.addEventListener(‘click’, function() {
var recordData = kintone.app.record.get();
var rec = recordData.record;

// データを含む行をテーブルに追加する
var addData = {};
addData.value = {};

addData.value[TABLE_Date] = {
“type”: “DATE”,
“value”: (today)
};

addData.value[TABLE_USER_SELECT] = {
“type”: “USER_SELECT”,
“value”: Login_user
};

addData.value[TABLE_TEXT] = {
“type”: “SINGLE_LINE_TEXT”,
“value”: rec[TEXT].value
};
addData.value[TABLE_NUMBER] = {
“type”: “NUMBER”,
“value”: rec[NUMBER].value
};

rec[TABLE].value.push(addData);

kintone.app.record.set(recordData);
});
});
}());

玲香さん

日付はフォームの設定で、初期値を「レコード登録時の日付を初期値にする」で入るかと。

ログインユーザーに関しては、kintone.getLoginUser() で取得できるので、code をセットすればよいかと。

こんな感じで

var record = event.record;
var subtable = record.table.value;
var user = kintone.getLoginUser();
subtable[subtable.length - 1].value[‘ユーザー選択’].value = [{
“code”: user.code,
}];

 

 

amuro

ご指導ありがとうございます。

①日付はフォームの設定で、初期値を「レコード登録時の日付を初期値にする」

⇒こうした場合では「Add to table」ボタンで追加した場合は登録時の日付が自動で入ってこないです・・・

②初心者で大変恐縮ですが、ログインユーザーに関しては、教わっていただいたコードは上の書いてあるコードのどこに差し込んだほうが正しいでしょうか?

// データを含む行をテーブルに追加する
var addData = {};
addData.value = {};

の上の部分と下の部分で色々差し込んでも、全然動かないです・・・

お手数をおかけまして、大変申し訳ございませんが、教えていただけることは可能でしょうか?

 

玲香さん

動かないというのは、処理の途中でエラーが出てるということでしょうか?

デバッガーで動作確認してみてはいかがでしょうか。

動かない?そんな時はデバッグをしてみよう!入門編

https://developer.cybozu.io/hc/ja/articles/207613916

 

amuro

ご指導ありがとうございます。

(function() {
‘use strict’;

var SPACE = ‘buttonspace’;
var TEXT = ‘textfield’;
var NUMBER = ‘numberfield’;

var TABLE = ‘mytable’;
var TABLE_更新日 = ‘更新日_契約_in_table’;
var TABLE_USER_SELECT = ‘USER_SELECT_in_table’;
var TABLE_TEXT = ‘text_in_table’;
var TABLE_NUMBER = ‘number_in_table’;

var events = [‘app.record.create.show’, ‘app.record.edit.show’];
kintone.events.on(events, function(event) {
var record = event.record;
var elSpace = kintone.app.record.getSpaceElement(SPACE);
var elButton = document.createElement(‘button’);
elButton.textContent = ‘Add to table’;
elSpace.appendChild(elButton);

elSpace.addEventListener(‘click’, function() {
var recordData = kintone.app.record.get();
var rec = recordData.record;

//var record = event.record;
var subtable = record.table.value;
var user = kintone.getLoginUser();
// データを含む行をテーブルに追加する
var addData = {};
addData.value = {};

addData.value[TABLE_更新日] = {
“type”: “DATE”,
“value”: []
};

//addData.value[TABLE_USER_SELECT] = {
//“type”: “USER_SELECT”,
//“value”: []
//};

subtable[subtable.length - 1].value[‘USER_SELECT’].value = [{
“code”: user.code,
}];

addData.value[TABLE_TEXT] = {
“type”: “SINGLE_LINE_TEXT”,
“value”: rec[TEXT].value
};
addData.value[TABLE_NUMBER] = {
“type”: “NUMBER”,
“value”: rec[NUMBER].value
};

rec[TABLE].value.push(addData);

kintone.app.record.set(recordData);
});
});
}());

こんなエラー画面になります。

また

①日付はフォームの設定で、初期値を「レコード登録時の日付を初期値にする」

⇒こうした場合では「Add to table」ボタンで追加した場合は登録時の日付が自動で入ってこないです・・・ので、

addData.value[TABLE_更新日] = {
“type”: “DATE”,
“value”: []
};

にしております。

お手数ですが、よろしくお願いいたします。