(著者:サイボウズ 三宅 智子)
Index
はじめに
「グループフィールド開閉API」を使ったJavaScriptカスタマイズをご紹介します。
このAPIを使うことで例えば、回答の条件によって、グループフィールドを開いたり閉じたりしたい!という要望にお応えできるようになります。
分岐のある入力項目がある場合に便利ですね。
今回ここでご紹介するのは、製品の要望を集めるアプリのラジオボタンの選択肢によってグループフィールドを制御できるカスタマイズです。
デモ環境
こちらのデモ環境から実際に動作を確認できます。
https://dev-demo.cybozu.com/k/82/
デモ環境アカウントとパスワードは、サインイン後にこちらのページでご確認ください。
完成イメージ
設問「種類」のラジオボタンの選択肢によって開いておくグルーフィールドを設定できます。
実際には下のように動きます。
サンプルアプリの準備
まずはアプリの準備をします。今回はkintoneアプリストアにある「製品評価箱アプリ」を使います。
ダウンロードした「製品評価箱アプリ」に必要なフィールドを追加して、フィールドコードを新たに設定します。
フィールドの設定
サンプルアプリのフィールドは以下です。製品評価箱アプリに元々設置されているフィールド以外に、下記のフィールドを付け足してください。
フィールド名 | フィールドコード | フィールドタイプ |
不具合を選択された方 | group_failure | グループフィールド |
要望を選択された方 | group_demand | グループフィールド |
質問を選択された方 | group_question | グループフィールド |
その他を選択された方 | group_other | グループフィールド |
各グループフィールドの中には上の完成イメージ図や下図を参考に任意のフィールドを入れてみてください!
サンプルプログラム
- サンプルプログラムは、その動作を保証するものではありません
- サンプルプログラムの技術的なサポート等は行っていません
プログラム(JavaScript)
「グループフィールド開閉API(kintone.app.record.setGroupFieldOpen)」を使って、まずアプリ内の全てのグループフィールドを閉じる処理をします。
そのあと、ラジオボタンの値によって開くグループフィールドを切り替えています。
使用したAPI
- イベントハンドラーを登録する
- レコード詳細画面が表示された時のイベント
- レコード追加画面が表示された時のイベント
- レコード編集画面が表示された時のイベント
- レコード追加画面のフィールド値変更イベント
- レコード編集画面のフィールド値変更イベント
- グループフィールドの開閉API
最後に
他にもアレンジして便利にお使いいただけそうでしょうか?
今回はラジオボタンの選択肢によってグループフィールド開閉を切り替えるというものでした。他にもプロセス管理のステータスによって切り替えるという利用シーンもありますね。
何かご不明な点などありましたらお気軽にコメントください!
※デモ環境についての説明はこちら
初めまして。とても良い機能で、プログラムを参考に作らせてもらいました!!
現状だと開閉が自動で行え、手動だとすべて開く事が出来る状態ですが、ラジオボタンを選んでない時、該当しないグループフィールドを開こうとしても開かないようにロックをかけるコードはご存知ないでしょうか?
コミュニティサイトで検索してみてもなかなかヒットせず。お分かりでしたらご教示いただければ幸いです。
yt 様
サンプルをご活用いただけているとのこと、ありがとうございます。
「グループフィールドの開閉を禁止する」ということはできかねます。
グループフィールド内のフィールドを触らせたくないということでしたら、
「フィールドの表示/非表示を切り替える」でグループフィールドを指定することで、グループフィールドを非表示にすることが可能です。
サンプルコード内の「setGroupFieldOpen」を「setFieldShown」に書き換えてお試しください。
▼修正例
↓
以上、よろしくお願いいたします。
ご担当者さま
この度はご返答並びに、非表示機能をご教示いただきありがとうございました。
みせなくすることにより、よりよいイメージで設定できました!
とても助かりました。ありがとうございました。
先日非表示の方法を教えていただいた者です。こちらのページのコードを応用し、サブテーブル内にあるドロップダウンフィールドの値でグループフィールドを開閉をする方法はありますでしょうか?もしコードの追加、修正するだけでイメージのものがありそうでしたらご教示いただければ嬉しいです。よろしくお願いいたします。
yt 様
サブテーブル内のフィールドにも同様にフィールド値変更イベントが実装可能です。
https://developer.cybozu.io/hc/ja/articles/201941984#step3
以下2点修正を行うことで実装可能かと思います。
・イベントの書き換え
・スイッチ文の書き換え
テーブルの操作に関しては、以下の記事が参考にしてください。
https://developer.cybozu.io/hc/ja/articles/360022502911
以上、よろしくお願いします。
ご担当者さま
さっそく実装方法をご教示いただきありがとうございます。参考例を確認し書いてみたのですがうまくいかず・・
・スイッチ文の書換
の部分でテーブルのフィールドの値をどのようなコードで取得したらよいか分からずです。
勉強不足で大変恐縮なのですが、実際の取得するコードが書かれているサイトなどあったりしますでしょうか?
yt 様
案内が中途半端になってしまい申し訳ございません。
実装について具体的な不明点はコミュニティに投稿をお願い致します。
有志からの回答を得られる場となっていますので、ぜひご活用ください。
以上、よろしくお願い致します。
ご担当者さま
さっそく投稿についてのご教示ありがとうございました。
コミュニティにて質問投稿してみます!
いつも有益な情報を提供いただき、ありがとうございます。
サンプルプログラムではラジオボタンの選択肢によって開閉を制御していますが、
ラジオボタンではなくチェックボックスを使用した場合に
上記サンプルプログラムと異なる点はありますでしょうか?
森雄大 様
お世話になっております。cybozu developer network 運営でございます。
ラジオボタンとチェックボックスでは、フィールド形式が違うため
値を参照している部分を変更する必要があります。
フィールド形式については以下の記事をご確認ください。
https://developer.cybozu.io/hc/ja/articles/202166330
また、詳しい実装方法につきましてはコミュニティをご活用ください。
cybozu Development team ご担当者様
ご連絡頂き、ありがとうございます。
コミュニティ内の
チェックボックスの選択肢によってフィールドの表示/非表示を切り替えたい
を参考にして作成いたしました。