一度編集したレコードを編集する際にフィールドの初期値を設定する方法

https://developer.kintone.io/hc/en-us/articles/115005450087

にあったフィールドコードを一部書き換えて、

希望通りの動きを実現することはできました。

さらに、編集したいのが、

現在日時や現在ログオンしているユーザーを初期値としてフィールド設定しているのですが、

既存のレコードを編集する際に、その開いた際の現在日時やログオンユーザーの値を自動で入力したいです。

これらの値をフィールド(サブテーブル外)に入れるにはどのようにしたらよいでしょうか?

ご教示いただけると幸いです。

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

 

|   | // Add a row with data into a table with a button click |
|   |   |
|   | (function() { |
|   | ‘use strict’; |
|   |   |
|   | var SPACE = ‘buttonspace’; // Element ID of Blank Space field |
|   | var TEXT = ‘textfield’; // Field code of text field |
|   | var NUMBER = ‘numberfield’; // Field code of number field |
|   | var CHECKBOX = ‘checkboxfield’; // Field code of checkbox field |
|   |   |
|   | var TABLE = ‘mytable’; // Field code of table field |
|   | var TABLE_TEXT = ‘text_in_table’; // Field code of text field in a table |
|   | var TABLE_NUMBER = ‘number_in_table’; // Field code of number field a table |
|   | var TABLE_CHECKBOX = ‘checkbox_in_table’; // Field code of checkbox field in a 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; |
|   |   |
|   | // add row with data into table |
|   | var addData = {}; |
|   | addData.value = {}; |
|   | addData.value[TABLE_TEXT] = { |
|   | “type”: “SINGLE_LINE_TEXT”, |
|   | “value”: rec[TEXT].value |
|   | }; |
|   | addData.value[TABLE_NUMBER] = { |
|   | “type”: “NUMBER”, |
|   | “value”: rec[NUMBER].value |
|   | }; |
|   | addData.value[TABLE_CHECKBOX] = { |
|   | “type”: “CHECK_BOX”, |
|   | “value”: rec[CHECKBOX].value |
|   | }; |
|   | rec[TABLE].value.push(addData); |
|   |   |
|   | // delete values after inserting into table |
|   | rec[TEXT].value = “”; |
|   | rec[NUMBER].value = “”; |
|   | rec[CHECKBOX].value = []; |
|   |   |
|   | kintone.app.record.set(recordData); |
|   | }); |
|   | }); |
|   | }()); |

kyoden さん

こんにちは。

編集画面を表示した際に、イベントオブジェクトを利用して値の書き換えを行うことで、

希望の処理になったりしないでしょうか?

ユーザー選択と日時フィールドの場合、以下のような形で書き替えができるかと思います。

※下記処理では、Moment.js使っているので、ライブラリも追加してください。

※フィールドコードなどは、修正してもらえれば思います。

 

kintone.events.on("app.record.edit.show", function(e) {

var LoginUser = kintone.getLoginUser();

e.record.user.value = [{
"code": LoginUser.code,
"name": LoginUser.name
  }];

e.record.date.value = moment().format("YYYY-MM-DDTHH:mmZ");

return e;
});

 

サクラエビさん

 

ご教示いただきありがとうございました。

日付フィールドだったので、

format(“YYYY-MM-DDTHH:mmZ”) を

format(“YYYY-MM-DD”) に変更したところ、無事実装できました。