Foxtable(狐表)用户栏目专家坐堂 → 请教高手关于CurrentChanged的问题


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

主题:请教高手关于CurrentChanged的问题

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


加好友 发短信
等级:小狐 帖子:324 积分:2547 威望:0 精华:0 注册:2012/5/19 22:40:00
请教高手关于CurrentChanged的问题  发帖心情 Post By:2014/10/26 23:17:00 [只看该作者]

想要在CurrentChanged中写一段代码,要实现根据不同行是否被审核而确定文件管理器中调整增加或删除的权限,可是下面的语句总是出错,请高手指教。语句和出错内容如下:

If Forms("监造周报窗口").Opened Then

Dim fm1 As WinForm.FileManager = e.Form.Controls("FileManager1")

Dim fm2 As WinForm.FileManager = e.Form.Controls("FileManager2")

Dim fm3 As WinForm.FileManager = e.Form.Controls("FileManager3")

Dim fm As WinForm.PictureViewer = e.Form.Controls("PictureViewer1")

    If Tables("监造周报").Current("审核") IsNot Nothing  Then '如果周报已经审批       

        fm1.AddCommand.Visible = False

        fm2.AddCommand.Visible = False

        fm3.AddCommand.Visible = False

        fm.AddCommand.Visible = False

        fm1.DeleteCommand.Visible = False

        fm2.DeleteCommand.Visible = False

        fm3.DeleteCommand.Visible = False

        fm.DeleteCommand.Visible = False

        fm1.ClearCommand.Visible = False

        fm2.ClearCommand.Visible = False

        fm3.ClearCommand.Visible = False

        fm.ClearCommand.Visible = False

    Else

        fm1.AddCommand.Visible = True

        fm2.AddCommand.Visible = True

        fm3.AddCommand.Visible = True

        fm.AddCommand.Visible = True

        fm1.DeleteCommand.Visible = True

        fm2.DeleteCommand.Visible = True

        fm3.DeleteCommand.Visible = True

        fm.DeleteCommand.Visible = True

    End If

End If

 

.NET Framework 版本:2.0.50727.5485

Foxtable 版本:2014.10.16.1

错误所在事件:监造周报,CurrentChanged

详细错误信息:

未将对象引用设置到对象的实例。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/26 23:25:00 [只看该作者]

e.Form 改成 Forms("监造周报窗口")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/26 23:26:00 [只看该作者]

第二点:判断一下 If e.Table.Current IsNot Nothing Then

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


加好友 发短信
等级:小狐 帖子:324 积分:2547 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/27 7:44:00 [只看该作者]

甜版,修改后不报错了,但是点击所有行都是FALSE状态,对于没有审核的,并不能实现TRUE,不知是何原因。修改后的代码如下:

If Forms("监造周报窗口").Opened Then

    If e.Table.Current IsNot Nothing Then

        Dim fm1 As WinForm.FileManager = Forms("监造周报窗口").Controls("FileManager1")

        Dim fm2 As WinForm.FileManager = Forms("监造周报窗口").Controls("FileManager2")

        Dim fm3 As WinForm.FileManager = Forms("监造周报窗口").Controls("FileManager3")

        Dim fm As WinForm.PictureViewer = Forms("监造周报窗口").Controls("PictureViewer1")

        If Tables("监造周报").Current("审核") IsNot Nothing  Then '如果周报已经审批

            fm1.AddCommand.Visible = False

            fm2.AddCommand.Visible = False

            fm3.AddCommand.Visible = False

            fm.AddCommand.Visible = False

            fm1.DeleteCommand.Visible = False

            fm2.DeleteCommand.Visible = False

            fm3.DeleteCommand.Visible = False

            fm.DeleteCommand.Visible = False

            fm1.ClearCommand.Visible = False

            fm2.ClearCommand.Visible = False

            fm3.ClearCommand.Visible = False

            fm.ClearCommand.Visible = False

        Else

            fm1.AddCommand.Visible = True

            fm2.AddCommand.Visible = True

            fm3.AddCommand.Visible = True

            fm.AddCommand.Visible = True

            fm1.DeleteCommand.Visible = True

            fm2.DeleteCommand.Visible = True

            fm3.DeleteCommand.Visible = True

            fm.DeleteCommand.Visible = True

        End If

    End If

End If


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


加好友 发短信
等级:版主 帖子:1693 积分:12135 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/10/27 7:57:00 [只看该作者]

你的审核列 没有为空的

 

如果是逻辑列,改成

If Not Tables("监造周报").Current("审核"Then

 

试试


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


加好友 发短信
等级:小狐 帖子:324 积分:2547 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/27 8:28:00 [只看该作者]

谢谢,不是逻辑列,审核列是填入审核人名字,如果有名字就是审核,没有名字就未审核。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/10/27 8:31:00 [只看该作者]

If Not Tables("监造周报").Current.isnull("审核") then



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


加好友 发短信
等级:小狐 帖子:324 积分:2547 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/27 8:33:00 [只看该作者]

甜版,我又做了一个例子,希望在窗口中实现,点击周报表的不同行,根据审核列中不同的审核情况,调整窗口中FileManager和PictureViewer中编辑权限,如果审批状态,就取消增加权限,如果未审批,就保持原来的状态(就是可以增加)。

麻烦甜版指导,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.foxdb



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/27 9:23:00 [只看该作者]

If Forms("周报").Opened Then

    If e.Table.Current IsNot Nothing Then

        Dim fm1 As WinForm.FileManager = Forms("周报").Controls("FileManager1")

        'Dim fm2 As WinForm.FileManager = Forms("周报").Controls("FileManager2")

        'Dim fm3 As WinForm.FileManager = Forms("周报").Controls("FileManager3")

        Dim fm As WinForm.PictureViewer = Forms("周报").Controls("PictureViewer1")

        If e.Table.Current.IsNull("审核") = False  Then '如果周报已经审批

            fm1.AddCommand.Visible = False

            'fm2.AddCommand.Visible = False

            'fm3.AddCommand.Visible = False

            fm.AddCommand.Visible = False

            fm1.DeleteCommand.Visible = False

'            fm2.DeleteCommand.Visible = False

            'm3.DeleteCommand.Visible = False

            fm.DeleteCommand.Visible = False

            fm1.ClearCommand.Visible = False

'           fm2.ClearCommand.Visible = False

'           fm3.ClearCommand.Visible = False

            fm.ClearCommand.Visible = False

        Else

            fm1.AddCommand.Visible = True

'           fm2.AddCommand.Visible = True

 '          fm3.AddCommand.Visible = True

            fm.AddCommand.Visible = True

           fm1.DeleteCommand.Visible = True

'           fm2.DeleteCommand.Visible = True

'           fm3.DeleteCommand.Visible = True

            fm.DeleteCommand.Visible = True

        End If

    End If

End If


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


加好友 发短信
等级:小狐 帖子:324 积分:2547 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/27 11:16:00 [只看该作者]

ok,谢谢甜版
修改了一下,在窗口的afterload中也维护了一套判断代码

 回到顶部