レコード編集時に、チェックボックスの有無でグループを表示したい

https://developer.cybozu.io/hc/ja/articles/207377396-%E5%9B%9E%E7%AD%94%E3%81%AE%E6%9D%A1%E4%BB%B6%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E9%96%8B%E9%96%89%E3%82%92%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%82%8B

 

このコードを参考にしました。サンプルではラジオボタンになっていますが、チェックボックスで同じことを再現したく、コードを以下のように書き換えてみたのですが反応しません。エラーも特に出ていません。

よろしくお願い致します。

/*
* 回答の条件によってグループフィールドの開閉を切り替えるサンプルプログラム
*
*/

(function() {

“use strict”;

//チェックボックスの値によって開くグループフィールドを変更する操作
var eventsSubmit = [‘app.record.detail.show’,
‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.create.change.チェックボックス_1’,
‘app.record.edit.change.チェックボックス_1’];
kintone.events.on(eventsSubmit, function(e) {
var record = e.record;
var checkBoxValue = record.チェックボックス_1.value;

//グループフィールド開閉APIを用いて、まず全てのグループフィールドを閉じる
kintone.app.record.setGroupFieldOpen(‘グループ1’, false);
kintone.app.record.setGroupFieldOpen(‘グループ2’, false);
kintone.app.record.setGroupFieldOpen(‘グループ3’, false);
kintone.app.record.setGroupFieldOpen(‘グループ4’, false);

//チェックボックスの値によって開くグループフィールドを切り替える
switch (checkBoxValue) {
case “会食”:
kintone.app.record.setGroupFieldOpen(‘グループ1’, true);
break;
case “贈答”:
kintone.app.record.setGroupFieldOpen(‘グループ2’, true);
break;
case “ゴルフ”:
kintone.app.record.setGroupFieldOpen(‘グループ3’, true);
break;
case “その他( 会費等、ご記入ください)”:
kintone.app.record.setGroupFieldOpen(‘グループ4’, true);
break;
}
});
})();

mm さん

チェックボックスは配列で値を保持しているので、該当の Tips の処理は向かないですね。
チェックボックスでも別にできるのですが、切り替える処理をやる場合は処理を書き換える必要があります。

ちなみにチェックボックスにした理由ってあったりしますか?

チェックボックスで選択している複数のグループを開く とかであるなら確かにチェックボックスがいいですが、
1つのグループだけ開いている前提で、切り替える処理のみの場合は、Tips の処理を流用できるので
ラジオボタンにした方が楽かなと思います。

お世話になっております。どうもありがとうございます。

>ちなみにチェックボックスにした理由ってあったりしますか?

項目を複数選択する可能性があるからです。

よろしくお願い致します。

 

mm さん

前半処理は変わらないので、swithc文のところを、forEach文でチェックボックスの値を取得して
条件分岐すれば可能です。

↓のような処理で可能だと思います。
※ フィールドコードやチェックボックスの値、条件分岐などは適宜環境に合わせてください。

(function() {

    "use strict";

    //チェックボックスの値によって開くグループフィールドを変更する操作
    var eventsSubmit = ['app.record.detail.show',
        'app.record.create.show',
        'app.record.edit.show',
        'app.record.create.change.チェックボックス',
        'app.record.edit.change.チェックボックス'
    ];

    kintone.events.on(eventsSubmit, function(e) {
        var record = e.record;
        var checkBoxValue = record.チェックボックス.value;

        //グループフィールド開閉APIを用いて、まず全てのグループフィールドを閉じる
        kintone.app.record.setGroupFieldOpen('group1', false);
        kintone.app.record.setGroupFieldOpen('group2', false);

        checkBoxValue.forEach(function(item) {
            if(item === "group1") {
                kintone.app.record.setGroupFieldOpen('group1', true);
            } else if(item === "group2") {
                kintone.app.record.setGroupFieldOpen('group2', true);
            }
        });

    return e;
    });
})();

 

しぶい様

どうもありがとうございます!

さっそく試してみます!!

しぶい様

お世話になっております。

ご提案いただいた内容で無事希望どおりの操作になりました!

この度はご丁寧にどうもありがとうございました!!!