在帮助中,有自定义用户登录和管理,但是经过实际开发发现:
1、既然是表了,就不需要用户管理部分了,只需根据权限操作该表就行,所以,只需保留用户登录部分就行了,因此,窗口设计和代码编写就都简单了很多,且只要将登录窗口保存为文件,以后别的项目开发就简单了。
2、既然是表,就不需要单独的一个外部表文件(帮助中没有做好这一点),直接在项目中增加一张用户表就行了。而且该表的内容可以是自定义的,一个用户名可以对应多个用户组,比如,一个实体会计可以主管几个实体,相当于隶属于几个用户组,比原来的还实用,不必在用户名后附加实体名称标识。
3、可以利用代码记录本机的最后一位登录用户,如果电脑专用,以后就不用再输入用户名了,非常方便。在afterload中插入
cmb.text = FileSys.ReadAllText("d:\项目管理系统\数据文件\用户登录.txt", Encoding.Default)
删除最后一行cmb.SelectedIndex = 0
在确定按钮事件中最后添加
FileSys.WriteAllText("d:\项目管理系统\数据文件\用户登录.txt",_username,False, Encoding.Default)
4、可以插入登录界面图片,以美化。
5、由于没有扩展属性不能输入服务器地址,但可以在BeforeConnectOuterDataSource事件中作些变通。因为服务器地址只有两个:一个是外网,一个是内网,先ping内网(因为所需时间短),能ping通就用内网地址,否则就用外网地址。
'根据内网和外网登录时服务器地址IP的不同,选择不同的连接字符串
If Network.Ping("10.22.1.40",1000) Then '内网等待1秒,如果Ping不通,则认为是外网
IPa="10.22.1.40"
Else
IPa="×.×.×.×"
End If
If e.name = "项目管理" Then
e.ConnectionString =e.ConnectionString.Replace("×.×.×.×", IPa)
End If
建议:
1、自定义登录中的开发者应该有开发功能,这样就完美了。
2、应该自动将登录界面的图片复制到需要的文件夹中。现在必须发布后手动复制。
[此贴子已经被作者于2012-7-10 13:38:40编辑过]