以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]不知是操作系统的问题还是狐表的BUG?(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=49310)

--  作者:yyzlxc
--  发布时间:2014/4/15 20:13:00
--  [求助]不知是操作系统的问题还是狐表的BUG?(已解决)


一段在命令窗口执行正常的代码,在窗口的AfterLoad事件中却不能正常执行,

现在只能放在项目属性的MainTableChanged事件中运行,不知是否妥当。


执行异常的是红色代码的部分,在窗口的AfterLoad事件中运行,不能根据用户名填充ComboBox1,以及不能根据角色解锁ComboBox1(可以锁定)。不知是操作系统的问题还是狐表的BUG,请各位老师指教。谢谢!!

Dim cmb As New SQLCommand
cmb.C \'外部数据源
cmb.CommandText = "Select GetDate()" \'服务器时间
Dim sj As Date = cmb.ExecuteScalar()
Dim rq As Date = sj.Date
Dim rq1 As WinForm.TextBox = Forms("工具录入").Controls("TextBox19")
rq1.Value = Format(rq,"yyyy-MM-dd")
Dim gjmc As WinForm.ComboBox = Forms("工具录入").Controls("ComboBox2")
gjmc.ComboList = DataTables("工具目录").GetComboListString("工具名称")
If _UserGroup <> "生产" And _UserGroup <> "开发" Then
    Forms("工具录入").Controls("ComboBox1").Enabled = False
    \'填充单位
    Dim pr2 As DataRow
    pr2 = DataTables("用户表").Find("姓名 = \'" & _UserName & "\'")
    Dim a2 As String
    If pr2 IsNot Nothing Then
        a2 = pr2("单位")
    Else
        a2 = Nothing
    End If
    Forms("工具录入").Controls("ComboBox1").Text = a2
Else
    Forms("工具录入").Controls("ComboBox1").Enabled = True
    Dim sydw As WinForm.ComboBox = Forms("工具录入").Controls("ComboBox1")
    sydw.ComboList = DataTables("部门表").GetComboListString("部门1")
End If
[此贴子已经被作者于2014-4-16 11:41:53编辑过]

--  作者:有点甜
--  发布时间:2014/4/15 20:54:00
--  

 不可能是bug吧,不能如愿,是这句代码的原因

 

IF _UserGroup <> "生产" And _UserGroup <> "开发" Then

 

 你msgbox一下_UserGroup看看,注意可能有空格的的情况。


--  作者:yyzlxc
--  发布时间:2014/4/15 22:33:00
--  
谢谢甜老师的回复,如果是_UserGroup字段有空格的话,在命令窗口也不应该运行正常呀?百思不得其解。

因为是SQL Server数据库和自定义登录,否则应该做一个案例上传验证一下。再次谢谢甜老师。

--  作者:有点甜
--  发布时间:2014/4/15 22:46:00
--  
以下是引用yyzlxc在2014-4-15 22:33:00的发言:
谢谢甜老师的回复,如果是_UserGroup字段有空格的话,在命令窗口也不应该运行正常呀?百思不得其解。

因为是SQL Server数据库和自定义登录,否则应该做一个案例上传验证一下。再次谢谢甜老师。

 

你加入这句代码看看效果,截图上来

 

msgbox("你好" & _UserGroup & "啊")


--  作者:yyzlxc
--  发布时间:2014/4/16 6:55:00
--  
谢谢甜老师的指教,上截图。


图片点击可在新窗口打开查看此主题相关图片如下:开发2.png
图片点击可在新窗口打开查看


--  作者:blackzhu
--  发布时间:2014/4/16 7:44:00
--  
代码应该没啥问题.如果你在命令窗口执行,而这边不执行的话,你自己好好检查下吧
--  作者:yyzlxc
--  发布时间:2014/4/16 8:02:00
--  
谢谢blackzhu老师的回复,应该从那几个方面去检查,请老师指教,谢谢!!

窗口的AfterLoad载人会有哪些因素影响?

[此贴子已经被作者于2014-4-16 8:03:56编辑过]

--  作者:逛逛
--  发布时间:2014/4/16 8:08:00
--  

AfterLoad 事件是一次性的,只有打开窗口时执行

 

楼主可以检查一下窗口是否设置成了自动打开

 

 

如果是,应该是在加载表的时候,代码就已经执行了。

 

试试关闭自动打开,用代码执行打开窗口。


--  作者:yyzlxc
--  发布时间:2014/4/16 11:03:00
--  
谢谢逛逛老师的指教,将窗口的自动打开取消后,项目重新启动可以实现所需的效果,但是用切换用户的方法,则不能达到所需效果,有没有用代码对窗口的AfterLoad事件重新加载的方法,请各位老师指教,谢谢。
--  作者:有点甜
--  发布时间:2014/4/16 11:11:00
--  
以下是引用yyzlxc在2014-4-16 11:03:00的发言:
谢谢逛逛老师的指教,将窗口的自动打开取消后,项目重新启动可以实现所需的效果,但是用切换用户的方法,则不能达到所需效果,有没有用代码对窗口的AfterLoad事件重新加载的方法,请各位老师指教,谢谢。

 

你切换用户的时候,是否有更改 _UserGroup 的值?