【kintone】詳細画面の編集時に特定のフィールドを非表示にしたいのですが

いつもお世話になっております。

先週22日に行われた「kintone hive」に参加させていただき、大変勉強になりました。このような場が活発に開かれることを、今後とも期待しております。

さて、上記タイトルの通り、【kintone】の詳細画面での編集についてご質問いたします。

会員情報をまとめているアプリがあるのですが、一つのレコードあたりのフィールドが多くなっています。詳細画面からデータを編集する際、一度入力したフィールドの中には、その後変更しないものもございます。例えば、

「性別」
「生年月日」

などです。

詳細画面から編集する際、変更しないフィールドを非表示にすることはできますでしょうか?もちろん、詳細画面を表示した際(編集画面ではない)は、全フィールドを表示しておきたいです。

ご教授のほど、よろしくお願いいたします。

菅原尚哉さん

「詳細画面から編集」というのが、所謂レコード詳細画面から編集ボタンを押して遷移したレコード編集画面としますと、kintone.app.record.setFieldShown() はご存知かと思いますが、・・・

対象としているフィールド形式(ラジオボタンとかはこちらのアイディアを組み合わせる等)によりますが、入力済みか否かで

kintone.events.on(['app.record.create.show, app.record.edit.show'], function(event) {
  var record = event.record;
  var field_show_flag = true;
  if(record['field_code']['value'] != undefined){
    field_show_flag = false;
  }
  kintone.app.record.setFieldShown('field_code', field_show_flag);
  return event;
});

のようにするのはいかがでしょうか。

菅原尚哉さん
cstapの落合です。

この場合は、フィールドの表示/非表示を切り替える を使うといいでしょう。

サンプルを載せますので、参考にして下さい。

(function() {
  'use strict';

  var disabledFields = [
    'string1',
    'リッチエディター',
    '文字列__複数行_'
  ];

  kintone.events.on('app.record.edit.show', function(event) {
    var record = event.record;

    for (var i = 0, l = disabledFields.length; i < l; i++) {
      kintone.app.record.setFieldShown(disabledFields[i], false)
    }

    return event;
  });
})();

山下 さま
落合 さま

早速のご連絡、誠にありがとうございました。
サンプルコードも載せていただき、感謝申し上げます。

今後とも、よろしくお願いいたします。