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

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

2016年9月19日月曜日

特定のアイテムだけコピーしてみよう

皆さんこんにちは。

三連休ですが、天気が悪いのであまり外出する気分になれません。
仕方がないので?ブログ記事を書くことにしました。

XPages関連に行きたいところですが、諸事情により、今日もLotusScriptのサンプルです。
今日はNotesDocumentクラスのCopyItemについてです。
なんかこんなメソッドのサンプルなんて書いているだろうと思っていたのですが、書いてませんでした(笑)

どうやら、私自身はあまり使ってこなかったようです。
ですが、書いてあった方が色々と役に立つこともあるでしょうから作成しておきましょう。


ちなみに、このサンプルは、自文書内の「Body」というリッチテキストフィールドの内容を新規文書にコピーするというものです。
リッチテキスト内の文字はもちろん、画像や添付ファイルまでコピーしてくれます。
決まったフォーマットのものを文書に格納しておいてそれを別の文書に格納するときなんかに使えるかな(どんなシチュエーションだ・・・)


Sub Click(Source As Button)
    On Error Goto ErrProc
    
    Dim uiws    As New NotesUIWorkspace
    Dim uidoc   As     NotesUIDocument
    Dim udoc    As     NotesDocument
    Dim ritem   As     NotesRichTextItem
    Dim session As New NotesSession
    Dim db      As     NotesDatabase
    Dim newdoc  As     NotesDocument
    
    Set uidoc  = uiws.CurrentDocument
    Set udoc   = uidoc.Document
    Set ritem  = udoc.GetFirstItem( "Body" )
    
    Set db     = session.CurrentDatabase
    Set newdoc = db.CreateDocument
    Call newdoc.ReplaceItemValue( "Form", "MainTopic" )
    Call newdoc.ReplaceItemValue( "Subject", "Bodyをコピーするために新規作成" )
    Call newdoc.ReplaceItemValue( "Categories", "テスト" )
    Call newdoc.ReplaceItemValue( "Sections", "小分類" )
    Call newdoc.CopyItem( ritem, "Body" )
    Call newdoc.Save( True, True, True )
    
    Exit Sub
    
ErrProc:
    Msgbox _
    "エラー行数:" & Cstr(Erl) & Chr$(10) & _
    "エラー番号:" & Cstr(Err) & Chr$(10) & _
    "エラー内容:" & Error, _
    0 + 16, "特定のアイテムだけコピーしてみる"
    
    Exit Sub
End Sub



サンプルはリッチテキストアイテムとしていますが、通常のアイテム(テキストフィールド、数値フィールド等)でも問題なくコピーすることができます。
色々試してみてください。




さて、サンプルを作ることの利点は、
・自分自身でコーディングすることで、どのように記述すればいいのかを覚えることができる。
・サンプルに書いたメソッド/プロパティがどのような動きをするのかが実際に分かる。
・後で備忘録のような形で利用できる。
といったところでしょうか。

このブログ記事は、私自身の備忘録として書き始めたものですが、皆さんにも同じような形で使っていただけたら幸いです。



では、今日はこの辺で・・・



Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ


0 件のコメント: