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

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

2010年8月26日木曜日

ビューで選択した文書の内容を本文に貼り付ける

なんと前回の投稿から1ヶ月以上経過していた・・・
吃驚仰天。

書かなかった理由は色々ありますが、あえて触れません。

とにかく、本文を読む前にこちらのボタンをクリックしましょう。
にほんブログ村 IT技術ブログへ


さてさて・・・
ドミノ懇談室にビューから選択(複数可)した文書リンクを、新規メール本文に貼付けたいという投稿があったので、ちょっと検証してみた。

複数の文書ということなので、@コマンドではおそらくできないであろう。
ということでLotus Scriptで書くことにしてみた。

1.複数文書を取得して、
2.新規文書の本文に
3.取得した文書のリンクとフィールド内容を添付する
ということが要件なので、
↓こんなサンプルかな?
Sub Click(Source As Button)
 On Error Goto ErrProc
 
 Dim session As New NotesSession
 Dim db As NotesDatabase
 Dim docs As NotesDocumentCollection
 Dim doc As NotesDocument
 
 Dim mdoc As NotesDocument
 Dim mbody As NotesRichTextItem
 
 'DBと文書の取得
 Set db = session.CurrentDatabase
 Set docs = db.UnprocessedDocuments
 
 '新規文書の作成
 Set mdoc = db.CreateDocument
 mdoc.Form = "MainTopic"
 mdoc.Subject = "選択した文書のリンクとフィールド内容を貼り付ける"
 Set mbody = New NotesRichTextItem( mdoc, "Body" )
 
 '取得した文書のデータを貼り付ける
 Set doc = docs.GetFirstDocument
 Do While Not ( doc Is Nothing )
  Call mbody.AppendDocLink( doc, "" )
  Call mbody.AddTab( 1 )
  Call mbody.AppendText( doc.Subject(0) & "," )
  Call mbody.AppendText( doc.Categories(0) )
  Call mbody.AddNewline( 1 )
  
  Set doc = docs.GetNextDocument( doc )
 Loop
 
 Call mdoc.Save( True, True, True )
 Exit Sub
ErrProc:
 Msgbox Cstr(Err) & Chr$(10) & Error & Chr$(10) & Cstr(Erl)
 Exit Sub
End Sub

ちなみにサンプルなので、見てくれ等は何も考慮していない。
また、文書リンクを貼り付けると言うことはリッチテキストを扱うことになるので
必然的にバックグラウンドでの処理となる。



ちなみにLotus Notes/Domino 8.0以降であれば、「CopySelectedAsTableコマンド」が利用できるので、もっと簡単にできる。
↓こんな感じ。
----------------------------------------------
@Command([CopySelectedAsTable]);
@Command([Compose];"MainTopic");
@Command([EditGotoField];"Body");
@Command([EditPaste])
----------------------------------------------
こちらであれば、選択したデータが表形式でコピーされるので見た目もそれなりに綺麗になる。
ただし、ビューに必要な情報が表示されていることが前提である。


記事の投稿者はノーツのバージョンが6.5.xということでこの方法は採用できないのが残念だ。
こういうちょっとしたことも便利になっていることがあるので、バージョンアップというのは常に検討して欲しい。


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

1 件のコメント:

匿名 さんのコメント...

やはり、バージョンアップは必要か!