以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 紧急求救模式窗口下导致系统出错 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=9675) |
||||
-- 作者:红叶 -- 发布时间:2011/5/2 12:37:00 -- 紧急求救模式窗口下导致系统出错 紧急求救模式窗口下导致系统出错,这样的代码在窗口为其它类型时没问题,改为模式窗口后,导致系统出错,只能强制退出
请测试,打开表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.NameCase "审核_财务审核标识" 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中设置
|