ホーム > Lotus Notesのチュートリアルロータスノーツデザイナー >を使用しLotusScriptプログラム変更データベースのアイコン

データベースのアイコンを変更するLotusScriptプログラムを使用して、

あなたは、Notes 5または6のワークスペースから離れてもらっていないその一人ですか? もしそうなら、あなたは、おそらくデータベースのそれぞれに小さなアイコンを愛して来た。 このヒントは、プログラム毎晩エージェントを作成することにより、LotusScriptを使用してアイコンを変更する方法を示していますので、毎日ユーザーが参照するための新しいアイコンが表示されます。 アイコンは、データベースを開くたびに変更されますので、あなたもそれを設定することができます。 これは愚かだと思う? 私はこれを実装すると、ユーザーがデータベースに行きたくなった経験からあなたを伝えることができます。 彼らは、データベース内の情報を読んでしまうし、 "日のアイコン"とは何です見てみたい、と。

あなたは、データベースのアイコンを変更するために知っておく必要があるでしょうが3つあります。 最初に、あなたはそれを任意のNotes文書と同じように操作することができるようにアイコンが実際にNotes文書(ちょうどすべての設計要素のような)であることを知っておく必要があります。 第二に、実際の画像はIconBitmapと呼ばれる特別なフィールドに格納されます。 第三に、あなたはそれを取得し、それを操作できるようにアイコンの位置を(データベースで)知っている必要があります。 その場所は、データベースからデータベースごとに異なります。 プログラムでNotesのAPIを使用して場所を見つけるために注記4および5の方法があります。 Notes 6の新しいNotesNoteCollectionクラスを使用して、新しい方法を導入しました。 アイコンの位置は、一度データベースが作成されているが、固定されているのでそれは、実際にこの練習のために過剰です。 だから、一度だけそれを見て、値を設定する必要があります。 このスクリプトは汎用的で移植性を高めるために必要であれば、動的にアイコン文書へのハンドルを得るに見ることができます。 しかし、ここでは一度だけそれをルックアップし、その時点でそれを残しておきます。

ノートでは、アイコンのドキュメントの場所をルックアップするために5リソース\他のデザイナークライアントでに行く、またはNotes 6でその他\データベース·リソースにアクセスしてください。 アイコンを強調表示します(あなたがそれを編集するつもりだったようにそれをダブルクリックしないでください)​​と設計のプロパティ]に移動します。 とドキュメントのID( "NT"で始まる値)をメモしておきます。 これは16進値であり、これはデータベース内のアイコンのドキュメントの場所です。 それはあなたが文書として設計要素へのハンドルを取得する必要がありますものだ。

サブの初期化
新しいNotesSessionのように薄暗いセッション
NotesDatabaseクラスます。Dim DB as
NotesDocumentのように薄暗いiconDoc
NotesDocumentのように薄暗いnewDoc
NotesItemクラスとして薄暗いアイテム

DB = session.CurrentDatabaseを設定します。
iconDoc = db.GetDocumentByIdを設定します( "13E")
= db.createdocument newDocを設定します。
newDoc.ReplaceItemValue(以下、 "フォーム"、 "frmIcon")を呼び出す
コー​​ルnewDoc.replaceItemValue( "DESCR"、 "(未記載)")
項目を設定= iconDoc.GetFirstItem( "IconBitmap")
(newDoc、 "IconBitmap")item.CopyItemToDocument呼ぶ
newDoc.Saveを(真、真、true)を呼び出す
End Subの

値は、 "13E"サンプル·データベース内のアイコンのデザイン要素の六角場所です。 それはほとんどの場合、各データベースごとに異なります。 このエージェントは、新しいドキュメント(通常の文書ではなく、設計要素)にIconBitmapフィールドをコピーし、その設計要素を見つけます。 新しいドキュメントは、フォームフィールドと説明フィールドを取得します。 それは、サンプル·データベースの場合と同様に文書がビューに表示できるように、これらは単に行われています。 あなたはそれがしたくない場合は、文書がビューに表示されている必要はありません。

一度構築された書類を持って、それはこれらの事前人口文書のいずれかの同じフィールドに実際のアイコンのデザインドキュメントにIconBitmapフィールドをスワップアウトの問題になります。 サンプル·データベースが選択された文書に格納されているアイコンは、現在のデータベース上のスワップのアイコンをそのエージェントを持っています。

スケジュールされたエージェント "今日のアイコン"を作成するには、スケジュールされたエージェントがアクセスできるどこかに第一のアイコンのデータベースを持っていたいと思うでしょう。 注記5には、スケジュールされたエージェントと同じサーバー上になければなりません。 Notes 6ではでは、彼らが信頼される予定のエージェントがいる限り、他のサーバーにアクセスできるため、データベースが別のサーバー上にある可能性があります。 スケジュールされたエージェントは、アイコンのデザインノートを見つけ、その後、ランダムに新しいアイコンを取得し、IconBitmapフィールドを置き換えます。 ここで作業を行うエージェントは次のとおりです。

サブの初期化
新しいNotesSessionのように薄暗いセッション
NotesDatabaseクラスとして薄暗いcurrDb
NotesDocumentのように薄暗いiconDoc
NotesDatabaseクラスとして薄暗いiconDb
NotesDocumentCollectionとして薄暗いiconColl
ロングとして暗いiconPos
NotesDocumentのように薄暗い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)
= iconColl.GetNthDocument(iconPos)newIconDocを設定します。
newIconDocがNothingである場合、サブ終了
ない場合newIconDoc.HasItem(以下 "IconBitmap")、サブ終了
iconDoc.RemoveItem(以下 "IconBitmap")を呼び出す
項目を設定= newIconDoc.GetFirstItem( "IconBitmap")
項目が何もない場合は、サブ終了
(iconDoc、 "IconBitmap")item.CopyItemToDocument呼ぶ
icondoc.Saveを(真、真、true)を呼び出す
End Subの

"11A"私は毎晩に基づいて変化しているデータベース内のアイコンの場所であり、 "icons.nsfは、"データベース(サンプルデータベース)私のソース "今日のアイコン"へのパスがあることに注意してください。 エージェントはランダムに使用可能なすべてのソースのアイコンをドキュメントからアイコンを取得し、ソース文書から同一の特別なフィールドで、現在のデータベースのアイコン設計要素の特殊なフィールドを置き換えます。

夜間にデータベースのアイコンを変更し、お楽しみください!

2373視聴者が7267回アクセス

  1. コメントはまだありません。
  1. トラックバックはまだありません。