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

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

2008年12月25日木曜日

文書内のアイテムを全部取得する

昨日はクリスマスイヴということで、投稿を休んでしまいましたね。え?関係ないだろって?
あはは。その通りですね。単純に忙しかっただけです。

さて、今回はちょっと応用です。
文書の中に格納されているアイテムの値を全部見たいと言うことがありますよね?筆者はたまにあります。
文書のプロパティ画面をせこせこと見ていけば良いのですが、アイテム数が多いと、一苦労です。
そのようなときに、今回のサンプルを使いましょう。

ビューで選択した文書(複数選択した場合は最初の文書)のアイテム名とその内容をプロンプト表示するものです。
サンプルと言うことで簡易的なものにしてありますが、今までのサンプルと組み合わせてもらえば、
ファイルに書き出したり、複数の文書に対応したりすることも可能でしょう。

アイテムが複数値の場合でも、すべてを表示するように対応してあります。
リッチテキストの場合は、テキストだけが抽出されます。

Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim docs As NotesDocumentCollection
    Dim doc As NotesDocument
    Dim sbj As String 'アイテム名称
    Dim itemVal As String 'アイテム値
    Dim i As Integer 'カウンタ
    
    i = 0
    Set db = session.CurrentDatabase
    Set docs = db.UnprocessedDocuments
    Set doc = docs.GetFirstDocument
    
    '文書のアイテム一覧を取得する
    Forall x In doc.Items
        i = i + 1
        itemVal = ""
        Forall y In doc.GetItemValue( x.Name )
            If itemVal = "" Then
                itemVal = y
            Else
                itemVal = itemVal & ":" & y
            End If
        End Forall
        sbj = sbj & Cstr( i ) & "." & x.Name & " : " & Chr$(9) & itemVal & Chr$(10)
    End Forall
    
    Msgbox sbj, 0, "文書のアイテム一覧"
End Sub



Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: