March 02, 2006

Domino Web AccessをCustomizeしてみよう ! -3-

テーマ:iNotes (DWA)

<話題の履歴>


Domino Web AccessをCustomizeしてみよう ! -2-

Domino Web AccessをCustomizeしてみよう ! -1-



前回は、Welcome Pageに表示されるInboxの表示内容を"Custom_JS" Formを変更することでCustomizeしてみました。


前回は、次回引き続き"Custom_JS" Formの内容を調べると予告していましたが、それは次回以降に譲ることとし、今回はAddress PickerのCustomizeを行ってみたいと思います。



皆さんご存知のように、DWAは標準版のDWAとDJX(日本語拡張機能)版のDWAがあります。


DJX版にすると、何が変わるかというと、大きな変更点としては、Address Pickerの選択肢として「DJX部署別宛先」という表示形式が選べるようになることです。


では、その機能はいったいどのようにして追加されているのでしょうか?


DJX(日本語拡張機能)は、R5の頃から提供された機能ですが、元々はNotes Clientで使う場合に部署別宛先のボタンを提供し、この部署別宛先の機能がDWAで使えるようになったのはDWA 6.xからとなっています。


今回は、この機能がどのように作成されているのかを、DWA 7のDJXで見ていくことにしましょう。


DWAはご存知のように、ユーザーインターフェース(UI)はFormsX.nsf(XはVersionによって異なる数字)が司っていることは別の機会にも紹介したと思います。


つまり、こういったAddress PickerなどのDialogもこのFormsX.nsfが司っています。


しかし、DWAのFormsX.nsfというのは、ほとんどの設計要素がEncodeされていて、皆さんがDesignerで開いても意味が不明な設計要素がほとんどです。


一部の設計要素(例えば前回紹介した"Custom_JS" Formなど)だけが皆さんからみて意味が分かるようになっているのです。


今回紹介するAddress PickerのListの種類を制御している部分も、実はEncodeされていない状態になっているため、中身を見ると意味が分かります。


どうのようにしてこの設計要素を見つければ良いか?と思われるかも知れませんが、IBMから正式なガイドが行われていない限り、Teamstudio Deltaなどで標準版とDJX版のFormsX.nsfの違いを分析する必要があるでしょう。


そういう分析を行い、DJX版で修正されている設計要素を参照していくと、DJXで特別に修正されている部分が明確になってきます。


ここでは、その設計要素を探す方法を紹介しても仕方がありませんので、設計要素を示しますが、この設計要素を皆さんが触ってCustomizeしてもIBMがサポートしてくれるかどうかはIBMに確認する必要があることはご理解ください。


ここでは、純粋に技術的に私の知識から紹介しますが、Customizeをするかどうかは皆さんのリスクになることもありますので、ご注意願います。


Address Pickerの種類のListを制御しているのは、実は、Subformの一つである、"x_NamePickerViewList"となっています。


以下にDJX版のForms7.nsfのこのSubformのCodeを示します。


注)部分的にCopyしたため、以下のCodeにCopy Right表示はありませんが、IBMのCodeのCopyですので、IBMに知的所有権が存在しますので、ご注意ください。


// for normal directory
{
sViewTitle : "名前順",
DcS : '($PeopleGroupsFlat)',
sViewInfo : '$39;MAMailAddress;NPName;Type;AltFullName',
nViewType : 1,
aDBPaths : ['*']
},
{
sViewTitle : "ノーツ名の階層",
DcS : '($PeopleGroupsHier)',
sViewInfo : '$11;MAMailAddress;$24;Type;AltFullName;$8',
nViewType : 1,
aDBPaths : ['*']
},
{
sViewTitle : "組織の階層",
DcS : '($PeopleGroupsCorpHier)',
sViewInfo : '$60;MAMailAddress;NPName;Type;AltFullName;$55',
nViewType : 1,
aDefaultColumnWidths : [10],
aDBPaths : ['*']
},
{
sViewTitle : "言語別",
DcS : '($PeopleGroupsByLang)',
sViewInfo : '$11;MAMailAddress;NPName;Type;AltFullName;$8',
nViewType : 1,
aDefaultColumnWidths : [10],
aDBPaths : ['*']
},
// for DJX
{
sViewTitle : 'DJX部署別階層',
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 sHierColumnName = Cwx.sViewInfo.split(';')[5]; //D_NP_COLUMN_HIER
if(Yc && Yc.getAttribute('name') == sHierColumnName && !CXb.jN())
{
var nPos = sTmp.indexOf('|');
if(nPos != -1)
sTmp = sTmp.substring(sTmp.indexOf('|')+1);
}
return sTmp;
}
}


このCodeから、DJX用のAddress選択Viewを表示させるためのCodeが追加されていること(黄色部分)が分かります。


上記の水色部分は標準の場合と同じです。


実際にAddress Pickerを表示して見ると、表示するViewの選択Listが上のCodeの順に並んでいることが理解できるのではないでしょうか?


つまり、この"x_NamePickerViewList" SubformがAddress Pickerで表示するListを制御していることが分かるのです。


これを変更してやると、DJXと同様に別のViewをAddress Pickerで表示して選択することができるハズですし、既存のView Listも不要な物は削ってしまうことも可能なハズです。



では、次回は、DJXではなく、標準のFormsX.nsfを使って、実際にCustomizeが可能かどうかを試してみようと思います。



<続く>


いいね!した人  |  コメント(2)  |  リブログ(0)

いわまんさんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

最近の画像つき記事
 もっと見る >>

コメント

[コメントをする]

2 ■ながしま さん>コメントありがとうございます

「役に立った」というコメントありがたいです。

書いていて励みになります。

一方的に書いていて、記事への反応が無いのはさびしいですから。

Customizeの情報は最近LotusphereでのSessionをまとめたRedbookも出ていますので参考にされるといいかと思います。

わかってしまうと結構簡単にCustomizeが出来てしまいます。
 

1 ■参考になりました

 結構簡単に出来るのですね。。
s_NamePicker辺りから辿っていくと複雑な話に思えるのですがこの辺はそのまんまですね。。

コメント投稿

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。