nsfl10n

Lotus Notes/Domino のブログ。nsf:Notes Storage Facility。l10n:Localization。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告|
  3. トラックバック(-)|
  4. コメント(-)

LotusScriptでリッチテキストをリッチテキストにバックエンドで挿入する(l10n)

eknori.de » INSERT RichText into RichText in Backend using Lotus Script
http://www.eknori.de/archives/285

 Webサーフィンをしても解決方法を見つけることができなかった問題のひとつに、ある文書のフィールドから別の文書のリッチテキストフィールドへリッチテキストを挿入するにはどうしたらいいかという問題がある。ロータススクリプトを使っても、APPEND(追加)することはできても、INSERT(挿入)することはできないのだ。

 だから、私は自分でコードを書かざるを得なかった。DXLImporter, DXLExporter そして NotesStreamを使って以下のようなコードを書き上げたのだ。これは、Notes 6 以上であれは動くはずだ。

 挿入するポイントを特定するために、特別な構文を用いている。他のリッチテキストフィールドに格納されているコンテンツがあるとして、そのコンテンツの挿入先であるリッチテキストフィールドにカーソルをセットしてから、RT:リッチテキストフィールド名とタイプしてください。

(イメージ省略)

 RT:RTONEというのは、InsertRichTextファンクションを呼び出すための物で、このファンクションはこのマーカーをMergeFileのRTONEフィールドのすべてのコンテンツと置き換える機能を提供する。

(イメージ省略)

 このコードが添付ファイルをコントロールするのだ。

Function InsertRichText ( SourceFile As String, MergeFile As String, FieldName As String) As Boolean
(コード省略)

 そしてファイルをDXLに出力するにはこのコードを使う。

Function ExportXML ( doc As NotesDocument ) As String
(コード省略)

 これは全部まとめてやる場合のひとつのサンプル。

Sub Click(Source As Button) Dim s As New NotesSession Dim db As NotesDatabase Dim dc As NotesDocumentCollection Dim doc As NotesDocument Dim ret As Boolean Set db = s.CurrentDatabase Set dc = db.UnprocessedDocuments Set doc = dc.GetFirstDocument Dim SourceFileName As String Dim MergeFileName As String SourceFileName = ExportXML ( doc ) Set doc = dc.GetNextDocument ( doc ) MergeFileName = ExportXML ( doc ) ret = InsertRichText ( SourceFileName , MergeFileName ,“RTONE”) End Sub
This LotusScript was converted to HTML using the ls2html routine,
provided by Julian Robichaux at nsftools.com.

 Rocky Oliverはこのパズルを解決する別の方法についてブログに書いていた。少量のデータを扱うのであれば、FindAndReplaceを使ってXMLを修正することが可能だ。

 だが、このメソッドは、例えばスクリーンショットとかとではうまく動かないことが判明した。FindAndReplaceは添付ファイルであってもうまく動かないのだ。試してはみたものの Lotus Notes はRSOD(訳注:たぶん赤紙=red screen of deathのこと)で終了した。

 なお、このコードは”as is”(現状のままで)提供される。データの消失と言った苦情は受け付けません。:-) またこのコードはスピードについて最適化されておらず、数百MBのデータを既存の膨大な文書に挿入するといった用途には向かないので注意してください。

 DOWNLOAD rtInsert.lss(リンク省略)


 引用、ここまで。

 searchDominoの2006年5月のDomino Tips大賞。今回の副賞はiPod nano。なにこのステキな副賞。

 今回は、直リンや画像引用をしなかったので、lssやコード、イメージ等はタイトルリンク先からドゾ。

(参考)How to insert RichText into RichText using LotusScript
http://searchdomino.techtarget.com/tip/0,289483,sid4_gci1189228,00.html

スポンサーサイト
  1. 2006/08/24(木) 23:38:54|
  2. Designer|
  3. トラックバック:0|
  4. コメント:0
<<Notes使うのやめよーぜ | ホーム | Notes定点観測(Aug, 06)>>

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://nsfl10n.blog9.fc2.com/tb.php/167-21e1e4e5
05 | 2017/06 | 07
Sun Mon Tue Wed Thu Fri Sat
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

Search

Featured Entries

Recent Entries

Recent Comments

Recent Trackbacks

Archives

Category

Links

Ads

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。