ドロップダウンの設定によるテーブルの非表示について

何を実現したいのかを書きましょう

いつも大変お世話になっております。初めての投稿で大変恐れ入ります。
契約区分(ドロップダウンの値)により、「新規以外」は登録画面でテーブルの非表示を行いたいですが
テーブル値について知識不足で
アドバイスいただきますと幸いです。是非ともご指導のほど、どうぞよろしくお願い致します。

実行したコードをコピー&ペーストしましょう

コードをここに入力または貼り付け
(function() {
    "use strict";

    //レコードの追加、編集、詳細画面で適用する
    var events = ['app.record.detail.show',
                  'app.record.create.show',
                  'app.record.create.change.契約区分',
                  'app.record.edit.show',
                  'app.record.edit.change.契約区分'];

    kintone.events.on(events, function(event) {

        var record = event.record;
        var 特別_総社員数 = Number(record['特別_総人数'].value);
        var 特別_規定報酬 = Number(record['特別_報酬'].value);
        var 特別_基本料金 = Number(record['特別_基本料金'].value);
        var 特別_計算料金 = Number(record['特別_計算料金'].value);
        var 従業員数 = record['従業員数'].value;
        var 区分 = record['区分'].value;
        var 基本料金 = record['基本料金'].value;
        var 計算料金 = record['計算料金'].value;
        var 総人数 = record['総人数'].value;
        var 報酬 = record['報酬'].value;
        
        var past = record.契約区分.value;
        if (past === '新契約' || past === '旧契約') {
            kintone.app.record.setFieldShown('詳細', false);
            kintone.app.record.setFieldShown('特別_基本料金', false);
            kintone.app.record.setFieldShown('特別_計算料金', false);
            kintone.app.record.setFieldShown('特別_総人数', false);
            kintone.app.record.setFieldShown('特別_報酬', false);
            kintone.app.record.setFieldShown('契約区分', true);
            kintone.app.record.setFieldShown('従業員数', true);
            kintone.app.record.setFieldShown('区分', true);
            kintone.app.record.setFieldShown('基本料金', true);
            kintone.app.record.setFieldShown('計算料金', true);
            kintone.app.record.setFieldShown('総人数', true);
            kintone.app.record.setFieldShown('報酬', true);
            
            record.詳細.value = ""; //非表示の時にvalueを空にする
            record.特別_基本料金.value = ""; 
            record.特別_計算料金.value = ""; 
            record.特別_総人数.value = ""; 
            record.特別_報酬.value = ""; 
            
        } else if (past === '特別') {
            
            kintone.app.record.setFieldShown('従業員数', false);
            kintone.app.record.setFieldShown('区分', false);
            kintone.app.record.setFieldShown('基本料金', false);
            kintone.app.record.setFieldShown('計算料金', false);
            kintone.app.record.setFieldShown('総人数', false);
            kintone.app.record.setFieldShown('報酬', false);
            kintone.app.record.setFieldShown('契約区分', true);
            kintone.app.record.setFieldShown('詳細', true);
            kintone.app.record.setFieldShown('特別_基本料金', true);
            kintone.app.record.setFieldShown('特別_計算料金', true);
            kintone.app.record.setFieldShown('特別_総人数', true);
            kintone.app.record.setFieldShown('特別_報酬', true);
         
    } else if (past === '新規') {
   
![スクリーンショット 2025-05-26 11.56.46|672x500](upload://baXj7u3LZ5eWXAPjDJaj0yFb6tk.png)


        }else {
            kintone.app.record.setFieldShown('契約区分', true);
            kintone.app.record.setFieldShown('詳細', false);
            kintone.app.record.setFieldShown('特別_基本料金', false);
            kintone.app.record.setFieldShown('特別_計算料金', false);
            kintone.app.record.setFieldShown('特別_総人数', false);
            kintone.app.record.setFieldShown('特別_報酬', false);
            kintone.app.record.setFieldShown('従業員数', false);
            kintone.app.record.setFieldShown('区分', false);
            kintone.app.record.setFieldShown('基本料金', false);
            kintone.app.record.setFieldShown('計算料金', false);
            kintone.app.record.setFieldShown('総人数', false);
            kintone.app.record.setFieldShown('報酬', false);
            
            record.詳細.value = ""; //非表示の時にvalueを空にする
            record.特別_基本料金.value = ""; 
            record.特別_計算料金.value = ""; 
            record.特別_総人数.value = ""; 
            record.特別_報酬.value = ""; 
            record.従業員数.lookup = "";
            record.従業員数.lookup  === "undefined";
            //record.従業員数.value = "";
            record.区分.value = "";
            record.基本料金.value = ""; 
            record.計算料金.value = ""; 
            record.総人数.value = ""; 
            record.報酬.value = "";
        }

    return event;  
      
    });
})();

具体的に何を解決したいのかが、質問から読み取りづらいです。

  • テーブルを非表示にする方法がわからない
  • テーブルを非表示にできたが、同時に値をリセットする方法が分からない
  • テーブルが非表示にならない
  • テーブルを非表示にできたが、テーブル値がリセットされない

↑のいずれかかな?と思いますが、どれでしょうかね?

質問ガイドライン にある通り、

  • 発生した問題やエラーメッセージを具体的に書きましょう

の段落があると、回答者が答えやすいと思います。


フィールドの表示/非表示は、既にご存じだと思いますが kintone.app.record.setFieldShown() を使うことで実現できます。

テーブルの値については、フィールドの形式を確認すると良いと思います。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。