简介: 调查在我们的日常工作生活中被广泛应用。本文将以一个实例来讲解如何通过 Lotus Notes/Designer 创建并发起一个调查:它能够极大地方便使用 Lotus Notes 客户端的调查对象,使得他们可以在邮件内完成调查并非常方便的反馈结果,而无需打开链接或者借助其他的调查工作,此举将能够极大地提高调查的回复率。
最佳实践:如何通过 Lotus Notes 创建调查
调查在我们的日常工作生活中,应用非常广泛。提起调查,大家可能第一感觉会想到很多在线的调查系统,例如 IBM Nitro、Adobe 在线调查、Google 在线调查等等。假如你经常发起这样或者那样的调查的话,你是不是经常为收不到调查结果而烦恼?大家从收到调查邮件时,到开始调查之前需要打开调查的链接,甚至还需要输入各种各样的用户名和密码,这势必影响调查的回复率和效果。假如你所调查的对象都是使用 Lotus Notes 客户端,那么相信你将从本篇文章中获益。本文将以一个实例来讲解如何通过 Lotus Notes 创建调查,如图 1 显示了一个调查邮件样例,被调查者接收到调查邮件之后,只需要打开邮件并完成调查,就可以点击提交或者关闭来提交调查或者关闭邮件。
图 1. 调查邮件样例
预备知识
由于调查表单的设计是在 Lotus Designer 中完成的,因此读者应了解基本的 Lotus Designer 知识,例如如何设计表单、如何设计视图。表单是用户创建文档所需要的、控制结构和格式的设计元素。通常情况下,一个数据库都会有至少一个表单。在表单上,我们可以添加各种各样的域。另外,我们还需要一个视图来显示不同的文档。大家可以通过参考资料来学习和了解 Lotus Designer。
设计调查表单
打开 Lotus Designer,在你的工作邮件数据库或者单独创建一个新的邮件数据库 ( 以 mail8x.ntf 为模板,假如您不是专业管理员,我们建议您单独创建一个新的数据库,这是因为有可能会损坏数据库,影响您的工作和使用 )。在设计元素列表中的 Forms 下,点击按钮下
创建一个新的表单 ( 我们命名为 Survey),如图 1 所示。
添加一个两行一列的表格。在表格第一行中添加一个图像。在表格第二行中以文本的形式添加调查的说明以及调查的问题,可以在表单对应位置直接输入文本内容。对于每一个开放性问题,通常都需要有一个文本框或者 Rich Text 等域;对于选择性问题,通常需要复选框(checkbox)或者单选按钮(radio button)等域。示例中是为第一个问题添加了一个单选按钮域。在表单的末尾添加一个隐藏域 ( 名字叫 submitted),用来表示表单是否已经被提交,其属性配置如图 2 所示。读者也可以通过在图 2 的 Formula 窗口中添加 Formula 语句 @True,并使能 “Hide paragraph if formula is true”。
图 2. 隐藏域属性配置
为表单添加一些动作 ( 通过拖拽表单右边的边界来打开动作属性窗口,如图 3 所示 ):提交和关闭。其中,需要为“提交”动作的 click 属性添加如代码清单 1 所示的代码,为“关闭”动作的 click 属性添加如代码清单 2 所示的代码。另外,设置动作提交的属性,如图 4 所示,当被调查者提交结果之后,提交按钮将隐藏,防止多次提交。设置表单的 Postopen 属性,代码如代码清单 3。当被调查者打开调查邮件的时候,邮件应当是编辑状态。
图 3. 调查表单样例
图 4. “提交”按钮的属性
清单 1:动作“提交”的响应代码 Sub Click(Source As Button)
Dim w As NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set w = New NotesUIWorkspace
Set uidoc = w.CurrentDocument
Dim doc As NotesDocument
Set doc = uidoc.Document
‘设置标志:调查是否提交
Call doc.ReplaceItemValue("submitted", "true")
‘被调查者发给组织者邮件的主题
Call doc.ReplaceItemValue("Subject", "调查结果标题")
‘组织者邮箱
Call doc.ReplaceItemValue("SendTo", "被调查者的邮箱") ‘
Call doc.Save(True, True)
‘通过邮件形式发送调查结果
Call doc.Send(True)
Call uidoc.Save()
Call uidoc.Close()
Messagebox("真诚地感谢您的参与!")
End Sub
清单 2:动作“关闭”的响应代码 Sub Click(Source As Button)
Dim w As NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set w = New NotesUIWorkspace
Set uidoc = w.CurrentDocument
Call uidoc.Close()
End Sub
清单 3:表单 Postopen 代码 Sub Postopen(Source As Notesuidocument)
‘设置文档为编辑状态
Source.EditMode = True
End Sub