iNotes宛先選択の表示順選択肢のCustomize (続々)
「iNotes宛先選択の表示順選択肢のCustomize (続)」の記事で、Address Pickerの表示順のView選択のCustomizeを行いましたが、DJX Userは問題が無いのですが、DJXを使っていないUserで表示上の問題が発生することが分かりました。
NamePick.Br = <dwa:string id="D_NAMEPICK_WINDOW_HEIGHT" quotes="none"/>;
NamePick.nViewListWidth = 300;
NamePick.BTM = [(中略)];
Forms9.nsf内の標準のView Pick Listを定義している部分を探してみると、s_NamePickerViewListがあり、これが制御しているようです。
<NotesDictionary><NotesVar name="s_LotusLiveSaaSArg" initialvalue={@If(@DbCommand("Haiku";"s_GetEnvironmentVar";"SAAS_VirtualizedDirectory")="1";"&lln";"")}><NotesVar name="s_PortfolioThemeArg" initialvalue={@If(s_LotusLiveSaaSArg="&lln" | "0"!=@DbCommand("Haiku";"s_GetEnvironmentVar";"PortfolioTheme");"&pt";"")}></NotesDictionary> function NamePick(){} <InsertNotesSubForm optional="yes" name=x_NamePickerViewList> function NamePickExt(){} <InsertNotesSubForm optional="yes" name=x_NamePickerViewListExt> function GuO(){return haiku.bShowExtraInfoOnNamePicker ? NamePickExt : NamePick;} if (!NamePick.Rs){<InsertNotesSubForm name=@{@If("&lln"=s_LotusLiveSaaSArg;"LL_NamePickerViewList";"s_CoreNamePickerViewList")}>} if (!NamePickExt.Rs){<InsertNotesSubForm name=@{@If("&lln"=s_LotusLiveSaaSArg;"LL_NamePickerViewListExt";"s_CoreNamePickerViewListExt")}>}
上記のCodeからすると、Forms9_x.nsfが定義されている場合はx_NamePickerViewListを読み込み、そうでない場合は、s_CoreNamePickerViewListを読み込むようです。
再度、DJXのCodeを見てみると、単にView定義だけでなく、Functionも含めてNamePick.BTM配列にPushしていますので、この部分も含めてx_NamePickerViewListに記載することで動作してくれるのではないかと思われるのです。
NamePick.BTM.push({sViewTitle : <dwa:string id="L_DJX_DIRECTORY_TITLE"/>, DcS : '($DJXPeopleiNotesHier)', sViewInfo : '$60;MAMailAddress;NPName;Type;AltFullName;$64;JobTitle', nViewType : 1, aDefaultColumnWidths : [10], aDBPaths : ['*'], fnDisplayName : function (sTmp, Yc, CXb, Cwx){if(!Cwx.sViewInfo) return sTmp;var GoU=Cwx.sViewInfo.split(';')[5];if(Yc && Yc.getAttribute('name') == GoU && !CXb.jN()){var nPos=sTmp.indexOf('|');if(nPos != -1) sTmp=sTmp.substring(sTmp.indexOf('|')+1);} return sTmp;}} )
x_NamePickerViewListの記載形式にすると、以下のようになります。
sViewTitle : <dwa:string id="L_DJX_DIRECTORY_TITLE"/>,
DcS : '($DJXPeopleiNotesHier)',
sViewInfo : '$60;MAMailAddress;NPName;Type;AltFullName;$64;JobTitle',
nViewType : 1,
aDefaultColumnWidths : [10],
aDBPaths : ['*'],
fnDisplayName : function (sTmp, Yc, CXb, Cwx){if(!Cwx.sViewInfo) return sTmp;var GoU=Cwx.sViewInfo.split(';')[5];if(Yc && Yc.getAttribute('name') == GoU && !CXb.jN()){var nPos=sTmp.indexOf('|');if(nPos != -1) sTmp=sTmp.substring(sTmp.indexOf('|')+1);} return sTmp;}
}