お世話になっております。
掲題の件、プリントクリエイターの自動保存機能を使用して、詳細画面が表示されたときにjqueryにて保存ボタンを疑似クリック、添付ファイルフィールドに帳票が自動で保存されるようにしたいと考えております。
コードは以下の通りです。
=======================================================
(function() {
“use strict”;
//レコードの追加、編集、詳細画面で適用する
var events = [‘app.record.detail.show’,
]
kintone.events.on(events, function(event) {
var record = event.record;
const MAX_RETRY_COUNT_FIND_DIFF_CONTAINER = 10;
var retry_counter = 0;
var set_interval_id = setInterval(findTargetElement, 1000);
/**
* diff要素を取得
*/
function findTargetElement() {
retry_counter++;
// 要素がMAXリトライ値になっても見つからない場合、インターバルを削除
if(retry_counter > MAX_RETRY_COUNT_FIND_DIFF_CONTAINER) {
clearInterval(set_interval_id);
console.log(“プリントクリエイターの要素なし”);
}
//帳票出力ボタン
var diff_elements1 = document.getElementsByClassName(‘pc-output’);
//帳票保存ボタン
var diff_elements2 = document.getElementsByClassName(‘pc-save’);
if(diff_elements1.length > 0) {
clearInterval(set_interval_id);
$(‘.pcreator-sheets-select’).val(68129);
//帳票保存先設定 → textなしvalueのみ。valueの値はフィールドコード
$(‘.pcreator-attachment-field-select’).val(‘attachment’);
//帳票名設定 → textなしvalueのみ。valueの値はフィールドコード
$(‘#pc-attachment-filename-select-container’).show();
$(‘.pcreator-filename-field-select’).val(‘attachmenttitle’);
//帳票保存ボタンを表示
$(‘.pc-save’).show();
//帳票出力ボタンを非表示
$(‘.pc-output’).hide();
//帳票名をログに出力
console.log($(“.pcreator-filename-field-select option:selected”).text());
// $(‘.pc-save’).click();
}
}
return event;
});
})();
=======================================================
処理の流れとしては、
①プリントクリエイターの「出力」ボタン要素が確認できるまで待つ
②確認後、セレクト要素を指定のvalueに変更する
③帳票名セレクトボックスを表示、出力ボタンを非表示、保存ボタンを表示に設定する
④保存ボタンを疑似クリックする
上記の処理で、要素の表示・非表示や保存ボタンの疑似クリックは問題なくできているのですが、
帳票のファイル名設定が反映されず、デフォルトの帳票名が設定されてしまいます。
//帳票名をログに出力
console.log($(“.pcreator-filename-field-select option:selected”).text());
の部分で選択されている値(テキスト)をログで確認したのですが、ここでは問題なく指定した値が選択されています。
おそらく、セレクト要素の値をjqueryで選択しているので値は設定されているが反映がされていない状況だと思うのですが、
帳票保存フィールドの選択で「$(‘.pcreator-attachment-field-select’).val(‘attachment’).change();」としてchangeイベントを発火させて、そのイベント内で保存ボタンをクリックしても変わりなしでした。
jqueryで選択した帳票名を反映させるにはどのようにすればいいのでしょうか?
アドバイスなどいただけると幸いです。
お手数ですが、よろしくお願いいたします。