新規投稿
フォローする

プリントクリエイターの出力ボタン表示制御について

プリントクリエイターで特定のステータス時に

出力ボタンを非表示にしたいのですが、可能でしょうか。

仕様が変わっているようで、以前同じようなことをやられている記事を

参考にしてやってみたのですが、上手くいきませんでした。

分かる方がいらっしゃれば教えていただけると幸いです。

0

5件のコメント

Avatar
t

トヨクモ株式会社の齊藤です。

> 仕様が変わっているようで、以前同じようなことをやられている記事を

> 参考にしてやってみたのですが、上手くいきませんでした。

この記事はどちらの記事でしょうか?他にもなにか情報があれば併記していただくと解決につながるかも知れません。たとえば、何かエラーが出ている、変な現象が起こる、他のjavascriptを利用している、などの情報です。

推測ですが、こちらの「gusuku Customine」を利用してプリントクリエイターのボタンを非表示にしようとしているのではないでしょうか?

https://customine.gusuku.io/ja/features.html

その場合、販売元のアールスリーインスティテュート様に問い合わせたほうが良いかも知れません。

0
Avatar
西達彦

トヨクモ株式会社 齊藤様

コメントありがとうございます。

一応下記の記事を参考にしたのですが、、、

https://developer.cybozu.io/hc/ja/community/posts/201744150-%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%81%8C-%E6%89%BF%E8%AA%8D%E6%B8%88-%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AE%E3%81%BF%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%B8%B3%E7%A5%A8%E5%87%BA%E5%8A%9B%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%9F%E3%81%84

今回はgusuku Customineは使用しておらず、完全にjavaScriptで制御したいと考えております。

コードは下記のように書いており、やりたいこととしては特定のステータス時のみ表示、もしくは特定のステータス時に非表示と考えています。

(可能であれば後者で制御できた方が都合がいいのですが)

var _pcreatorConfig;

_pcreatorConfig = _pcreatorConfig || {};

_pcreatorConfig = {
appCode: "アプリコード",
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.min.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.min.js";
s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(scr, s);
}else 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.min.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.min.js";
s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(scr, s);
}else { $('.pcreator-container').hide(); }

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;
});
})();

0
Avatar
t

https://developer.cybozu.io/hc/ja/community/posts/201744150-%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%81%8C-%E6%89%BF%E8%AA%8D%E6%B8%88-%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AE%E3%81%BF%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%B8%B3%E7%A5%A8%E5%87%BA%E5%8A%9B%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%9F%E3%81%84

上記のjavascriptは、かなり前のプリントクリエイターのものになるので、それをそのまま利用することはできないということかと思います。「アプリの設定」の、「Javascript/CSSでカスタマイズ」のところから、kintone-printcreator-loader-{アプリ番号}.js というファイルをダウンロードして、それを改造したものを設定するとうまく行くかも知れません。detailEvent = function (event) { ... } というところがあると思うので、そこをif文で条件分岐させるとうまく行くと思います。また、ブラウザのdevtoolなどを使うと、エラーメッセージが見れるのでそれも活用してみてください。私としてはこれ以上のサポートはできないのですが、挑戦してみてください。

0
Avatar
西達彦

齊藤様

大変ありがとうございます。

チャレンジしてみます!

この対応が上手くいけば社内の要望がすべて終えられるので頑張ります!

1
Avatar
西達彦

ちなみに書き換え方なのですが

detailEvent =function(event){

if (...)

のような書き方で合っていますか?

0
ログインしてコメントを残してください。