技术开发 频道

定制Lotus Notes的通讯录的高级技巧

  ‘根据视图($Company)确定单位

  CodeProcess ’调用分类过程

  Categorytxt=“(”+Right(orgcode,3)

  +“)”+txtname+“\”+Categorytxt

  orgcode=Left(codename,2)

  viewname=“($Organize)”

  ‘根据视图($Organize)确定系统

  CodeProcess ’调用分类过程

  Categorytxt=“(”+orgcode+“)”+txtname+

  “\”+Categorytxt

  Case 7

  orgcode=Left(codename,5)

  viewname=“($Company)”

  ‘根据视图($Company)确定单位

  CodeProcess ’调用分类过程

  Categorytxt=“(”+Right(orgcode,3)

  +“)”+txtname+“\”+Categorytxt

  orgcode=Left(codename,2)

  viewname=“($Organize)”

  ‘根据视图($Organize)确定系统

  CodeProcess ’调用分类过程

  Categorytxt=“(”+orgcode+“)”+txtname+

  “\”+Categorytxt

  Case 5

  orgcode=Left(codename,2)

  viewname=“($Organize)”

  ‘根据视图($Organize)确定系统

  CodeProcess ’调用分类过程

  Categorytxt=“(”+orgcode+“)”+txtname+

  “\”+Categorytxt

  Case Else

  orgcode=codename

  viewname=“($Organize)”

  ‘根据视图($Organize)确定系统

  CodeProcess ’调用分类过程

  Categorytxt=“(”+orgcode+“)”+txtname+

  “\”+Categorytxt

  Messagebox “这是一个组织类型的用户!”

  End Select

  Call uidoc.FieldSetText(“Categories”,

  Categorytxt)

  ‘确定Categories域值

  End Sub

  ’确定系统、单位、部门分类

  Sub CodeProcess

  Dim doc As NotesDocument

  Dim view As NotesView

  Dim item As NOTESITEM

  Dim found As Integer

  Dim prgcode As String

  Set view=db.GetView(viewname)

  Set doc=view.GetFirstDocument

  txtname=“”

  found=False

  ‘根据Code域值确定分类名称

  Do Until doc Is Nothing Or found

  Set item=doc.GETFIRSTITEM(“Code”)

  prgcode=item.Text

  If prgcode=orgcode Then

  Set item=doc.GETFIRSTITEM(“ListName”)

  txtname=“(”+orgcode+“)”+item.text

  found=True

  End If

  Set doc=view.GetNextDocument(doc)

  Loop

  End Sub

  2、定制视图

  定制视图主要是对地址对话框数据来源--通讯录中的视图($People Groups Flat)和($People Groups Hier)进行定制。

  首先将($PeopleGroupsFlat)视图中首列的列公式改为“Categories”,并设置其排列属性为“升序”“分类”。再在视图中追加新列,列公式为“Code”,并为“升序”排列。

  同样对视图($PeopleGroupsHier)中首列的列公式改为“Categories”,并设置其排列属性为“升序”“分类”。再在视图中追加新列,列公式为“Code”,并为“升序”排列。经这样定制后,地址对话框的界面就基本达到设计目的:

  3、更换公用通讯录设计

  定制完成后,在桌面上单击公用通讯录,选择“文件/数据库/更换设计”。在更换设计提示窗口单击“显示高级模板”,选择定制公用通讯录模板,选择“继承未来的设计变化”复选框,然后单击“更换”。完成该操作以后,系统中使用的就是定制的公用通讯录了。

  四、定制通讯录模板的几点说明

  首先应对原通讯录数据库作好备份,以防操作后有意外发生。定制通讯录绝对不能直接对通讯录数据库进行操作,也不能对系统原有的缺省模板进行改动,定制时要创建通讯录模板的新拷贝,可以为模板拷贝取一个与单位相关的名称,如SWBNAME.NTF。

  定制之前,先查阅一下定制规则。本文中定制视图中提及的对原有两个视图($PeopleGroupsFlat)和($PeopleGroupsHier)进行定制是实现实际界面的关键。虽已突破了定制规则,但经反复比较测试,这一改动没有影响系统运行,属可行性方案。

  本文只简述了定制通讯录数据库的几个主要过程,对其它功能部件的定制,在遵循定制原则前提,可根据实际设计要求利用LotusNotes开发平台实现。

  本文介绍的方法已在实际办公自动化应用(OA)系统得到应用,运行环境为:

  服务器端:中文Windows NT4.0,Lotus Notes Domino Server 4.5

  客户端:中文Windows 95,Lotus Notes Client 4.5

0
相关文章