通过 Lotus Notes 创建调查

简介: 调查在我们的日常工作生活中被广泛应用。本文将以一个实例来讲解如何通过 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
参与2

1同行回答

发送调查表单在完成了调查表单的设计之后,接下来的就是如何把调查表单发送到被调查者的邮箱。创建文件夹 Survey,添加动作“发送调查”,代码如清单 4。清单 4:发送按钮代码 Sub  Click(Source  As  Button)   Dim  doc&nb...显示全部

发送调查表单


在完成了调查表单的设计之后,接下来的就是如何把调查表单发送到被调查者的邮箱。创建文件夹 Survey,添加动作“发送调查”,代码如清单 4。

清单 4:发送按钮代码
Sub  Click(Source  As  Button)
  Dim  doc  As  NotesDocument
  Dim  s  As  NotesSession
  Dim  db  As  NotesDatabase
  
  Set  s  =  New  NotesSession
  Set  db  =  s.CurrentDatabase
  Set  doc  =  New  NotesDocument(  db  )
  ‘被调查者邮箱,也可以是一个服务器上或者本地的组
  Call  doc.ReplaceItemValue("SendTo",  "被调查者邮箱")
  Call  doc.ReplaceItemValue("Form",  "Survey")
  ‘假如想在被调查者的邮箱中显示成一个其他人的邮箱,可以用这行语句设置,否则可以去掉
  Call  doc.ReplaceItemValue("Principal",  "代理人邮箱")
  Call  doc.ReplaceItemValue("submitted",  False)
  Call  doc.ReplaceItemValue("Importance",  "1")
  ‘调查的主题
  Call  doc.ReplaceItemValue("Subject",  "调查主题")
  ‘注意 Save 的参数,要设置为 True,表示表单会随着文档一起发送给被调查者,否则被调查者打开邮件将看到不正确的格式
  Call  doc.Save(True,True)
  Call  doc.Send(True)
  Messagebox("调查成功发出!")
End  Sub  

在完成了上述的设计之后,您就可以发送调查给调查的对象(如图 5,点击发送调查,成功后弹出对话框 -“调查成功发出!”)并将以邮件的形式收到调查的结果。

图 5. 发送调查样例


统计调查结果



在本实例当中,组织者将收到被调查者的邮件。组织者可以通过统计邮件中的数据来统计结果。本实例准备把这部分留给读者来完成。

展望和小结



通过上面实例的介绍,大家应该能够很方便的制作出基于 Lotus Note 的调查表单以及发送指定的表单,相信大家也觉得有很多改进的地方来发起和统计调查,作者认为有以下几个地方可以改进:
可以通过程序来统计调查结果,这部分前文已经提到。目前的设计是所有的调查结果都是以邮件的形式发送给发起者,读者可以通过改动清单 1 的代码让结果直接提交到某一指定的服务器上;或者在邮件数据中创建一个代理(Agent):每当新邮件的到来的时候,自动检查该邮件是否为调查结果的邮件,并将调查结果邮件复制到指定的数据库并删除邮件服务器上的邮件,这样也达到了转移调查结果邮件的功能。可以开发一个简单的工具来设计调查的表单,使得设计表单的难度有所降低。
http://www.ibm.com/developerworks/cn/lotus/ls-cn-notes-survey/index.html收起
2012-04-25
浏览1149

提问者

擅长领域: portal中间件服务器

相关问题

相关资料

问题状态

  • 发布时间:2012-04-25
  • 关注会员:1 人
  • 问题浏览:3584
  • 最近回答:2012-04-25
  • X社区推广