特定のフィールドを一覧・詳細画面ともに非表示にしたい

特定のフィールド(数値でルックアップコピー先)を一覧画面と詳細画面ともに非表示にしたいので、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などで作成されてしまいます。

本当に助かりました。ありがとうございました。

マツさん

文字コードが違っていたのですね。無事動いたようでよかったです!