krewSheetとは?
krewSheetはエクセルのような操作感覚でkintoneのデータを操作できるプラグインで、非常に多くのお客様がご利用されています。そのkrewSheetを使い込んでいくと気になるところを、カスタマインで改善してみましょう!
ということで今回のお題は、【テーブル内のフィールドの必須チェックを実現する】です。
テーブル内のフィールドの必須チェック
標準のkrewSheetでは、kintoneのフォーム設定でテーブル中のフィールドを「必須項目にする」に設定しても、テーブル行が未入力の場合にはレコードの保存ができてしまいます。
このカスタマイズでは、これをチェックするようにしてみます。
設定はこのようになります。以下解説します。
まず保存しようとしているレコード内の、テーブルの取得
アクション番号1番と2番で、チェックしたいテーブルをレコードとして取得しています。
まずkrewSheetで保存しようとしているレコードを取得するで、保存しようとしているレコードを取得した後、他のレコード内のテーブルをレコードとして取得するでテーブルをレコードとして取得しています。
1番の条件は、必ずレコードを保存する直前(削除時は除く)にしておくことが重要です。
必須項目に値が入っていない行数をカウント
取得したテーブルをレコード中の条件に合う行数をカウントするでカウントします。
ここでは必須チェックをしたいので、比較値は何も入力しないで、何も入力されていない行数をカウントします。
未入力行があったら、エラーとして保存をキャンセル
最後に、カウントした結果が0でなければ、未入力行が存在するということになりますので、エラーダイアログを表示して保存をキャンセルするを使って保存をキャンセルします。
アクション番号の5番が前段で述べたテーブル未入力時のチェックです。ここではテーブル行が0行だった場合にもエラーとして保存をキャンセルしています。このチェックはお好みで、チェックするかどうかを選んでもよいかと思います。
まとめ
krewSheetでテーブル内のフィールドの必須チェックを実現するカスタマイズは以上となります。
もし分からないことがありましたら、お気軽にチャットサポートまでお問い合わせください。