画面に値が反映されない件

 

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

下記投稿事例に似ていると思うのですが、解決方法が分からなかったため質問させていただきます。

【解決済み】ボタンによる値変更イベント:値が反映されない
https://developer.cybozu.io/hc/ja/community/posts/360047399872–%E8%A7%A3%E6%B1%BA%E6%B8%88%E3%81%BF-%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%AB%E3%82%88%E3%82%8B%E5%80%A4%E5%A4%89%E6%9B%B4%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88-%E5%80%A4%E3%81%8C%E5%8F%8D%E6%98%A0%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84?input_string=%E7%94%BB%E9%9D%A2%E3%81%AB%E5%80%A4%E3%81%8C%E5%8F%8D%E6%98%A0%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E4%BB%B6

編集画面のイベントにて、getHeaderMenuSpaceElement()を利用しボタンを表示させ

そのボタンを押すとアプリ内フォームのフィールドの値を入れるということを実装したく
画像のようにカスタマイズを行いました。

開発者ツールのconsole上ではフィールドに値を入れることに成功しているのですが、

画面反映がうまくいきません。
エラー等も特にでておりませんでした。

どなたかお分かりになる方いらっしゃれば、ご教示いただけますでしょうか。

レコードに値をセットする kintone.app.record.set() を利用すれば反映することができるかとおもいます。

通常の return event でなぜ反映されないかというと、ボタンを押す頃にはedit.showイベントが終わってしまっているからです。

そういった場合のためにkintone.app.record.set()があります。


具体的な流れとしては、ボタン押下時、最新の値を取得してからがいいとおもいますので、レコードの値を取得する kintone.app.record.get() も併用したほうがいいとおもいます。

イメージとしては下記です

// ドロップダウンに値を入れる場合
myIndexButton.onclick = function() {
var data = kintone.app.record.get(); // 編集画面の現在のデータを取得
data.record.ドロップダウン.value = 'sample1';
kintone.app.record.set(data); // データをセット
};

村濱一樹さま

 

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

なぜ値が反映されないのか解説していただき、またサンプルコードまで添付していただきありがとうございます。

 

edit.showイベントはあくまでも、編集画面へのボタンを押下し編集画面が開いたその時であり

カスタマイズで作成したボタンを押下する時には、そちらのイベントは既に終了しているということですね。

大変勉強になりました。

エラーも出ず行き詰っておりましたので大変助かりました。ありがとうございます。