Foxtable(狐表)用户栏目专家坐堂 → 教程也会错吗?还是我漏了什么条件?


  共有1991人关注过本帖树形打印复制链接

主题:教程也会错吗?还是我漏了什么条件?

帅哥哟,离线,有人找我吗?
hitzfeld
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:515 积分:5051 威望:0 精华:0 注册:2017/9/1 23:28:00
教程也会错吗?还是我漏了什么条件?  发帖心情 Post By:2020/4/2 3:31:00 [只看该作者]

 最近一直在学习自定义用户与权限管理,老规矩,先照抄一遍,再按自己的思路改。但是,在学习自定义用户与权限管理之二的时候,发现到了最后的步骤:

十、将项目事件AfterOpenProject的代码改为:

Dim cmd As New SXQLCommand
cmd
.ConnectionName = "User"
cmd
.CommandText = "S ELECT * From {Users} Where [Name] Is Null"
_UserTable
= cmd.ExecuteReader(True)

Forms("用户登录").Open()


下面是后半截代码,如果把下面代码复制进去,则系统必定闪退,不加这部分代码就正常。为了测试这个问题,我连续做了两个相同的系统。结果都一样。

If _UserName = "" Then
    Syscmd.Project.Exit()
    Return
'
这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
End
If
'后续初始化代码


但是,教程里的案例则没有问题?我分析了下原因,应该是系统运行的时候UserName = ""就退出,我抄的系统在运行的时候,系统还没加载用户表就运行了项目事件判断,然后UserName 这时候是空值,所以执行了退出。实际运行中也发现,如果不把If _UserName = "" Then....这段程序加进去,运行到“用户登录”界面的时候,用户名这栏就是空值。但是,如果我在窗口设计器里面,选择“应用窗口”,则用户名这栏是有正确的值的。百思不得其解,研究了快一天了,也没找到问题在哪里?


整个系统,我除了把数据源名称改为我这里的名称以外,没有修改任何一个字,也就是把cmd.ConnectionName = "User"的user改为我的数据源。

最后,还有个悲剧的问题,之前有个步骤我没做(因为觉得没必要):

三、打开Foxtable的用户管理,增加一个用户,并将其设置为默认用户,这样打开项目的时候,将不会出现foxtable的用户登录窗口。

然后,在调试找不到原因之后,我很不幸的把这个加上去了,现在更惨了,原本还能按住ctrl进系统调试,现在是任何用户名进去都是闪退,麻烦版主帮忙解开下。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar





 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/2 10:20:00 [只看该作者]

登录窗口改为模式窗口

 回到顶部