|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
功能介绍:
1、设置一个Profile文档,让用户输入正确的用户名称和注册码。
2、注册码可以通过@Password进行加密用户名称计算,如果用户输入错误的注册码允许获得一个指定天数的试用期限。
3、每次打开数据库时,如果是试用版本,并且日期变化了,就将试用天数减一,否则不变化。
4、在限定使用的数据库按钮菜单中设置程序,判断用户是否注册了,如果没有注册,就不能运行;如果使用天数为0,则不能运行。
算法实现:
1、创建一个用户权限表单UserRight,保存系统信息,如开发商,时间等,以及用户信息,如用户名称,地址等,还有保存注册密码,注册密码可以根据用户名称来计算,因为用户名称是唯一不变。需要域名:
UserName :用户单位名称,编辑文本
XuLieHao :用户需要输入的序列号,编辑文本
TianShu:根据用户注册码是否正确,显示用户使用的天数
BanQian:显示用户的版权状态
ZhuCeShiJian:根据此域,判断使用日期是否变化,编辑隐藏,创建时计算:@Today
YHZhuCeMa:用户加密用户名称后的序列号,计算隐藏,计算公式:@Middle(@Password(UserName);1;8),用户需要输入和此相同的字符表示正确的合法用户。
注意:以上域名可以变化,只是需要前后关联。
需要创建以下事件程序:
Sub Postopen(Source As Notesuidocument)
Set uidoc = source
Set doc = uidoc.document
If doc.XTName(0) = "" Then
doc.XTName = "信息管理系统" '指定软件系统名称
doc.TianShu = 60 '指定试用使用期限
doc.BanQuan = "试用版" '指定使用版本权限状态
Call doc.save(True,True)
End If
End Sub
Sub Querysave(Source As Notesuidocument, Continue As Variant)
REM 校验用户注册码是否正确
ZCM = doc.YHZhuCeMa(0) '
XLH = doc.XuLieHao(0)
If ZCM= "" And doc.UserName(0) <> "" Then '如果用户输入了用户名称,就刷新以获得
Call source.refresh '正确的注册码
ZCM = doc.YHZhuCeMa(0)
End If
If XLH = "TNDA" Then Exit Sub '允许用户输入指定的注册码使用试用版
If XLH <> ZCM Then
continue = False
Messagebox "您输入的序列号错误,请重新输入。",16,"保存返回"
Exit Sub
End If
doc.TianShu = 999999
doc.BanQuan = "合法用户"
End Sub
2、创建一个表单或视图,即必须是数据库首先打开的
需要一个操作按钮,以便用户输入名称及注册码
@Command( [EditProfile] ; "UserRight"; "tnda" )
需要以下事件程序,此程序放在数据库、表单、视图中均可。
Sub Postopen(Source As Notesuidocument)
%REM
打开数据库以后检查,是否是合法用户还是试用版本,
如果是试用版本将试用日期数减1
%END REM
Dim ss As New notessession
Dim db As notesdatabase
Set db = ss.currentdatabase '获得当前数据库
Dim prodoc As notesdocument
Set prodoc = db.GetProfileDocument("UserRight","tnda")
'获得注册文档
If prodoc.BanQuan(0) = "合法用户" Then Exit Sub
ZCRQ = Cstr(prodoc.ZhuCeShiJian(0)) '获得注册日期
JTRQ = Cstr(Date) '获得当前日期
If ZCRQ <> JTRQ Then '改变了日期
prodoc.TianShu = prodoc.TianShu(0) - 1 '试用天数减一
prodoc.ZhuCeShiJian = Date '改变日期
Call prodoc.save(True,True)
End If
End Sub
3、在限制用户使用的操作按钮上可以使用:
@If(@GetProfileField("UserRight";"XTName";"tnda") = "" ; @Return(@Prompt([OK];"报案笔录";"您需要登记用户版权信息,才能使用。"));"");
@If(@GetProfileField("UserRight";"TianShu";"tnda") = 0 ; @Return(@Prompt([OK];"报案笔录";"您试用期限已过需要购买正式版本进行注册,才能使用。"));"");
@Command([FileOpenDatabase];"":"aaaa.nsf")
|
|