下記の内容を参考にして、プリントクリエイターの出力帳票を制御しようとしているのですが、常にチェックオンの場合の帳票のみしか表示されないようになってしまいました。
https://developer.cybozu.io/hc/ja/community/posts/115010377766-%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%E3%82%AF%E3%83%AA%E3%82%A8%E3%82%A4%E3%82%BF%E3%83%BC%E3%81%AE%E5%87%BA%E5%8A%9B%E5%B8%B3%E7%A5%A8%E5%88%B6%E5%BE%A1%E3%81%AB%E9%96%A2%E3%81%97%E3%81%A6
制御したいこととしては、「税込」にチェックが入っている場合は、
見積書(税込)のみが表示され、チェックがない場合は「見積書」のみが表示されるようにと考えています。
プルダウンを表示するとチェックボックスに何も入っていないにもかかわらず見積書(税込)が表示されます。
コードが何か間違っているのでしょうか。
コードとしては下記の通りです。
(function() {
“use strict”;
kintone.events.on(“app.record.detail.show”, function(event) {
(new MutationObserver(function(_, observer) {
var selector = document.querySelector(“select.pcreator-sheets-select”);
if(selector){
var enableSheet = event.record[“税込”].value ? “見積書(税込)” : “見積書”;
Array.from(selector.options).forEach(function(option) {
if(option.textContent !== enableSheet) option.style.display = “none”;
});
observer.disconnect();
}
})).observe(kintone.app.record.getHeaderMenuSpaceElement(),
{childList: true, subtree: true});
return event;
});
})();
西達彦様
お世話になっております。
トヨクモの江田と申します。
プルダウンの初期値が更新されないということでよろしいでしょうか?
selector.valueを設定することで動作するかと思います。
(function () {
"use strict";
kintone.events.on("app.record.detail.show", function (event) {
(new MutationObserver(function (_, observer) {
var selector = document.querySelector("select.pcreator-sheets-select");
if (selector) {
var enableSheet = event.record["税込"].value ? "見積書(税込)" : "見積書";
Array.from(selector.options).forEach(function (option) {
if (option.textContent !== enableSheet) option.style.display = "none";
else selector.value = option.value;
});
observer.disconnect();
}
})).observe(kintone.app.record.getHeaderMenuSpaceElement(), {
childList: true,
subtree: true
});
return event;
});
})();
江田様
コメントありがとうございます。
初期値は更新されました!
あとはチェックボックスの判定で初期値が変わればいいのですが。。。
チェックボックスにチェックがあってもなくても
"見積書(税込)"のみしか表示されないようになっています。
チェックボックスの判定が上手くいっていないのでしょうか?
enableSheet = event.record[“税込”].value ?
ではなく
enableSheet = event.record[“税込”].value.length ?
で判定が上手くいきました!
ありがとうございました。