壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1148|回复: 2

[新手上路] 给notes数据库实现注册码功能。

[复制链接]
发表于 2003/3/26 13:48:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服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")
发表于 2003/10/30 16:50:47 | 显示全部楼层
发表于 2003/10/31 10:46:33 | 显示全部楼层
在B/S中可以实现么?
后台调用notes库哦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 05:03 , Processed in 0.016023 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表