Lotus Notes编程问题答疑
 

  问:如何删除视图和文件夹

  答:以下代码实现从当前数据库中删除一个用户指定的视图和文件夹。

  Sub Click(Source As Button)


   Dim session As New NotesSession

   Dim db As NotesDatabase

   Dim view As NotesView

   Set db = session.CurrentDatabase

   viewName = Inputbox100 100"Name of view")

   If viewName = " " Then Exit Sub

   Set view = db.Getview(viewName)

   Call view.Remove

  End Sub

  问:URL导航按钮的实现

  答:在Lotus Domino/Notes应用系统中,各种类型的文档中常常包含了URL地址域,用户希望能够快速浏览该地址域,这时,我们可以在Lotus Domino/Notes系统中设计一个导航按钮,用于快速直接地连接到URL地址。

  假设URL地址域为website,具体实现代码如下:

  @If(WebSite="";@Do(

  @Prompt([OK];"无此网址";"客户尚未列出网站列表。");

  @Return(""));"");

  @URLOpen(WebSite)

  问:如何删除含有某一字符串的文档

  答:Lotus Domino/Notes应用系统中,我们常常需要在数据库中执行全文搜索,并删除含有某一字符串的文档,以下代码实现删除所有含“ontime”字符串的文档。

  Sub Initialize

   Dim session As New NotesSession

   Dim db As NotesDatabase

   Set db = session.CurrentDatabase

   Call db.UpdateFTIndex(True)

   Set dc = db.FTSearch("ontime",0)

   For j =1 to dc.Count

   Set doc = dc.GetNThDocument(j)

   Call doc.Remove(True)

   Next

  End Sub

  问:计算事件所需的星期

  答:在Lotus Domino/Notes中,我们常常需要计算某一事件从起始到截止日期所需要的星期数,以便于计划安排,这时,我们可利用如下公式来计算所需的星期数,代码如下:

  The following formula counts the number of weekdays (but not weekend days):

  diffDays := (EndDate - StartDate) / 86400 + 1;

  strtDay := @Modulo(@Weekday(StartDate); 7);

  endDay := @Modulo(@Weekday(EndDate); 7);

  result := (diffDays - endDay + strtDay - 8)5 / 7 - @Max(-2; -strtDay) - @Min(1; endDay) + 5 - strtDay + endDay

  问:如何添加HTTP到URL中

  答:在客户数据库系统中,客户的网站地址是重要的记录项之一,但使用者在输入该信息时,由于个人习惯,往往忘记输入HTTP这个URL的前缀。

  为解决这个问题,我们可以利用下面的代码自动地将HTTP这一前缀添加到URL中去。具体代码如下:

  WebSite:=WebSite;

  SetURL:=""+ @Trim(WebSite);

  @If(

  !@Contains(WebSite;@LowerCase("")) && WebSite!="";

  @SetField("WebSite";SetURL);WebSite)

  问:如何显示当前代理的名字

  答:Lotus Domino/Notes应用系统中代理起着非常重要的作用,在开发时,我们常常需要获得当前代理的名字,以下代码可用于显示当前代理的名字。

  Sub Initialize

   Dim session As New NotesSession

   Dim agent As NotesAgent

   Set agent = session.CurrentAgent

   If Not IsEmoty(agents) Then

   Messagebox(Agent.Name)

   Else

   Messagebox("Not an agent")

   End If

  End Sub

  问:用户邮件文件的设置

  答:用户邮件文件的设置是Lotus Domino/Notes中常见的问题之一。由于邮件文件在系统中已完全设置好,用户很难手工对设置加以变化,而为了便于系统的管理和维护,我们常常需要改变用户邮件文件的位置,这时,我们可以专门制作一个邮件设置按钮,利用如下代码实现用户邮件文件的设置,代码如下:

  Dim ldb As New NotesDatabase("", "names.nsf")

  Set lview = ldb.GetView("Locations")

  locationStr=session.GetEnvironmentValue("Location", True)

  posComma=InStr(",",locationStr)

  locationStr=Left(locationStr,posComma)

  Set ldoc = lview.GetDocumentByKey(locationStr)

  Set item = ldoc.ReplaceItemValue("MailServer", newservername)

  Set item = ldoc.ReplaceItemValue("MailFile", newfilename)

  Call ldoc.Save(Fse, False)

 
 

[关闭窗口]