首頁 > Lotus Notes的教程使用LotusScript說明設計 >使用的LotusScript程序更改數據庫圖標

使用的LotusScript程序更改數據庫圖標

你還沒有得到從工作區,在Notes 5或6人之一嗎? 如果是這樣,你可能來愛每個數據庫上的小圖標。 此技巧展示了如何以編程方式更改使用LotusScript的圖標,創建一個夜間代理,所以每一天,您的用戶將看到一個新的圖標。 你甚至可以設定,讓圖標改變每次打開數據庫。 認為這是愚蠢的? 的經驗,我可以告訴你,實現這使得用戶要進入數據庫。 他們希望看到“一天的圖標”,然後,他們最終在數據庫中讀取信息。

有三件事情你需要知道,為了改變數據庫圖標。 首先,你需要知道的圖標實際上是一個 Notes文檔(就像每一個設計元素)​​,因此,它可以像任何Notes文檔操縱。 二,實際的圖片存儲在稱為 IconBitmap一個特殊的領域。 第三,你需要知道的圖標的位置(在數據庫中),這樣你就可以得到它,操縱它。 該位置的變化,從數據庫到數據庫。 有找到位置,使用的Notes API以編程方式在附註 4及5。 注6推出一種新的方式,使用新的NotesNoteCollection類。 但是,這實際上是矯枉過正這次演習,因為圖標的位置,一旦數據庫已經建立,是固定的。 所以你只需要一次看它並將其值設​​置。 如果你想使這個腳本的通用和便攜式,那麼你可以看看成動態獲取一個圖標文件的處理。 但在這裡我們就看看它一旦離開它。

要查找的圖標文件的位置,在Notes 5去參考資料 \其他設計器中的客戶端,或在Notes 6去其他\數據庫資源。 突出顯示的圖標(不上雙擊它就像你要編輯)和設計屬性。 並做好文檔 ID(與“新界”的價值開始)的注意。 這是一個十六進制值,這是在數據庫中的圖標文件的位置。 這就是你需要獲得一個句柄作為一個文檔的設計元素。

小組初始化
昏暗的會議上,作為新NotesSession
DIM DB作為 NotesDatabase
由於使用NotesDocument DIM iconDoc
由於使用NotesDocument DIM newDoc
昏暗的項目作為 NotesItem

設置 DB = session.CurrentDatabase
設置 iconDoc = db.GetDocumentById(“13E”)
設置 newDoc = db.createdocument
呼叫newDoc.ReplaceItemValue(“表”,“frmIcon”)
呼叫newDoc.replaceItemValue(“描述”,“(未描述)”)
設置項 = iconDoc.GetFirstItem(“IconBitmap”)
呼叫item.CopyItemToDocument(newDoc,“IconBitmap”)
致電 newDoc.Save(TRUE,TRUE,TRUE)
END SUB

“13E”的值是十六進制的位置在示例數據庫中的圖標的設計元素。 它極有可能會在不同的數據庫。 此代理發現的設計元素,然後複製到一個新的文檔(常規文檔,而不是一個設計元素)​​IconBitmap領域。 新的文檔獲取表單字段和描述字段。 這些都做到了這樣的文件可以出現在意見,因為它在示例數據庫。 該文件沒有出現在意見,如果你不希望它。

一旦你建的文件,就變成了實際的圖標設計文件交換與同一領域對這些預先填入的文件之一IconBitmap領域。 示例數據庫代理,掉期與當前存儲在選定的文件圖標數據庫中的圖標。

要創建“每日圖標”預定的代理,你需要先有某處預定的代理可以訪問數據庫的圖標。 在Notes 5,它已被預定的代理服務器。 在Notes 6,計劃代理可以訪問其他服務器,只要他們是值得信賴的,因此可以在另一台服務器上的數據庫。 預定的代理發現圖標的設計說明,然後隨機挑選了一個新的圖標和替換 IconBitmap領域。 這裡的代理工作:

小組初始化
昏暗的會議上,作為新NotesSession
DIM currDb作為 NotesDatabase
由於使用NotesDocument DIM iconDoc
DIM iconDb作為 NotesDatabase
DIM iconColl作為 NotesDocumentCollection
只要DIM iconPos
由於使用NotesDocument DIM newIconDoc
昏暗的項目作為 NotesItem

隨機
設置 currDb = session.CurrentDatabase
設置 iconDoc = currDb.GetDocumentById(“11A”)
如果iconDoc是Nothing然後退出子
iconDb = session.GetDatabase“(”“,”icons.nsf“)
如果iconDb是Nothing然後退出子
設置 iconColl = iconDb.AllDocuments
如果iconColl是Nothing然後退出子
iconPos = INT(RND()* iconColl.Count)
設置 newIconDoc = iconColl.GetNthDocument(iconPos)
如果newIconDoc是Nothing然後退出子
如果沒有 newIconDoc.HasItem(“IconBitmap”),然後退出小組
呼叫iconDoc.RemoveItem(“IconBitmap”)
設置項 = newIconDoc.GetFirstItem(“IconBitmap”)
如果項目是Nothing然後退出子
呼叫item.CopyItemToDocument(iconDoc,“IconBitmap”)
致電 icondoc.Save(TRUE,TRUE,TRUE)
END SUB

請注意,“11A”是我每晚的基礎上不斷變化的數據庫中的圖標的位置,和“icons.nsf”是我的源數據庫(示例數據庫)“每日圖標”的路徑。 代理隨機選取從所有可用的源圖標文件圖標,然後在當前數據庫中的圖標從源文件具有相同的特殊領域的設計元素替換的特殊領域。

享受每晚的基礎上改變你的數據庫圖標!

2353觀眾觀看了7206次

  1. 還沒有評論。
  1. 還沒有引用通告。