以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]全局代码的值问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=23380)

--  作者:chnfo
--  发布时间:2012/9/10 17:18:00
--  [求助]全局代码的值问题
我参考了帮助和社区里的帖,设计的登陆分为两步。
第一步是验证用户名和密码,第二步是由该用户选择被授权的机构。

在全局代码中定义了public SoftUserID、SoftGroupID、SoftProID as integer

根据两步分别做了两个窗口Login和SelectPro。

但在登陆过程中出了点小问题,第一步正常,但SoftUserID的值不能传递到第二个窗口中去。

第二步则报错。

请狐仙们指点哪里出错了。是不是public定义的参数变量的值,在整个系统里并非通用的?如果要做到值在整个系统里通用,如何处理?

我最开始考虑用Var来定义这三个变量,但有个问题,就是切换身份后,要退出系统再进,才会更新Var变量的值,是我的使用出问题了么?


如果用Var来定义SoftUserID、SoftGroupID、SoftProID,应用面可能更大一些,尤其是要通过SoftProID在界面上查询的时候,public是否就不适用了?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:用户登录.table



[此贴子已经被作者于2012-9-10 17:26:14编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/9/10 17:36:00
--  

我测试没有问题,我输入阿强,密码444,显示登录成功,提示“阿强-4”

 

至于错误提示,是下面加粗的部分有问题

 

 

Dim drs As List(Of DataRow)
drs = DataTables("ProUser").Select("UserID = SoftUserID ")
If drs.Count = 0 Then
    MessageBox.Show("你还没有被授予业务处理权限,请联系系统管理员", "提示", MessageBoxButtons.YesNo)
Else
    Tables("SelectPro_Table1").Filter = "UserID = SoftUserID "
End If

 

你好好看看:

http://www.foxtable.com/help/topics/1284.htm

 

应该是:

Dim drs As List(Of DataRow)
drs = DataTables("ProUser").Select("UserID = " & SoftUserID)
If drs.Count = 0 Then
    MessageBox.Show("你还没有被授予业务处理权限,请联系系统管理员", "提示", MessageBoxButtons.YesNo)
Else
    Tables("SelectPro_Table1").Filter = "UserID = " & SoftUserID
End If

 

合成表达式是基本工,必须掌握的


--  作者:czy
--  发布时间:2012/9/10 17:38:00
--  
Dim drs As List(Of DataRow)
drs = DataTables("ProUser").Select("UserID = \'" & SoftUserID & "\'")
If drs.Count = 0 Then
    MessageBox.Show("你还没有被授予业务处理权限,请联系系统管理员", "提示", MessageBoxButtons.YesNo)
Else
    Tables("SelectPro_Table1").Filter = "UserID = \'" & SoftUserID & "\'"
End If

--  作者:chnfo
--  发布时间:2012/9/10 20:29:00
--  
感谢各位指点,还是看帮助不仔细,细节啊……细节,惭愧。