以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  紧急求救模式窗口下导致系统出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9675)

--  作者:红叶
--  发布时间:2011/5/2 12:37:00
--  紧急求救模式窗口下导致系统出错

紧急求救模式窗口下导致系统出错,这样的代码在窗口为其它类型时没问题,改为模式窗口后,导致系统出错,只能强制退出

 


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

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

请测试,打开表A的窗口,然后选择"审核"时就出错


--  作者:红叶
--  发布时间:2011/5/2 14:53:00
--  
狐爸,请测试看看是什么原因呀
--  作者:狐狸爸爸
--  发布时间:2011/5/2 15:04:00
--  

可能有bug吧,想办法绕开他,例如事先将其只读属性设置为True


--  作者:红叶
--  发布时间:2011/5/2 16:29:00
--  

那得麻烦狐爸看看倒底是不是bug,如果是请尽快更新解决,我要的不是将其只读属性设置为True,而是在操作这个审核前面还在一部条件代码,在不符合条件的情况下,才e.Cancel = True

之所以以前没发现,是因为基本没有在模式窗口中进行录入,现在有了流程帮助,所以要将以前的其它类窗口改为模式窗口才发现的


--  作者:狐狸爸爸
--  发布时间:2011/5/2 17:44:00
--  

呵呵,这个问题可能不好解决的,还是想办法绕开吧。

你完全可以在检查框的Enter事件中设置代码,如果不符合条件,将其ReadOnly属性或者设置为False。

enter方法参考:

http://help.foxtable.com/topics/0734.htm

 


--  作者:红叶
--  发布时间:2011/5/3 8:38:00
--  
DataColChanging事件的代码如下,像这样的代码该如何绕开?而且具体什么情况下的代码需要绕开

呢? 

Select Case e.DataCol.Name

Case "审核_财务审核标识"

        If e.DataRow("结帐标识") = True Then

            e.Cancel = True \'取消编辑

            Messagebox.Show("数据已结帐,不能操作!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)

        Else If _UserGroup <> "财务部" AndAlso _UserGroup <> "财务部经理" Then

            e.Cancel = True \'取消编辑

            Messagebox.Show("只有财务部人员才有权操作!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)

        Else If e.DataRow("审核_物流审核标识") =False Then

            e.Cancel = True \'取消编辑

            Messagebox.Show("物流部尚未审核!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)

        Else If e.DataRow("审核_仓储审核标识") =False Then

            e.Cancel = True \'取消编辑

            Messagebox.Show("仓储部尚未审核!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information)

        End If

 

End Select


--  作者:狐狸爸爸
--  发布时间:2011/5/3 8:53:00
--  

如果是通过窗口录入,就考虑在此控件的Enter事件中设置代码,如果禁止编辑,则将其Readonly属性设置为FAlse.

如果是通过表输入,就考虑在PrepareEdit事件设置代码,如果禁止编辑,则e.Cancel。

 

这个bug我已经收藏,希望能解决,但初看问题比较复杂。


--  作者:红叶
--  发布时间:2011/5/3 9:11:00
--  

希望能解决,因为不知道哪些情况会出现这样的问题,所以不知道哪些代码需要绕开,而且也不容易绕开

我的是通过窗口录入

之前这样的代码我设在表的PrepareEdit中,此表作为关联表在窗口中操作时也偶尔会出现同样的问题,因为是偶尔出现,所以一直没有找到原因,才改在DataColChanging中设置