初めて質問させていただきます。kintone をきっかけにjavascriptを始めたものです。今回、kintoneに関して以下を教えていただきたく存じます。
指定の文字フィールドが空白の場合(ここでは’aaa’としました)は、レコード印刷時に非表示にできるようにしたいと考えております。類似の投稿等を見ながら、以下の通りコードを作成してみたのですが、うまく動作してくれません。どなたかご教示いただけますと幸いです。わからないことだらけのため、的外れなことを言っているかもしれせんが、何卒どうぞよろしくお願いいたします。
(function() {
'use strict';
kintone.events.on('app.record.print.show', function(event) {
var record = e.record;
if(!e.record.aaa.value) {
kintone.app.record.setFieldShown('aaa', false);
}else{
kintone.app.record.setFieldShown('aaa', true);
}
})
})
ktbeginnerさん、はじめまして。
- 無名関数(一番外側のカッコ)が定義されているだけで、実行されていません。最後に()が必要です。
- 3行目、function(event) となっているので、5行目は!e.record.aaa.valueではなく!event.record.aaa.valueとなるはずです。
- 3行目から始まる関数の最後に、return event;が必要です。
最終的にこうなると思いますが、どうでしょうか?
(function () {
"use strict";
kintone.events.on("app.record.print.show", function (event) {
if (!event.record.aaa.value) {
kintone.app.record.setFieldShown("aaa", false);
} else {
kintone.app.record.setFieldShown("aaa", true);
}
return event;
});
})();
ちなみに補足ですが、短く以下のように書くこともできますよ。
(function () {
"use strict";
kintone.events.on("app.record.print.show", function (event) {
kintone.app.record.setFieldShown("aaa", !!event.record.aaa.value);
return event;
});
})();
Ribbit様
この度はご回答いただきありがとうございます。
早速、訂正いただいたコードについて試してみたところ、うまく動作してくれました。ありがとうございます!
また、補足いただいた短いコードについてもご教示いただきありがとうございます。こんなにスッキリかけるんですね。
しかし、こちらについては試してみたところ、うまく動作してくれませんでした。何が原因か考えてみましたが、
私にはわかりませんでした。。。後学のために、教えていただけますでしょうか?
どうぞよろしくお願いいたします。
Ribbit様
連投ですいません。
もしかしたらと思い、3行目を
kintone.app.record.setFieldShown("aaa", !event.record.aaa.value);
のように変えてみたら、逆に文字フィールドが空白なら表示され、空白以外で非表示となってしまいました。。。
trueとfalse以外を渡すとエラーになるようですね、失礼しました。
!を2つ連続して、
(function () {
"use strict";
kintone.events.on("app.record.print.show", function (event) {
kintone.app.record.setFieldShown("aaa", !!event.record.aaa.value);
return event;
});
})();
または、
(function () {
"use strict";
kintone.events.on("app.record.print.show", function (event) {
kintone.app.record.setFieldShown("aaa", Boolean(event.record.aaa.value));
return event;
});
})();
このどちらでも動作すると思います。
Ribbit様
早速ご確認いただき、またコードもご教示いただきありがとうございます。
どちらも希望通りに動作してくれました。
また、Ribbit様のホームページも拝見いたしました。初学者向けのページを見つけましたので、
今後参考にさせていただきます。ご対応どうもありがとうございました。