Attaching and importing image files in one click

本文介绍如何在Notes文档中通过创建特定的表单字段和按钮,实现图片的一键附加和显示功能,简化了传统两步操作流程。包括创建表单字段、编写代码实现图片的附加、导入、清理临时文件和删除操作,以及提供清除错误图片的按钮。此方法适用于提高工作效率,特别适合需要频繁处理文档和图片的用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Suppose you want to send an image to someone, and to save your recipient the extra step of having to launch or open the file attachment to preview the image, you want to display the image in the document and attach the image file for downloading. Attaching and importing images is usually a two-step process: First, you attach the image by choosing File - Attach, and then to import the image into a document, you choose File - Import.

But no longer-you can attach and import image files in one step by:

  1. Creating three fields on a form: a field to host the file attachment, a field to display the image, and another to display the file name.
  2. Creating a hotspot button that attaches and displays the image file with one click.

We'll also tell you how to remove the image and file attachment from the document with one click.

Creating the form fields

Create or modify a form, adding the following fields:

Field nameField typeDescription
imgRich textHosts the image as a file attachment.
img_displayRich textDisplays the imported image in the document.
img_nameText (editable)Displays the name of the attached file.

Creating the hotspot button

Now create a hotspot button and label it Attach & Display. Then copy and paste the following code into the programmer's pane:

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"))))

The formula does the following:

  1. Checks whether or not the document is in edit mode.
  2. If the document is in edit mode, the formula attaches the image to the img field using @Command([EditInsertFileAttachment]).
  3. After attaching the image, the formula detaches the image to a temporary location (C:\) using @Command([EditDetach]).
  4. Next, the formula adds the image file name in the img_name field.
  5. Last, the formula shifts the focus on the document to the img_display field using @Command([EditGotoField]). Then the @Command([FileImport]) formula imports the image.

Cleaning up the temporary location

After importing the image from its temporary location, the formula triggers an agent called Kill that deletes the image copies from the C:\ directory using the LotusScript Kill function. Create a LotusScript agent in the Notes database, call it Kill, and then copy and paste the following code into the agent's Initialize subroutine:

Sub Initialize
	On Error Resume Next
	Kill "c:\image.jpg"
	On Error Resume Next
	Kill "c:\image.gif"
	On Error Resume Next
End Sub	


Removing the image from the document

What if you add the wrong image to your document? Do you have to delete the image, file attachment, and name from all three fields? No need-just create another hotspot button and label it Clear Image. Then copy and paste the following code into the programmer's pane:

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

This button removes the image, attachment, and text from all fields with a single click. Now you are all set, and users will love the way your Notes document displays images as they are attached to the documents!


About the author

Ashok Hariharan is a contributor to the Lotus Developer Domain. LDD is the premier technical Web site for Lotus software products.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值