LoginSignup
2
5

rex0220 項目検証プラグイン

Last updated at Posted at 2017-08-20

kintone の入力項目必須チェック、バリデーションチェック、入力抑止、表示制御を行うプラグインです。
項目入力時に画面に状況が表示されます。

必須チェック・バリデーションチェック・入力抑止・表示制御を、条件式を指定するだけで処理出来ます。
Excel の計算式のような指定方法で、複雑な条件を指定できます。

  • 必須チェック・バリデーションチェック・入力抑止・表示制御
  • エラー及び必須項目入力枠に色表示
  • エラー及び必須項目入力状況表示
  • 項目絞り込みプラグイン(Ver.11 以降)連携
  • PC・スマホ対応

rex0220 storesで、販売中です。

直近の変更点

Ver.45 変更点
・一覧画面編集時に、項目の値変更イベント処理を行わない不具合対応
※ Ver.41-44 の不具合

Ver.44 変更点
・カスタムチェックで、指定した項目値が変化しても画面に反映されない不具合の対応
 プラグイン設定画面で、「保存」することが必要です。
・CONTAINS 関数を追加。テーブル内項目の値を確認する
・MOD 関数を追加。剰余を求める関数。
・MROUND 関数を追加。倍数に丸める関数。
・ARRAY_EQUALS 関数を追加
・ARRAY_EVERY 関数を追加
・ARRAY_SOME 関数を追加
・ISBLANK 関数を追加
・ISNUMBER 関数について、複数パラメータに対応
・DURATION_AS, DURATION_GET, DURATION_FORMAT 関数の第1パラメータについて、文字列の数値に対応
・LET 関数の変数名に、「_」アンダースコアを指定可能に変更

応用例

項目検証プラグインの応用例です。

編集画面表示例

  • メニュー欄に、必須項目入力状況(入力数/必須項目数)を表示
  • 入力状況が分かりやすいように、必須項目入力枠に色表示。

※文字列複数行、リッチテキスト、ファイル、ルックアップの項目については、入力枠の色表示と、必須項目入力状況を入力したタイミングで更新されません。
(kintone API の制限によるものです)

2017-08-23_14h44_36.png

※文字列(複数行)、リッチエディター、ルックアップは、入力時のタイミングで、色枠表示が切り替わりません。

編集画面エラー表示例

保存ボタンクリック時、必須項目の未入力の場合、「必須」エラーが表示されます。

2017-08-23_14h47_10.png

一覧画面編集例

一覧画面編集時も、必須項目の色枠表示されます。

2017-08-23_14h58_51.png

項目表示制御

項目の値により、項目の表示制御を行うことができます。

  • ドロップダウン項目の値により、グループの表示制御する例
2017-08-24_19h55_26.png
  • 設定例

「ドロップダウン」の値が "sample3" の場合、「グループ」項目を非表示

2017-08-24_20h03_41.png
  • 画面操作例

2017-08-24_19h49_05.gif

初期化

非表示対象になった項目について、「保存」処理時に項目を規定値で初期化します。
編集画面表示中は、非表示の切り替えが発生しても、値はそのままです。

スマホ対応

スマホの編集画面でも、必須項目に色枠表示し、ヘッダ部に入力状況が表示されます。
スクロールしても、ヘッダ部の入力状況は表示されています。

2017-08-20_16h28_36.png

基本バリデーションチェック

kintone のフォーム設定で指定された制約条件をチェックします。
標準機能では、「保存時」にチェックされますが、本プラグインでは、
項目入力時にチェックが行われますので、入力ミスがすぐわかります。

  • 数字項目の自動変換
    全角文字数字を半角変換およびカンマの自動削除

  • 数字項目の min、 max 指定のチェック

  • 文字列の minLength、maxLength 指定のチェック

カスタムバリデーションチェック

  • 条件式により、項目の入力値をチェックして、エラーメッセージを表示します。
  • エラーメッセージにも、計算式を指定できます。
2017-08-23_15h48_21.png

操作例

ドロップダウン項目により、必須項目を切り替えています。

2017-08-20_01h42_37.gif

#プラグインの追加

  • 「kintone システム管理 > プラグイン」で追加します。
  • 「アプリの設定 > プラグイン」で、アプリに追加します。
2017-08-20_16h39_58.png

プラグイン設定

  • 対象アプリで、対象項目を選択し、必須条件・入力不可・非表示・検証の条件式を設定します。
  • フィルタ機能で、表示項目を絞れます。
  • グリッドのラベル欄をクリックすると、その項目順にソートされます。
  • 初期化を指定すると、項目が非表示になったら、項目の規定値に更新します。
  • 条件式には、計算式プラグインと同様の式を指定可能です。
  • 編集ボタン
    • テーブル項目: テーブル内項目の非表示を指定
    • テーブル項目以外: 対象項目の検証条件を指定
  • 「保存する」をクリックします。

※ 条件式に「改行」を指定して、式を見やすく出来ます。
「改行」は、実行時には無視されます。

※フォーム変更時は、本プラグインの再設定を行ってください。

