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?

rex0220 項目検証プラグイン ユーザー選択間の重複チェック2

Last updated at Posted at 2024-12-12

項目検証プラグインで、複数ユーザー選択間の重複チェックを行ってみます。

概要

ユーザー選択1 とユーザー選択2 のそれぞれに、項目検証プラグインのカスタムチェックを設定することで、重複チェックを行います。

  • ユーザー選択1 とユーザー選択2 の重複チェック

2024-12-12_13h19_00.png

  • ユーザー選択1、ユーザー選択2 とユーザー選択3 の重複チェック

2024-12-12_20h58_10.png

操作例

  • ユーザー選択1 とユーザー選択2 の重複チェック

2024-12-12_13h34_36.gif

  • ユーザー選択1、ユーザー選択2 とユーザー選択3 の重複チェック

2024-12-12_20h59_44.gif

項目検証プラグイン設定

ユーザー選択1 とユーザー選択2 の重複チェック

ユーザー選択1 とユーザー選択2 のカスタムチェック・エラーメッセージは同じです。

  • ユーザー選択1 とユーザー選択2 のカスタムチェック
    • ユーザー選択1 とユーザー選択2のユーザーコードを配列で取得して、積集合から重複チェック
  • ユーザー選択1 とユーザー選択2 のエラーメッセージ
    • ユーザー選択1 とユーザー選択2のユーザー名を配列で取得して、積集合から重複名を表示

2024-12-12_13h24_42.png

  • SEL_CODE(ユーザー選択, "array") :ユーザー選択のユーザーコードを配列で取得
  • SEL_NAME(ユーザー選択, "array") :ユーザー選択のユーザー名を配列で取得
  • INERSECT(配列1, 配列2) :両方の配列に存在する値を配列で返す
    • INERSECT(ARRAY("user1","user2"), ARRAY("user2","user3")) -> ["user2"]
.js
// ユーザー選択1 USER_SELECT
 //* custom check-1:
ARRAY_COUNT(INTERSECT(
    SEL_CODE(ユーザー選択1,"array"),
    SEL_CODE(ユーザー選択2,"array")
))>0
 //* message ja:
"重複エラー: "&
JOIN(INTERSECT(
    SEL_NAME(ユーザー選択1,"array"),
    SEL_NAME(ユーザー選択2,"array")
),", ")

// ユーザー選択2 USER_SELECT
 //* custom check-1:
ARRAY_COUNT(INTERSECT(
    SEL_CODE(ユーザー選択1,"array"),
    SEL_CODE(ユーザー選択2,"array")
))>0
 //* message ja:
"重複エラー: "&
JOIN(INTERSECT(
    SEL_NAME(ユーザー選択1,"array"),
    SEL_NAME(ユーザー選択2,"array")
),", ")

ユーザー選択1、ユーザー選択2 とユーザー選択3 の重複チェック

  • ユーザー選択1は、ユーザー選択3 との重複チェック
  • ユーザー選択2は、ユーザー選択3 との重複チェック
  • ユーザー選択3は、ユーザー選択1,ユーザー選択2 との重複チェック

2024-12-12_22h10_51.png

  • DISTINCT(配列1, 配列2) :配列の重複値を排除
    • DISTINCT(ARRAY("user1","user2"), ARRAY("user2","user3")) -> ["user1","user2","user3"]
.js
// ユーザー選択1 USER_SELECT
 //* custom check-1:
ARRAY_COUNT(INTERSECT(
    SEL_CODE(ユーザー選択1,"array"),
    SEL_CODE(ユーザー選択3,"array")
))>0
 //* message ja:
"重複エラー: "&
JOIN(INTERSECT(
    SEL_NAME(ユーザー選択1,"array"),
    SEL_NAME(ユーザー選択3,"array")
),", ")

// ユーザー選択2 USER_SELECT
 //* custom check-1:
ARRAY_COUNT(INTERSECT(
    SEL_CODE(ユーザー選択2,"array"),
    SEL_CODE(ユーザー選択3,"array")
))>0
 //* message ja:
"重複エラー: "&
JOIN(INTERSECT(
    SEL_NAME(ユーザー選択2,"array"),
    SEL_NAME(ユーザー選択3,"array")
),", ")

// ユーザー選択3 USER_SELECT
 //* custom check-1:
ARRAY_COUNT(INTERSECT(
    SEL_CODE(ユーザー選択3,"array"),
    DISTINCT(
       SEL_CODE(ユーザー選択1,"array"),
       SEL_CODE(ユーザー選択2,"array")
    )
))>0
 //* message ja:
"重複エラー: "&
JOIN(INTERSECT(
    SEL_NAME(ユーザー選択3,"array"),
    DISTINCT(
       SEL_NAME(ユーザー選択1,"array"),
       SEL_NAME(ユーザー選択2,"array")
    )
),", ")
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?