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流水号生成补充一下,数据库属性 允许文档锁定要勾选。