計算式プラグインで、ユーザー名からユーザー選択項目をセットします。
概要
文字列項目に指定されたユーザー名からログイン名を求め、ユーザー選択項目をセットします。
- 1ユーザー名
- 複数ユーザー名をカンマ区切りで指定
計算式プラグイン設定
循環参照を許可、ユーザー情報をチェックします。
全ユーザー名を取得し、指定されたユーザー名の位置で、全ログイン名から対象のログイン名を取得します。
.js
OPTION: 循環参照を許可, ユーザー情報
// ユーザー選択1 USER_SELECT
LET(name, ユーザー名,
pos,INDEXOF(UINFO(,"name"),name),
SET_CODE(NVL(ARRAY_GET(UINFO(,"code"),pos), ARRAY()))
)
// ユーザー選択2 USER_SELECT
LET(
tnames, SPLIT(複数ユーザー名, ","), // 名前分割
unames, UINFO(, "name"), // 全ユーザー名
ucodes, UINFO(, "code"), // 全ユーザーコード
tcodes, ARRAY_MAP(tnames, x,
LET(
pos, INDEXOF(unames, TRIM(x)), // 位置検索
ARRAY_GET(ucodes, pos) // コード取得
)
),
codes, ARRAY_FIL(tcodes, x, x), // 空フィルタ
SET_CODE(codes) // コードセット
)
ユーザー名からログイン名の求め方
全ユーザー名を取得し、指定されたユーザー名の位置で、全ログイン名から対象のログイン名を取得します。
全ユーザー名を取得
UINFO(,"name") で、全ユーザー名をユーザーID 順に配列で取得します。
計算式ツールで、関数の実行結果を確認することができます。
全ログイン名を取得
UINFO(,"code") で、全ログイン名をユーザーID 順に配列で取得します。
計算式
INDEX 関数で、全ユーザー名での配列位置を求めることができます。
ARRAY_GET 関数で、全ログイン名の配列位置の値を取得すると、対象のログイン名です。
SET_CODE 関数で、ユーザー選択項目にセットする形式へ変換されます。
.js
// ユーザー選択1 USER_SELECT
LET(name, ユーザー名,
pos,INDEXOF(UINFO(,"name"),name),
SET_CODE(NVL(ARRAY_GET(UINFO(,"code"),pos), ARRAY()))
)