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

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

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

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

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

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

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

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

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

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

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

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

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

トヨクモ株式会社 齊藤様

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

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

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

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などを使うと、エラーメッセージが見れるのでそれも活用してみてください。私としてはこれ以上のサポートはできないのですが、挑戦してみてください。

齊藤様

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

チャレンジしてみます!

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

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

detailEvent =function(event){

if (…)

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

はじめまして。

私は、下記のようにして、プリントクリエーターの機能を非表示にしました。

JavaScript / CSSでカスタマイズ の配置は最下部にしました。

上部におくと他のボタンも消えてしましました。

何分、初心者+初投稿ですので、詳しいお話はご遠慮させてください。

 

var record = event.record;
var HFD = record[‘*****’][‘value’] ;
var HIR = record[‘******’][‘value’] ;
var SAG = record[‘******’][‘value’] ;
var HOG = record[‘*******’][‘value’] ;
var SEN = record[‘********’][‘value’] ;

if (HFD != “*”){
if (HIR != “*”){
if (!SAG){
}else{
if (!HOG){
}else{
FL = 1
}
}
}else{
}
}else{
if (SEN != “*”){
if (!SAG){
}else{
if (!HOG){
}else{
FL = 1
}
}
}else{
}
}

if (FL == 1){
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”;
}

関様

コメント及びコードの記載ありがとうございます。

テストしてみます!

表示・非表示させる機能が標準であると良いのですが。。。