ボタン押下で、ルックアップフィールドクリアとグループフィールド表示を実現したい

レコード作成時、レコード編集時にボタンを押すと、「ルックアップフィールド」をクリアして、グループフィールドを表示させたいです。

グループフィールドの表示はできたのですが、「ルックアップフィールド」のクリアがうまくいきません…

ご教示いただけると幸いです。よろしくお願いします。

 

(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)を使いこなせるように頑張ります!

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