当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2011年2月4日金曜日

StampAllMultiメソッドについて

今日は8.5のアップデート試験を受験してきました。結果はなんとか合格でした。良かった良かった。

ところで、IBM技術者認定制度のページを見たら、7関連の試験はすべて配信を終了したようですね。1月にはまだ配信されていたはずなので、2月になって終了したと言うことでしょうか。
7.xは2011年の4月末でサポートも切れますし、もはや過去のものですね(でも、7.xユーザは多いですよね・・・)

ということで、今日も下のボタンをクリックして、筆者に貢献してください。
にほんブログ村 IT技術ブログへ
ありがとうございます!!


さてさて、今日は、Lotus Notes/Domino 8.5で追加されたメソッド「StampAllMulti」についてです。
NotesDocumentCollectionクラスとNotesViewEntryCollectionクラスにこのメソッドがありますが、処理対象の文書が違うだけで、動作そのものは同じです。

選択した文書(コレクション)を、指定した文書の内容で置き換えるというものです。
この時、指定した文書にしかないアイテムは追加されます。また、指定した文書にないアイテムはそのまま残ります。
表にまとめると以下のようになります。


では、いつものようにサンプルを提示します。
このサンプルは、自DBのビューで選択した文書(コレクション)を、別のDBにある文書の内容で、置換するというものです。
Sub Click(Source As Button)
    Dim session As New NotesSession
    Dim curdb As NotesDatabase
    Dim docs As NotesDocumentCollection
    Dim copyDB As NotesDatabase
    Dim copyDoc As NotesDocument
    Dim uiws As New NotesUIWorkspace
    
    ' 変更するドキュメントコレクションの取得
    Set curdb = session.CurrentDatabase
    Set docs = curdb.UnprocessedDocuments
    
    ' 変更元の文書を取得
    Set copyDB = session.GetDatabase( curdb.Server, "変更元の文書が格納されているDBファイル名" )
    Set copyDoc = copyDB.GetDocumentByID( "変更元文書のNoteID" )
    
    ' 変更を反映する
    Call docs.StampAllMulti( copyDoc )
    
    ' ビューのリフレッシュ
    Call uiws.ViewRefresh
End Sub



実は、このメソッド、Domino Designerヘルプにはサンプルがないんですね。
難しいメソッドではないので、サンプルがなくても何とか使えそうですが、やはりNotesのヘルプなのだからサンプルは掲載して欲しいところです。




【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: