レコード作成時、レコード編集時にボタンを押すと、「ルックアップフィールド」をクリアして、グループフィールドを表示させたいです。
グループフィールドの表示はできたのですが、「ルックアップフィールド」のクリアがうまくいきません…
ご教示いただけると幸いです。よろしくお願いします。
(function() {
"use strict";
kintone.events.on(['app.record.create.show','app.record.edit.show'], function(event) {
var Field_Button_0 = document.createElement('button');
Field_Button_0.id = 'button_0';//スペースフィールド
Field_Button_0.innerText = 'ルックアップフィールドをクリア&次の入力グループを表示';//ボタン名
Field_Button_0.onclick = function () {//クリックした際の動き
event.record['ルックアップフィールド'].lookup = 'CLEAR';
kintone.app.record.setFieldShown("グループフィールド", true)
kintone.app.record.setGroupFieldOpen("グループフィールド", true);
};
kintone.app.record.getSpaceElement('button_0').appendChild(Field_Button_0);
return event;
});
})();
Field_Button_0.onclick = function () {//クリックした際の動き
event.record['ルックアップフィールド'].lookup = 'CLEAR';
kintone.app.record.setFieldShown("グループフィールド", true)
kintone.app.record.setGroupFieldOpen("グループフィールド", true);
};
↓
Field_Button_0.onclick = function () {//クリックした際の動き
let recordData = kintone.app.record.get(), rec = recordData.record;
rec['ルックアップフィールド'].lookup = 'CLEAR';
kintone.app.record.set(recordData);
kintone.app.record.setFieldShown("グループフィールド", true)
kintone.app.record.setGroupFieldOpen("グループフィールド", true);
};
レコードの値を取得するとレコードに値をセットするが必要です。
function(event)の中でのevent.recordはあくまでもcreate.showやedit.show(レコードを開いた瞬間)でのレコードになります。「ボタンをレコードに設置する処理」はレコードを開いた瞬間に行われているのでevent.recordを参照することができますが、「ボタンをクリックした時に行われる処理(ボタンをクリックする時)」はレコードを開いた瞬間とは別のタイミングで行われるため、event.recordを参照できないと覚えると良いでしょう。
kintone.app.record.setFieldShown()やkintone.app.reocrd.setGroupFieldOpen()だけ動作するのは、これらはevent.recordを参照していないためです。
mls-hashimotoさま
いつもありがとうございます!
できました!!
kintone.app.record.get()とkintone.app.record.set(record)を使いこなせるように頑張ります!
system
(system)
Closed
4
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。