iNotes宛先選択の表示順選択肢のCustomize (続々々) | Lotus Notes/Domino (R) をこよなく愛して。。。。

iNotes宛先選択の表示順選択肢のCustomize (続々々)

iNotes宛先選択の表示順選択肢のCustomize (続々)」の記事で、Address Pickerの表示順のView選択のCustomizeをForms9_x.nsfで行いましたが、DJX Userは問題が無いのですが、DJXを使っていないUserの場合に組織Codeや役職Codeの分離が行われない問題が発生することが分かりました。

 

これではForms9_x.nsfを使ってまでCustomizeする意味は無いというのは前回書いた通りです。

では、一旦、ひとつ前のForms9.nsfでCustomizeした「iNotes宛先選択の表示順選択肢のCustomize (続)」の状態まで戻します。

 

ここでの問題は、標準のMail Template用のAddress Pickerの表示順のView選択に使われるNamePick.BTM配列に要素が存在せずに表示がErrorするという内容でした。

逆に、標準Mail Templateで作成されたDBであっても、DJX用のViewが表示できれば問題は解決するハズです。

 

s_NamePickerDJXViewListがDJXのView Listの定義であることは「iNotes宛先選択の表示順選択肢のCustomize (続)」で紹介した通りですが、このListがどうやって読み込まれているのか?を調べれば出来るハズです。
 
では、このs_NamePickerDJXViewListがどの設計要素から参照されているかを確認するため、Designerの検索機能で探します。
以下のように3個の設計要素に含まれていることが分かりますが、SubformはView List自体なのでs_CommonNamePickerDJXCodeが使っていることが分かります。
 
 
s_CommonNamePickerDJXCodeの内容を見ると、以下が記載されていますが、このs_CommonNamePickerDJXCodeを読み込んでいる設計要素を再度検索します。
 
/* (c) Copyright HCL Technologies. 1985, 2019. All rights reserved. */
/* $HaikuForm - 1168.1 */
<NotesDictionary><NOTESVAR NAME={$ContentType} VALUE={"application/x-javascript"}></NotesDictionary> function GNI(sTmp, Yc, CXb){var Cwx=DMx();if(Cwx && Cwx.fnDisplayName) sTmp=Cwx.fnDisplayName(sTmp, Yc, CXb, Cwx);return sTmp;}
<InsertNotesSubForm name=s_NamePickerDJXViewList> <InsertNotesSubForm name=s_NamePickerDJXViewListExt>
 
s_CommonNamePickerDJXCodeLoaderで利用されていることが分かりますが、ここにもCodeのLoadを決める具体的なCodeがありませんので、再度検索します。
以下の2つのFormが利用していることが分かります。"l_"で始まるFormは現在のLite UI、"s_"で始まるFormは以前のClassic UIのCodeですので、Lite UI Codeのl_CommonNamePickerを見てみます。
 

 

検索結果から設計要素を開くことはできるのですが、改行制御が行われずに表示されてしまい、見にくい状態になりますので、通常通り開きます。

以下の部分で利用され、DJX Templateかどうかを判断し、DJXのSubformをLoadするかどうかが決定されています。

 

<InsertNotesSubForm name=l_CommonNamePickerStyles> <InsertNotesSubForm name=@{@If(IsDJXTemplate="1";"s_CommonNamePickerDJXCodeLoader";"")}>

 

これで、標準Templateの場合は、アドレス表示選択にDJXの選択リストが表示されなかったことが分かります。

 

完全に固定化してしまっても良いのですが、今回は動作を見るため、以下のように変更します。

これで、DJX Templateでない場合もDJX CodeがLoadされて動作するハズです。

 

@If(IsDJXTemplate="1";"s_CommonNamePickerDJXCodeLoader";"s_CommonNamePickerDJXCodeLoader")

 

これで以下のように、標準Template UserでもDJXの宛先選択が正常に表示され、部署階層/役職順も部署/役職Codeが外された状態で表示されるようになります。

 

 

 

勿論、DJX Template Userでも問題はありません。

 

少し強引なやり方ですが、これでMail DBの設計をDJX Mail Templateで設計置換する必要はなくなりますので、試してみたいという方はお試しください。

 

シリーズ化する積りは無かったのですが、長い記事になってしまいました。

 

尚、Forms9.nsfのCustomizeはメーカーがサポートするものではありませんので、ご自身のリスクでお願いします。