DJXの部署をコードを利用して並び順も同じ動的グループを作るノーツ式(@Forを用いてレベル6まで対応)

Written by OnTime on . Posted in 5.グループ(Groups), 日本語拡張機能(DJX)対応

OnTimeの動的グループ作成は作成結果をノーツのビューと同じように文字列でカテゴリ化してくれます。
今回は[DJXの部署を@For関数を使用して表示する設定]の応用です。
下図のように部署情報をDJXで指定した内部コードを表示させる事で部署の並び順をDJXの宛先指定と同じに設定します。。

DepSort

設定文書を作成する際に他と同じく以下のように指定してください。
Filepath -> names.nsf
View -> ($Users)
Key -> Canonical Name
Data/Type -> Formula
Data/Category -> “部署”
Data/Fomura は以下に基づいて、自社の兼務組織の利用にあわせてそれぞれ設定文書を作成して下さい。

最初の組織情報のformula

Tmp := "" ; 
@For( n := 0; n <= 6; n := n+1; Tmp := Tmp + @If(@Getfield("Level"+ @Text(n)) = "" ; "" ; "["+@Middle(LevelOrder; n * 3; 3 )+"]" +  @Getfield("Level"+ @Text(n)) + "\\"));
 Tmp + "*メンバー"

同じように別のグループ設定文書でそれぞれ兼務用の設定文書を作ります。

一つ目の兼務情報のformula

Tmp := "" ; 
@For( n := 0; n <= 6; n := n+1; Tmp := Tmp + @If(@Getfield("Level"+ @Text(n) +"_1") = "" ; "" ; "["+@Middle(LevelOrder_1; n * 3; 3 )+"]" +  @Getfield("Level"+ @Text(n) +"_1") + "\\"));
 Tmp + "*メンバー"

二つ目の兼務情報のformula

Tmp := "" ; 
@For( n := 0; n <= 6; n := n+1; Tmp := Tmp + @If(@Getfield("Level"+ @Text(n) +"_2") = "" ; "" ; "["+@Middle(LevelOrder_2; n * 3; 3 )+"]" +  @Getfield("Level"+ @Text(n) +"_2") + "\\"));
 Tmp + "*メンバー"

三つ目の兼務情報のformula

Tmp := "" ; 
@For( n := 0; n <= 6; n := n+1; Tmp := Tmp + @If(@Getfield("Level"+ @Text(n) +"_3") = "" ; "" ; "["+@Middle(LevelOrder_3; n * 3; 3 )+"]" +  @Getfield("Level"+ @Text(n) +"_3") + "\\"));
 Tmp + "*メンバー"

という感じです。