2018-04-13_11h07_32.png

条件式の例

必須チェック条件式例

  • IN(ステータス, "アサイン", "処理中")
  • ステータス=="処理中"
  • ドロップダウン=="sample1"

全画面表示

全画面表示ボタンクリックで、全画面表示に出来ます。
もう一度クリックすると元に戻ります。

2018-04-13_11h11_26.png

フィルタ機能

  • フィルタ入力欄に、キーワードを入力すると、該当する項目のみ表示されます。
  • キーワードは、黄色表示となります。
  • またドロップダウンで、抽出条件と対象欄を選択できます。
  • リセットボタンで、フィルタをリセットします。
  • フィルタ後に再表示されても、表示順は戻りません。必要に応じソート機能を使います。
2018-04-13_11h08_16.png

ソート機能

  • グリッドのヘッダ部をクリックすると、ソートされます。
  • もう一度クリックすると、逆順に表示されます。
2017-09-19_09h12_00.png

関数入力支援

編集エリア内で「?」を入力すると、指定可能な関数一覧が表示されます。
関数をクリックすると編集エリアに関数名が入力されます。

2017-08-24_17h13_36.png

フィールドコード入力支援

編集エリア内で「:」(コロン)を入力すると、項目一覧(項目名:フィールドコード)が表示されます。
項目をクリックすると編集エリアにフィールドコードが入力されます。

2017-08-24_17h16_01.png

テーブル内項目の非表示設定

  • 非表示条件を指定します。
  • 設定終了後、保存ボタンをクリックします。
2020-06-14_11h08_20.png

検証条件の設定画面

  • 検証条件とエラーメッセージを指定します。
  • エラーメッセージにも、計算式を指定可能です。
  • メッセージ(日)は、必須で、(英)・(中)は、オプションです。
  • 設定終了後、保存ボタンをクリックします。
2017-08-24_17h06_15.png
  • サブテーブル項目の検証条件設定例
2017-08-24_17h09_04.png

条件式の設定例

  • 条件式の優先順位は、検証条件<必須条件<入力不可<非表示<制約。
  • 無条件に必須項目: 1 を指定
  • 項目の値で制御:フィールドコード=="指定値"
  • 項目の複数値で制御:IN(フィールドコード,"指定値1","指定値2")
  • ステータスで制御: IN(ステータス,"指定値1","指定値2")

カスタムバリデーションチェック例

「住所」項目に、「都,道,府,県」が含まれているかをチェック

条件:AND(住所,NOT(TEST(住所,"都","道","府","県")))
メッセージ(日):"都・道・府・県が必要です"

※住所が入力されており、かつ住所に"都","道","府","県"が含まれていない場合に、メッセージ表示

ステータスを使った設定例

  • ステータスの状態によって、非表示・入力不可・必須項目を設定します。
2017-08-23_15h17_01.png
  • ステータスによる、画面表示例

ステータス="完了"で、入力不可になっています。

2017-08-21_08h56_03.png

ルックアップ項目の設定例

kintone API の制限により、ルックアップ項目はリアルタイムで入力変更を検知できませんが、ルックアップのコピー項目を使うと、リアルタイムで検知できます。

  • 必須条件: IN(ステータス,"指定値1","指定値2")
  • 非表示: 1==0 && ルックアップコピー項目 == ""

    非表示指定は、ルックアップ以外の項目でもOK。動作するきっかけがあればよい。

非表示に、式が true にならない条件で、ルックアップコピー項目を指定します。
この設定で、ルックアップコピー項目の変更のタイミングで、ルックアップ項目のチェックが行われます。

2017-08-23_15h21_19.png

言語ごとの名称設定時の条件式について

項目の値に、言語ごとの名称を設定した場合、条件式には各言語に対応する条件を指定します。

  • ドロップダウン、ラジオボタン、チェックボックス、複数選択、ステータス

チェックボックスの言語ごとの名称設定例
 英語、日本語、中国語にそれぞれ名称を設定している

2017-08-26_14h13_52.png

ユーザの設定言語により、表示される値が異なりますので、条件式も対応します。
sample1 が選択された場合の条件式は、下記のようにします。

IN(チェックボックス, "sample1", "サンプル1", "样品1")

プラグイン設定のダウンロード

  • プラグイン設定をダウンロードできます。
  • 計算式を変更している場合は、変更後の設定が対象です。
  • ブラウザ IE については、プラグイン設定のダウンロードの動作対象外です。
2017-09-18_20h10_18.png

プラグイン設定のアップロード

  • プラグイン設定をアップロードできます。
  • フィールドコードをキーにして、設定ファイルから計算式を設定します。
  • ブラウザ IE については、プラグイン設定のアップロードの動作対象外です。
2017-09-18_20h11_31.png
  • プラグイン設定ファイル情報を確認して、設定します。
2017-09-18_20h11_53.png

注意事項

  • 既に、JavaScript によるカスタマイズを行っているアプリの場合、処理が競合して、エラーになる場合があります。その場合は、該当するアプリでプラグインの使用を中止してください。
2
5
22

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5