プログラミング素人です。基本的な質問ですみません。
見積書アプリで、プロセス管理機能を用いておりますが、
ステータスが「承認済」の場合のみ、
プリントクリエイターの帳票の出力ボタンを表示するようにしたいですが
可能でしょうか?
どうぞよろしくお願いいたします。
プログラミング素人です。基本的な質問ですみません。
見積書アプリで、プロセス管理機能を用いておりますが、
ステータスが「承認済」の場合のみ、
プリントクリエイターの帳票の出力ボタンを表示するようにしたいですが
可能でしょうか?
どうぞよろしくお願いいたします。
Shibayama様
cstapの落合です。
ご要望の機能は、下記のようにプリントクリエイターからダウンロードしたJavaScriptを変更することで実現できます。
appCodeはダウンロードしたJavaScriptに記載されているものに変更して、下記のJavaScriptをアプリに登録してみてください。
var _pcreatorConfig;
_pcreatorConfig = _pcreatorConfig || {};
_pcreatorConfig = {
appCode: "appCode", // ダウンロードしたJavaScriptのアプリコードに書き換えてください
baseUrl: "//print.kintoneapp.com"
};
(function() {
"use strict"
// 詳細画面
kintone.events.on('app.record.detail.show', function (event) {
if (event.record['ステータス'].value == '承認済') {
var l, s, scr, styl;
_pcreatorConfig.event = event;
styl = document.createElement("link");
styl.rel = "stylesheet";
styl.type = "text/css";
styl.href = "//print.kintoneapp.com/build/kintone-lib.css";
l = document.getElementsByTagName("link")[0];
l.parentNode.insertBefore(styl, l);
scr = document.createElement("script");
scr.type = "text/javascript";
scr.async = true;
scr.src = "//print.kintoneapp.com/build/kintone-lib.js";
s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(scr, s);
}
return event;
});
// 一覧画面(プレミアムプランのみ動作します)
kintone.events.on('app.record.index.show', function (event) {
var l, s, scr, styl;
_pcreatorConfig.event = event;
styl = document.createElement("link");
styl.rel = "stylesheet";
styl.type = "text/css";
styl.href = "//print.kintoneapp.com/build/kintone-lib.css";
l = document.getElementsByTagName("link")[0];
l.parentNode.insertBefore(styl, l);
scr = document.createElement("script");
scr.type = "text/javascript";
scr.async = true;
scr.src = "//print.kintoneapp.com/build/kintone-lib.js";
s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(scr, s);
return event;
});
})();
以上、参考になりますでしょうか?
落合様
素晴らしいスピードでの対応ありがとうございました。
試してみます。まずはお礼まで
Shibayama様
試してみてわからない点があれば、またご質問ください!
落合様
試してみました。
1点追加で質問させてください。
詳細画面のほうはうまく動きましたが、
一覧画面のほうも、承認された見積書だけ表示ということは可能でしょうか?
詳細画面のほうは承認後しか印刷できないので問題ないですが、
一覧画面からPDFを一括ダウンロードしてしまうと、
承認前でも見積を提出できてしまう気がしました。
承認済みの見積のみ、リスト表示する(一覧リストで条件絞り込み)ようにして、
そのリストの場合のみ、帳票の出力画面を表示する、
ということができればありがたいです。
素人すぎて恐縮ですが、よろしくお願いします。
Shibayama様
以下、回答させていただきます。
一覧画面のほうも、承認された見積書だけ表示ということは可能でしょうか?
kintoneの検索を利用した一括出力が可能です。
承認済みの見積のみ、リスト表示する(一覧リストで条件絞り込み)ようにして、
そのリストの場合のみ、帳票の出力画面を表示する、
ということができればありがたいです。
おっしゃる通りのことができます。
もう少し詳しく説明いたしますと、一覧画面では、検索条件にマッチするレコードを500件まで1度に帳票出力できます。
そのため、一覧画面についてはJavaScriptの変更は必要ないかと思います。
以上、よろしくお願い致します。
落合様
質問がわかりにくくてすみません。
検索条件にマッチするレコードのみを表示することができて、
それを印刷することができることはいいのですが、
承認されていない見積書も、別の一覧リストでは表示したいです。
その際、承認されていない一覧リストで表示した見積もりの帳票PDFを出力できてしまうことが問題です。
そのため、やりたいことは、
一覧リストでは、未承認のものも表示して管理は可能とし、
そのリストの時には、帳票出力ボタンは表示せず、
承認済みリストを選択した場合のみ、
帳票出力ボタンを表示したいです。
そういったことは可能でしょうか?
よろしくお願いします。
Shibayama様
勘違いしてしまい、申し訳ありません。
ご要望の機能は、JavaScriptを変更することで実現できるかと思います。
1.承認済みリストの一覧を作成する
2.承認済みリストの一覧のビューIDとevent.viewIdが一致する時のみ動作するようにJavaScriptを変更する
承認済みリストの一覧を選択した時のみ、帳票出力ボタンが表示されます。
ビューIDは、少しわかりにくいかと思いますが、一覧を選択した時にURLの後ろのに出てくる/k/123/?view=1233456という数字の部分です。
JavaScript
var _pcreatorConfig;
_pcreatorConfig = _pcreatorConfig || {};
_pcreatorConfig = {
appCode: “appCode”, // ダウンロードしたJavaScriptのアプリコードに書き換えてください
baseUrl: “//print.kintoneapp.com”
};
(function() {
“use strict”
// 詳細画面
kintone.events.on('app.record.detail.show', function (event) {
if (event.record['ステータス'].value == '承認済') {
var l, s, scr, styl;
_pcreatorConfig.event = event;
styl = document.createElement("link");
styl.rel = "stylesheet";
styl.type = "text/css";
styl.href = "//print.kintoneapp.com/build/kintone-lib.css";
l = document.getElementsByTagName("link")[0];
l.parentNode.insertBefore(styl, l);
scr = document.createElement("script");
scr.type = "text/javascript";
scr.async = true;
scr.src = "//print.kintoneapp.com/build/kintone-lib.js";
s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(scr, s);
}
return event;
});
// 一覧画面(プレミアムプランのみ動作します)
kintone.events.on('app.record.index.show', function (event) {
if (event.viewId == 5095895) { // 承認済みリストの一覧のビューIDに書き換えてください
var l, s, scr, styl;
_pcreatorConfig.event = event;
styl = document.createElement("link");
styl.rel = "stylesheet";
styl.type = "text/css";
styl.href = "//print.kintoneapp.com/build/kintone-lib.css";
l = document.getElementsByTagName("link")[0];
l.parentNode.insertBefore(styl, l);
scr = document.createElement("script");
scr.type = "text/javascript";
scr.async = true;
scr.src = "//print.kintoneapp.com/build/kintone-lib.js";
s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(scr, s);
}
return event;
});
})();
このJavaScriptのappCodeとビューIDを書き換えることで、ご要望の機能は実現できるかと思います。
以上、参考になりますでしょうか?
落合様
早速ありがとうございました。
やってみました。できました。
cstapさんの対応は本当に素晴らしいです!
どうもありがとうございました。
Shibayama様
実現できたようで良かったです!
また何かありましたら、お気軽にご質問ください。