項目検証プラグインで、複数ユーザー選択間の重複チェックを行ってみます。
概要
ユーザー選択1 とユーザー選択2 のそれぞれに、項目検証プラグインのカスタムチェックを設定することで、重複チェックを行います。
- ユーザー選択1 とユーザー選択2 の重複チェック
- ユーザー選択1、ユーザー選択2 とユーザー選択3 の重複チェック
操作例
- ユーザー選択1 とユーザー選択2 の重複チェック
- ユーザー選択1、ユーザー選択2 とユーザー選択3 の重複チェック
項目検証プラグイン設定
ユーザー選択1 とユーザー選択2 の重複チェック
ユーザー選択1 とユーザー選択2 のカスタムチェック・エラーメッセージは同じです。
- ユーザー選択1 とユーザー選択2 のカスタムチェック
- ユーザー選択1 とユーザー選択2のユーザーコードを配列で取得して、積集合から重複チェック
- ユーザー選択1 とユーザー選択2 のエラーメッセージ
- ユーザー選択1 とユーザー選択2のユーザー名を配列で取得して、積集合から重複名を表示
- 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 との重複チェック
- 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")
)
),", ")