iNotes 9をCustomizeしてみよう! -7- | Lotus Notes/Domino (R) をこよなく愛して。。。。

iNotes 9をCustomizeしてみよう! -7-

<話題の履歴>


iNotes 9をCustomizeしてみよう! -1-

iNotes 9をCustomizeしてみよう! -2-

iNotes 9をCustomizeしてみよう! -3-

iNotes 9をCustomizeしてみよう! -4-

iNotes 9をCustomizeしてみよう! -5-

iNotes 9をCustomizeしてみよう! -6-



前回は、Mail Ruleから「次の宛先にコピーを送信」Actionを利用不可にするCustomizeを行ってみました。

今回は、Address DialogのCustomizeを行ってみたいと思います。


iNotesで良く聞くのが、以下のAddress Dialogで表示される選択Viewを変えたいという要望です。



iNotes_Customize_26


「DJX...」という文字が入っていたり、殆ど利用しない「Notes名の階層」や「言語別」があったり、「組織の階層」と「DJX部署別階層」の両方が表示されていたりしますので、この表示をシンプルにしたいという要望は多いかも知れません。


今回は、このAddress DialogのViewの表示順やTitleを変更するCustomizeを行ってみます。


このAddress Picker DialogはDWA 7の頃は、"x_NamePickerViewList" Formや"x_NamePickerViewListExt" Formで設定されていた物ですが、iNotes 9では全く異なった構成となっています。


iNotes 9のForms9_x.nsfの"x_NamePickerViewList" Subformには以下の定義が行われていて、DJXの定義は存在しないのです。


NamePick.Rs = <dwa:string id="D_NAMEPICK_WINDOW_WIDTH" quotes="none"/>;
NamePick.Br = <dwa:string id="D_NAMEPICK_WINDOW_HEIGHT" quotes="none"/>;
NamePick.nViewListWidth = 300;
NamePick.BTM = [
// for Contacts
{
sViewTitle : <dwa:string id="L_NPW_TITLE_FLATVIEW"/>,
DcS : '($PeopleGroupsFlat)',
// SPR# YJSI8FJ9DR: due to a change in the $PeopleGroupsFlat view in mail85.ntf, "Form" column is now "Type" column to stay in-sync with pubnames.ntf
// keep "Form", just in case "Type" fails
sViewInfo : '$39;MAMailAddress;NPName;Type|Form;AltFullName',
nViewType : 2,
aDBPaths : []
},
// for Catalog
{
sViewTitle : <dwa:string id="L_NPW_TITLE_FLATVIEW"/>,
DcS : '($PeopleGroupsFlat)',
sViewInfo : '$39;MAMailAddress;NPName;$40;AltFullName',
nViewType : 3,
aDBPaths : ['*']
},
// for LDAP
{
sViewTitle : <dwa:string id="L_NPW_TITLE_FLATVIEW"/>,
DcS : '',
sViewInfo : 'SummaryName;MailAddress;FullName;Type;AltFullName;AltFullNameLanguage;PreferredMailFormat',
nViewType : 4
},
// for normal directory
{
sViewTitle : <dwa:string id="L_NPW_TITLE_FLATVIEW"/>,
DcS : '($PeopleGroupsFlat)',
sViewInfo : '$39;MAMailAddress;NPName;Type;AltFullName',
nViewType : 1,
aDBPaths : ['*']
},
{
sViewTitle : <dwa:string id="L_NPW_TITLE_HIERVIEW"/>,
DcS : '($PeopleGroupsHier)',
sViewInfo : '$11;MAMailAddress;$24;Type;AltFullName;$8',
nViewType : 1,
aDBPaths : ['*']
},
{
sViewTitle : <dwa:string id="L_NPW_TITLE_CORPHIERVIEW"/>,
DcS : '($PeopleGroupsCorpHier)',
sViewInfo : '$60;MAMailAddress;NPName;Type;AltFullName;$55',
nViewType : 1,
aDefaultColumnWidths : [10],
aDBPaths : ['*']
},
{
sViewTitle : <dwa:string id="L_NPW_TITLE_LANGVIEW"/>,
DcS : '($PeopleGroupsByLang)',
sViewInfo : '$11;MAMailAddress;NPName;Type;AltFullName;$8',
nViewType : 1,
aDefaultColumnWidths : [10],
aDBPaths : ['*']
}
];


まず、この表記ですが、以下の意味になります。


sViewTitle: 表示するViewのタイトル

DcS: DirectoryのView名

sViewInfo: ViewのColumn名

nViewType: Viewのタイプ(不明ですが、1が標準のNAB、2がPAB、3がCatalog、4がLDAP)

aDBPaths: 適用するAddressbook名


aDefaultColumnWidthはDWA 7の頃にあったかどうか記憶にありませんので分かりません。


ここで重要なのはsViewInfoですが、


DcS : '($PeopleGroupsFlat)',
sViewInfo : '$39;MAMailAddress;NPName;Type;AltFullName',


のようになっていますので、Domino Directoryの"($PeopleGroupsFlat)" Viewを参照してみると分かります。

指定されているViewは以下のViewです。



iNotes_Customize_27


最初に貼り付けた画面を見て頂ければ分かりますが、Address Picker DialogはこのViewを表示しています。


実は、sViewInfoの値ですが、このViewを利用して表示するプログラムの列名を参照しているのです。

上記の例だと、'$39;MAMailAddress;NPName;Type;AltFullName'が指定されていますが、これらは全て2番目以降の列のプログラム名となっています。

例えば、$39は2番目の列で、Designerで見ると以下の設定になっていることが分かります。



iNotes_Customize_28


ここまで解説すると、賢明な皆さんは自由にCustomize可能なのではないでしょうか?


話しが少し逸れてしまいましたが、今回は参照Viewの内容自体をCustomizeすることではなく、不要なViewを削除したり、名前を変えて見易くすることですので、話を戻します。


この"x_NamePickerViewList" SubformにはDJXの定義が無いことが分かりましたので、Forms9_x.nsfのCustomizeではAddress Picker DialogのViewのCustomizeは出来ないということです。


DJXのAddress PickerのViewの設定は、Forms9.nsfに定義されています。

これも前回紹介した設計要素を検索する手法で探して頂ければ分かりますが、以下がDJX関係のAddress PickerのSubformとなっています。


s_NamePickerDJXViewList

s_NamePickerDJXViewListExt


なぜ、このような変更を行ったのかは私には理解が出来ませんが、Subformとして本体のForms9.nsfに定義され、実行時には、Forms9_x.nsfに定義された"x_NamePickerViewList" Subformが読まれた後にこのSubformが呼ばれるようになっていることから、標準のView Listが表示された後に、DJXのView Listが表示されるという状態になっているのです。


これでは、View Listの順序を自由に変更することは出来ません。


このDJXのCodeはForms9.nsfにあるため面倒なので、一旦殺してしまうことにします。

これらのFormの先頭に/*、最後に*/を書いて完全にComment Outします。


結果、Address Picker DialogのViewの表示は以下になります。



iNotes_Customize_29


これで完全にDJXのView参照が出来なくなりました。


ここからは、Forms9_x.nsfの"x_NamePickerViewList" SubformでDJX用のView参照を可能にして行くのですが、記事が長くなりますので、次回に持ち越したいと思います。


今回は、Address Picker Dialogで参照するViewのCustomizeを行うための解説とDJX Viewの削除を行いました。

次回は、DJX Viewと標準Viewを統合した形で表示できるようにCustomizeしてみます。


<続く>