Customineは色々なことが簡単に出来るのですが、「出来るけど非常に複雑になる」カスタマイズというものがあります。タブの中のフィールドの表示/非表示を制御したい、というのもそんなカスタマイズのひとつです。
そもそも「タブの中にフィールドを入れる」時点で、タブに連動して表示/非表示が制御されますので、その中でさらに表示/非表示を制御するとなると、タブにおまかせしていた部分をすべて自分でコントロールする必要が出てきます。
したがって「タブ内のフィールドを表示・非表示出来ないのですか?」という問のお答えとしましては、「不可能ではないが、とても複雑なカスタマイズになります」というものになるのですが、実際どのくらい複雑になるのかをご紹介したいと思います。
アップデート情報:
2020年3月末のアップデートにより「フィールドやグループを表示する」「フィールドやグループを非表示にする」を利用するだけで、タブの中に入っているフィールドも自動的に処理されるようになりました!
以下、複雑なカスタマイズが続くのですが、こんなことも出来るんだという参考程度に見ていただければと思います。いつか役に立つ日が来るかもしれません!
こちらの方法は制御したいフィールドが増えるほど、また条件が複雑になればなるほど、とても複雑なカスタマイズになりますので、お勧めの方法ではありません。こういうことも出来ますよ、という一例として捉えていただければ幸いです。
また、ユーザーやグループによって表示/非表示を制御したい場合には、kintone標準のフィールドのアクセス権の設定で対応することをお勧めします。
ここでは、フォームの中の値によってコントロールする方法をご紹介します。
kintoneアプリのフォーム設定の確認
今回サンプルとして利用するkintoneアプリのフォームは、以下のようになっています。
「ラジオボタン」「文字列1(表示)」と「文字列2(非表示)」をタブ1に、「文字列3(表示)」をタブ2に入れて、「文字列2(非表示)」は基本的には非表示(ラジオボタンが“sample2”のときは表示)ということを実現してみます。
一番下にある「非表示用トリガー」というフィールドを利用するのが、独特のテクニックになります。
フィールド非表示の基本的な考え方
フィールドの表示/非表示は、「通常は非表示にしておいて、必要な時に表示する」のが基本的な考え方です。
ですので、まずはタブを作りつつ常に非表示にするカスタマイズを作成してみたいと思います。
追加・編集画面:まずタブの中で、常にあるフィールドを非表示にする
初めに追加・編集画面のカスタマイズを行います。
タブの中で、常にあるフィールドを非表示にするカスタマイズは以下のとおりです。「タブグループを作成する」と「タブグループにタブを追加する」は、通常のタブの使い方ですので、それ以降を解説します。
アクション番号4-6番でタブの準備が終わったあと、7番で表示用トリガーのフィールドを用意しています。このフィールドは、このフィールドが更新されたら常にフィールドを非表示にするために使います(8番の設定です)。
続いて9番で、非表示のフィールドが入っているタブが押されたときにも表示用トリガーの値を更新しています。こうすることで、「タブが押される」→「表示用トリガーが更新される」→「フィールドが非表示にされる」という動作を実現しています。
ここまでで、追加・編集画面では常に「文字列2(非表示)」が表示されない、というカスタマイズが出来たはずです。
「kintoneに登録」をクリックして、実際の動作を確かめてみてください。
追加・編集画面:フィールドの中身によって、フィールドを表示する
常に非表示が出来たので、次に「ラジオボタンが“sample2”のときは表示する」というカスタマイズを入れていきたいと思います。
ずっと非表示にしていたフィールドを表示すべきタイミングは、【非表示にしたあとにフィールドの条件による】、ということになりますので、アクション番号10番のような設定になります。
最後にラジオボタンの値が変わった際には非表示用トリガーを更新します(12番)。これでまた、ラジオボタンを変更した場合の流れを作ることが出来ます。
具体的には「ラジオボタンの変更」→「表示用トリガーが更新される」→「フィールドが非表示にされる」→「条件によっては、フィールドが表示される」、という流れになります。
これで、追加・編集画面のカスタマイズは完成です。
「非表示用トリガー」フィールドは、動作が分かりやすいように残してありますが、実際に作成される際には常に非表示にしておいて問題ありません。
詳細画面:フィールドの中身によって、セットするタブの内容を変更する
編集画面でも十分ややこしかったと思いますが、ここからさらに詳細画面用のカスタマイズを作る必要があります。
詳細画面では非表示用トリガーは利用しません。
その代わり、フィールドの値によって作成するタブの内容を変更します。具体的には、
- ラジオボタンが“sample2”のときは、「文字列2(非表示)」をタブに入れる
- それ以外のときは、「文字列2(非表示)」をタブに入れずに、非表示にする
というように、2パターンのタブを作ります。以下ご確認ください。
アクション番号14-15が前者の流れで、16-17が後者のタブに非表示フィールドを追加していない方の流れです。
アクション番号18番では、タブが作り終わった最後に、タブに入れなかった「文字列2(非表示)」を非表示にしています。詳細画面は基本的に値が変わりませんので、ここで非表示にしておけばOKです。
これで詳細画面のカスタマイズも完成です!
まとめ
「不可能ではないが、とても複雑なカスタマイズになる」事例として、タブ内のフィールドを表示・非表示するカスタマイズをご紹介しました。
たった1つのフィールドでこの複雑度ですので、これが複数フィールド・複数条件となってきますと、非常に複雑なカスタマイズになってしまいます。
繰り返しになりますが一番のおすすめは、「タブの外に出して、表示非表示を制御する」になりますので、この方向で検討していただくのがベストかと思います。
またこちらも再度のご連絡ですが、ユーザーやグループ、あるいはレコードの中のユーザーフィールド選択の中身によって表示/非表示を制御したい場合には、kintone標準のフィールドのアクセス権の設定で対応することをお勧めします。
もしなにか分からないことがありましたら、チャットサポートにてお問い合わせください。