2016-04-11 5 views
1

私はinotesをカスタマイズしました。「mailread」にボタンを追加したいので、ユーザーがimage.asを開いたときにツールバーの中にあることを意味します。プロファイル文書のフィールドを取得するためのXpageのカスタムinotes設定

custom-button

このボタンの後ろのfuctionalityは、私はオットウィンドウで開くように指定するか、またはハードコードされたデータベース名と他のウィンドウに行きたかったです。 Custom_js_Liteコードでコード:上記のコードwindow.openで

function Custom_Scene_Actions_Lite(s_MenuID) 
{ 
if (-1 == s_MenuID.indexOf("mailread")) 
     return false; 

    // Add the button 
    var add1 = [{title:"custom-button", find_id: "print",class:"test", id: "sync", before: false, 
     action:"openDatabase{}", help_text:"custom-button" }]; 
    addActionsLite(s_MenuID, true, add1); 
} 
    // Calling function onclick. 
function openDatabase(){ 
     var unids = API_GetSelectedDocs_Lite(); 
     var server = location.host; 
     var temp = location.pathname.substr(1, location.pathname.length); 
     var pos = temp.toLowerCase().indexOf(".nsf"); 
     var database = temp.substr(0, pos + 4); 
    window.open("http://localhost/example.nsf/home.xsp?server="+server+"&db="+database+"&mailDocId="+unids); 

、からなっている選択されたUNIDを有する所与のリンクオープン「API_GetSelectedDocs_Liteを();」データベース名は "example.nsf"というハードコーディングされています。

だから、データベース名をハードコードするのではなく、一度そのデータベースの名前を保存することをお勧めします。これにより、プロファイル文書からデータベース名を取得するのに役立ちます。

私は、サブフォーム、カスタムinotesでプロファイルドキュメントフィールドを取得できるかどうかわかりません。

私はcustom_js_liteを使ってメールデータベースのプロファイル文書を取り出す方法を知りたいです。

また、これを達成するための他の方法があるかどうかは本当に知りたいです。

答えて

0

私はこれを解決しました。 私はちょうどそれをプロフィール文書を更新するためのコードは私のXPageボタンから「DB_NAMEを」「iNotesProfile」という名前のプロフィール文書を取得し、その中に新しいフィールドを追加しています

var currdb:NotesDatabase = session.getDatabase(session.getServerName(),"mail/abc.nsf"); 
    var doc:NotesDocument = currdb.getProfileDocument("iNotesProfile", ""); 
    doc.replaceItemValue("db_name",database.getFileName()); 
    doc.save(); 

このスクリプトは、「iNotesProfile」プロフィールを編集現在のデータベースの名前を "db_name"フィールドに設定します。これで、メールデータベースから使用できるデータベースベースがドキュメントに設定されました。

今タスクがcustom-button.In Custom_js_Liteのクリックでデータベース名にコードを取得することですが、次のとおりです。

function Custom_Scene_Actions_Lite(s_MenuID) 
    { 
    if (-1 == s_MenuID.indexOf("mailread")) 
      return false; 

    // Add the button // 

     var add1 = [{title:"custom-button", find_id: "print",class:"test", id: "sync", before: false, 
      action:"openDatabase{}", help_text:"custom-button" }]; 
     addActionsLite(s_MenuID, true, add1); 
    } 

function openDatabase(){ 
    var unids = API_GetSelectedDocs_Lite(); 
    var server = location.host; 
    var temp = location.pathname.substr(1, location.pathname.length); 
    var pos = temp.toLowerCase().indexOf(".nsf"); 
    var database = temp.substr(0, pos + 4); 
    var mailFilePath = API_GetMailfilePath_Lite(); 
    var db_name = '@{{@GetProfileField("iNotesProfile";"db_name")};jsData}'; 
     if(db_name == ""){ 
      alert("Database is not configured! Contact Administrator."); 
     }else{ 
      window.open("http://localhost/"+db_name+"/home.xsp?server="+server+"&db="+database+"&mailDocId="+unids); 
     } 

だから我々は今ではiNotesProfile文書に格納されているデータベースの名前を見つけることができます@{{@GetProfileField("iNotesProfile";"db_name")};jsData}を使用して、そのデータベースにアクセスすることができます。

関連する問題