0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

rex0220 項目検証プラグイン テーブルの重複チェック

Last updated at Posted at 2020-02-08

項目検証プラグインで、テーブル内項目の重複チェックする方法をまとめてみます。

環境

  • kintone: いろいろ簡単にできるクラウド型業務アプリ開発プラットフォーム
  • 項目検証プラグイン: めんどうなチェックを簡単にできるプラグイン

テーブル内項目の重複チェック1

テーブル内の項目で、同じ値を重複して入力させたくない場合に、項目検証プラグインでエラーにします。

2020-02-08_10h54_01.png

アプリのフォーム設定

テーブル内にドロップダウン項目を作成

2020-02-08_10h59_01.png

項目検証プラグインの設定

テーブル内のドロップダウン項目に、カスタムバリデーションを設定します。
少しトリッキーなチェックで、重複チェックを行っています。
テーブル内のドロップダウン項目値を',' でつなげて、対象行のドロップダウン値を"" に一つだけ変換したものと、全部変換したものが違っているかどうかで判定しています。

  • 条件:
    REPLACEALL(JOIN(TARRAY(ドロップダウン),","),ドロップダウン,"") !=
    REPLACE(JOIN(TARRAY(ドロップダウン),","),ドロップダウン,"")

  • メッセージ:
     "重複エラー: " & ドロップダウン

  • 関数: 計算式プラグインの関数が使えます。

    • REPLACEALL: 文字列変換で対象文字列をすべて変換
    • REPLACE: 文字列変換で対象文字列の先頭のみ変換
    • JOIN: 配列を区切り文字で連結
    • TARRAY: テーブル内項目の値を配列化
2020-02-08_11h03_36.png

問題点

チェックに文字列変換を使っているため、ドロップダウンの選択値に他の選択肢の文字列が含まれている場合に、エラーになってしまいます。
例:ドロップダウン2の選択肢が "ABC","A" で、重複していないのにエラーになるケース。

2020-02-08_11h35_45.png

テーブル内項目の重複チェック2

ドロップダウンの選択値に他の選択肢の文字列が含まれている場合も、対応できるチェックを考えてみます。
例:ドロップダウン2の正常ケースと重複エラー。

2020-02-08_11h44_00.png

項目検証プラグインの設定2

テーブル内のドロップダウン2項目に、カスタムバリデーションを設定します。
違いは、値をアポストロフィー"'" で囲んで変換する点です。
これで値に部分列があっても、ちゃんとチェックできます。
もし値にアポストロフィーがある場合は、別の記号を使いましょう。

  • 条件:
    REPLACEALL(JOIN(TARRAY("'"&ドロップダウン2&"'"),","),"'"&ドロップダウン2&"'","") !=
    REPLACE(JOIN(TARRAY("'"&ドロップダウン2&"'"),","),"'"&ドロップダウン2&"'","")

  • メッセージ:
     "重複エラー: " & ドロップダウン2

2020-02-08_11h50_50.png
0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?