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

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

2011年2月8日火曜日

文書リンクの削除

今日(2011/02/08)は、夜に雪が降るらしいです。前日は暖かかっただけに、体調を崩しやすくなります。気をつけましょうね。


ということで、今日もボタンをクリックして、体調管理を万全にしましょう!
にほんブログ村 IT技術ブログへ


今回は、NotesRichtextDocLinkクラスの新機能についてです。
RemoveLinkageメソッドですね。
このメソッドですが、デザイナヘルプを読むと、
「8.5の新機能」の文書では、「8.5で追加された新規メソッドです。」と書いてあるのですが、
実際のメソッドの説明文書を読むと、「8.0.2で追加されました。」と書いてあります。
さすがです!
もう、マニュアルについては突っ込みません!!
みなさん、自分で検証しましょう!!


とまぁ、どのバージョンから使えるのかはさておき(8.5では間違いなく動きます)、サンプルを見てみましょう。
ビュー上で動かすようにしてあります。
選択した文書の「Body」フィールドに文書リンクがあれば、問答無用で削除してしまうというものです。
文書リンクが見つからない場合は、その旨のダイアログメッセージを表示しています。

ポイントは、24行目です。ここで、リッチテキスト内に文書リンクがあるかどうかの検索を行っています。
というのも、RemoveLinkageメソッドは引数を持たず、戻り値もないので、文書リンクを見つけられるかどうかにかかっているためです。

サンプルをそのまま実行すると、文書リンクを削除して、文書を上書き保存してしまうので、くれぐれも注意してください。

Sub Initialize
    Dim session As New NotesSession
    Dim db      As     NotesDatabase
    Dim docs    As     NotesDocumentCollection
    Dim doc     As     NotesDocument
    Dim ritem   As     NotesRichTextItem
    Dim rnavi   As     NotesRichTextNavigator
    Dim rlink   As     NotesRichTextDocLink
    
    ' カレントDBの取得
    Set db = session.CurrentDatabase
    
    ' 選択文書の取得
    Set docs = db.UnprocessedDocuments
    Set doc  = docs.GetFirstDocument
    
    ' 選択文書内のBodyリッチテキストの取得
    Set ritem = doc.GetFirstItem( "Body" )
    
    ' リッチテキストの内部を操作するためのナビゲータを取得
    Set rnavi = ritem.CreateNavigator
    
    ' リッチテキスト中の「文書リンクオブジェクト」を検索する
    If rnavi.FindFirstElement(RTELEM_TYPE_DOCLINK ) Then
        ' 文書リンクオブジェクトを取得
        Set rlink = rnavi.GetElement
        
        ' 文書リンクオブジェクトを削除
        Call rlink.RemoveLinkage
        
        ' 文書を上書き保存
        Call doc.Save( True,True, True )
    Else
        ' 文書リンクオブジェクトがなかった場合のエラーメッセージ
        MsgBox "文書中に文書リンクが見つかりませんでした。",_
        MB_OK + MB_ICONINFORMATION, "文書リンクの削除"
    End If
End Sub



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

0 件のコメント: