如何让LotusScript代理创建的Notes文档嵌入存储表单?
LotusScript代理创建文档时嵌入存储表单的解决方法
直接设置newdoc.Form仅能指定文档关联的表单名称,不会自动将表单的设计内容嵌入到文档中。手动编辑保存时Notes会自动完成嵌入操作,但代理创建文档需要显式调用方法实现。
解决步骤及修改后代码
- 先获取目标表单的
NotesForm对象,确保表单存在 - 使用
EmbedObject方法将表单作为嵌入对象添加到文档 - 确保表单已开启「存储到文档」属性(手动保存能嵌入则该属性已开启)
修改后的代码:
Sub Initialize Dim session As New NotesSession Dim db As NotesDatabase Dim newdoc As NotesDocument Dim targetForm As NotesForm Set db = session.CurrentDatabase ' 获取指定表单对象 Set targetForm = db.GetForm("Executive Summary") If targetForm Is Nothing Then Print "找不到表单:Executive Summary" Exit Sub End If Set newdoc = db.CreateDocument newdoc.Form = "Executive Summary" ' 将表单嵌入到文档的Body字段(可替换为其他字段) Call newdoc.EmbedObject(EMBED_FORM, "", targetForm.Name, "Body") Call newdoc.Save(True, True) End Sub
关键说明
EMBED_FORM是LotusScript内置常量,用于指定嵌入类型为表单- 第四个参数
"Body"是存储嵌入表单的字段名,若文档无此字段,Notes会自动创建 - 先校验表单是否存在,避免因找不到表单导致代理报错
内容的提问来源于stack exchange,提问作者SimonB
相关产品推荐
相关产品推荐

