特定のフィールド(数値でルックアップコピー先)を一覧画面と詳細画面ともに非表示にしたいので、javascriptを書いているのですがどうも動作してくれません。
以下にコードを記載致しますので、ご教授いただければ幸いです。
(function() {
“use strict”;
// レコード表示時の処理
kintone.events.on(‘app.record.index.show’, ‘app.record.detail.show’, function (event) {
var record = event.record;
kintone.app.record.setFieldShown(‘原料単価’, false);
return event;
});
})();
マツさん
コードを見たところ、イベントの記述が誤っているため、エラーとなっていると思われます。
複数のイベントを記述する場合、以下のように [] でくくり、 配列にする必要があります。
kintone.events.on(['app.record.index.show', 'app.record.detail.show'], function (event) {
また、一覧表示イベントではsetFieldShownを利用してフィールドを非表示にすることができません。
※イベント内でできる操作に関しては、各イベントページの「フィールドに応じた制御」の項目参照
そのため、上記修正をおこなうことで、詳細画面では非表示になりますが、一覧では非表示になりません。
ただし、一覧に関しては、事前に表示するフィールドを設定できるので、事前に表示する項目を絞ればいいのでは?と思いました。
※一覧(すべて)を選んだ場合、表示されますが、現在の設定では、レコード追加や編集画面では表示がされるので、
完全に見えなくすることが目的はないと思っており、一覧設定で回避できるのであれば、その方がよいかと思います。
一覧画面でも消せますが、保証されないカスタマイズとなります。
サクラエビさん
コメントありがとうございます。
一覧画面では非表示にならないこと理解致しました。
しかし、ご指摘いただきました通り[]でくくったのですが、やはり動作しません。
他にも記述ミスなどがあるのでしょうか?
度々お手数をお掛けして申し訳ございませんが、アドバイスいただければ幸いです。
マツさん
私の手元ではそのままコードを這って、[] だけ修正することで動くのですよね。
そのため考えられる理由として、
・作成しているJSの文字コードが utf-8 ではない。
→メモ帳で作成するとANSIなどで作成されてしまいます。
・フィールドコードが違う。
→原料単価がフィールドコードであっていますでしょうか?
などがパッと出てくるところですが、状況が分からないので、正確にはなんとも言えない状況です。
コンソールで何かエラーなど出力されていないでしょうか?
こちらの方法などを参考に、デバッグしてもらってエラーを教えていただけるとコメントがしやすいです。
サクラエビさん
早々のコメントありがとうございました。
動作しました!
原因はご指摘頂いた文字コードでした。UTF-8で保存しなおすことで動作しました。
>・作成しているJSの文字コードが utf-8 ではない。
> →メモ帳で作成するとANSIなどで作成されてしまいます。
本当に助かりました。ありがとうございました。
マツさん
文字コードが違っていたのですね。無事動いたようでよかったです!