本文へジャンプ
Japan
[
変更
]
ホーム
ビジネス・ソリューション
ITサービス
製品
サポート & ダウンロード
My IBM
Lotus Developer Domain
製品別技術情報
Lotus Notes/Domino
Lotus Connections
Lotus Expeditor
Lotus Forms
Lotus Quickr
Lotus Enterprise Integrator
Lotus Sametime
Lotus関連製品(QP/Doc/WF)
WebSphere Portal
Mashup Center/Lotus Mashups
利用ガイド
ソフトウェア
>
Lotus
>
Lotus Developer Domain
>
製品別技術情報
>
Lotus Notes/Domino
>
LDD Today
1回のクリックによる画像ファイルの添付とインポート
by Ashok Hariharan
レベル:中級者
対 象: Notes/Domino 5 以降
原文の掲載:2002年11月4日
LDD Today の原文
(US)
誰かに画像を送信する際に、相手がわざわざ添付ファイルを開かなくてもその画像を見ることができるようにするには、画像を文書の中に表示して、画像ファイルをダウンロード用に添付します。このように画像の添付とインポートを行うには、通常は2つのステップが必要になります。まず、[ファイル] - [添付]を選択して画像を添付し、次に、[ファイル] - [呼び出し]を選択して画像を文書にインポートします。
しかし、次の方法を使えば、1ステップで画像ファイルを添付してインポートすることができます。
フォーム上に3つのフィールドを作成します。添付ファイルを受け入れるためのフィールド、画像を表示するためのフィールド、およびファイル名を表示するためのフィールドの3つです。
1クリックで画像ファイルを添付して表示するホットスポット・ボタンを作成します。
ここでは、この方法に加えて、画像と添付ファイルを1クリックで文書から削除する方法も説明します。
フォーム・フィールドの作成
フォームを作成または修正して、以下のフィールドを追加します。
フィールド名
フィールド・タイプ
説明
img
リッチ・テキスト
画像を添付ファイルとして受け入れます。
img_display
リッチ・テキスト
インポートした画像を文書に表示します。
img_name
テキスト(編集可能)
添付したファイルの名前を表示します。
ホットスポット・ボタンの作成
ホットスポット・ボタンを作成し、「添付と表示」というラベルを付けます。その後、以下のコードをプログラム・ペインにコピー・アンド・ペーストします。
FIELD img_name := img_name;
previous := @Subset(@AttachmentNames;-1);
@If(@IsDocBeingEdited;"";@Command([EditDocument]));
@Command([ToolsRunMacro]; "Kill");
@Command ([EditGotoField]; "img");
@If(img_name = "";@Command([EditInsertFileAttachment]);"");
@If(img_name !="";@Prompt([OK];"Error";"There is already an image attached");@Do(
@If(@Subset(@AttachmentNames;-1) = previous; "";@Right(@Subset (@AttachmentNames;-1);3)="jpg";
@Command([EditDetach];@Subset(@AttachmentNames;-1); "c:\\image.jpg");@Right(@Subset(@AttachmentNames;-
1);3)="gif";@Command([EditDetach];@Subset(@AttachmentNames;-1); "c:\\image.gif");"");
@SetField("img_name"; @Subset(@AttachmentNames;-1));
@Command ( [EditGotoField]; "img_display" );
@If(@Subset(@AttachmentNames;-1) = previous;
@SetField("img_name";"");@Right(@Subset(@AttachmentNames;-
1);3)="jpg";@Command ( [FileImport]; "JPEG Image"; "c:\\image.jpg"
);@Right(@Subset(@AttachmentNames;-1);3)="gif";@Command ( [FileImport]; "GIF Image"; "c:\\image.gif" );@Subset(@AttachmentNames;-
1)="";"";@Prompt([OK];"Error";"Not a Valid Image File"))))
この式の処理内容は次のようになります。
文書が編集モードになっているかどうかをチェックします。
編集モードになっていた場合は、@Command([EditInsertFileAttachment])を使って画像をimgフィールドに添付します。
画像の添付が済んだら、@Command([EditDetach])を使って、画像を一時的な場所(C:\)に保存します。
次に、画像ファイルの名前をimg_nameフィールドに追加します。
最後に、@Command([EditGotoField])を使って文書上のフォーカスをimg_displayフィールドに移動して、@Command([FileImport])式で画像をインポートします。
一時的な場所のクリーンアップ
上の式で一時的な場所から画像をインポートした後、Killというエージェントを起動します。このエージェントは、LotusScriptのKill関数を使って、C:\ディレクトリーから画像のコピーを削除します。NotesデータベースでLotusScriptエージェントを作成し、Killという名前を付けて、エージェントのInitializeサブルーチンに以下のコードをコピー・アンド・ペーストします。
Sub Initialize
On Error Resume Next
Kill "c:\image.jpg"
On Error Resume Next
Kill "c:\image.gif"
On Error Resume Next
End Sub
文書からの画像の削除
間違って別の画像を文書に追加してしまうことも考えられます。そのような場合も、わざわざ3つのフィールドから画像、添付ファイル、および名前のすべてを削除する必要はありません。ホットスポット・ボタンをもう1つ作成すればよいのです。ボタンを作成し、「画像の消去」というラベルを付けて、プログラム・ペインに以下のコードをコピー・アンド・ペーストします。
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Call uidoc.FieldClear( "img" )
Call uidoc.FieldClear( "img_display")
Call uidoc.FieldClear( "img_name" )
End Sub
このボタンを1回クリックするだけで、3つすべてのフィールドから画像、添付ファイル、およびテキストを削除できます。以上で準備は完了です。添付された画像がNotes文書に表示される様子は、きっとユーザーに気に入られることでしょう。
上に戻る