Lotus Domino开发中相信普遍会遇到的场景是用户需要提供一定规则的流水号生成.
之前在Lotus论坛的其它帖子中也讨论了一些防止产生重复流水号的方法之前又有类似的一个需求,想到Domino R6版本开始提供了lock与unlock的方法,就换种方法,用这个来做下.
比较简单,但也蛮实用的.
通过Document.lock方法生成流水号源码如下
Function MakeDesignerSerialID() 

On Error Goto errhandle 
Dim serialnote As notesdocument 
Dim index As Single 
Const SERIAL_LEN = 8  ‘8位 
Const SERIAL_SPACE = ”0000000000″ 

Set serialnote = getappprofile(”SerialNo”)  ’获取设计师流水号的Profile 
If serialnote.Lock() Then    如果当前可以锁定,则计算流水号 
  index = Val(serialnote.Values(0)) 
  index = index+1 
  serialnote.Values = Cstr(index) 
   
  Call serialnote.Save(False,False) 
  Call serialnote.UnLock   解锁 
  MakeDesignerSerialID = Right(SERIAL_SPACE+Cstr(index),SERIAL_LEN) 
Else 
  MakeDesignerSerialID = “Error” 
End If 
Exit Function 
errhandle: 
If Cstr(Err)=“4595″ Then 
  Msgbox |多人同时请求设计师编号,系统暂时锁定,请稍候再试!| 
Else 
  Msgbox |error |+Cstr(Error)+| err |+Cstr(Err)+| on |+Cstr(Erl)+| line.| 
End If 
Exit Function 
End Function 
  Lotus生成序列号 Lotus流水号生成补充一下,数据库属性  允许文档锁定要勾选。