以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]删除行的时候报了这个错误?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=45457)

--  作者:kolen
--  发布时间:2014/1/26 13:10:00
--  [求助]删除行的时候报了这个错误?

删除行的时候报了这个错误?

问题出在哪里呢?这个提示什么意思。


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

--  作者:lsy
--  发布时间:2014/1/26 13:18:00
--  
前面删除行的操作,触发了后面CurrentChanged操作,后面的操作是什么呢?你没贴出来。
--  作者:kolen
--  发布时间:2014/1/26 13:19:00
--  

    

CurrentChanged事件中,删除以下代码,就没有报错了。这个代码问题在哪里呢?

    \'汇报与批示页签中,初始加载,输入框都不能编辑
    \'    e.Table.Save
    \'    For Each c As Winform.Control In Forms("任务管理窗口").Controls("汇报GroupBox").Children
    \'        c.Enabled =False
    \'    Next
     \'   For Each c As Winform.Control In Forms("任务管理窗口").Controls("批示栏GroupBox").Children
     \'       c.Enabled =False
    \'    Next


--  作者:lsy
--  发布时间:2014/1/26 13:24:00
--  

在这些代码前面加判断:

If e.Table.Current IsNot Nothing Then

 

 

End If


--  作者:kolen
--  发布时间:2014/1/26 13:32:00
--  

If Forms("任务管理窗口").Opened Then
    If Tables("任务表.汇报与批示").Rows.Count > 0  Then
        If Tables("任务表.汇报与批示").Current("批准否") = True Then
            Forms("任务管理窗口").Controls("审核PictureBox").TopMost = True  \'控制审核图标的显示
            Forms("任务管理窗口").Controls("删除Btn").Enabled = False \'删除按钮的失效
                     
        Else
            If Tables("任务表.汇报与批示").Current("汇报人") = user.Name Then
                Forms("任务管理窗口").Controls("删除Btn").Enabled = True \'当汇报人是用户时候,且当前行未审核,那么可以删除
            End If
           
                    
           
            Forms("任务管理窗口").Controls("审核PictureBox").BackMost = True
        End If
       
        \'批准按钮的控制(代码已经写在修改按钮中了)
        Dim s2 As String = Tables("任务表").Current("下达人") \'当任务下达人,且当前行审批状态为否 时候,批准按钮有效,
    \'    If s2.Contains( user.Name ) AndAlso Tables("任务表.汇报与批示").Current("批准否") = False Then
       \'     Forms("任务管理窗口").Controls("批准Button").Enabled = True
     \'   Else
     \'       Forms("任务管理窗口").Controls("批准Button").Enabled = False
     \'   End If

        \'撤准按钮的控制
        If s2.Contains( user.Name ) AndAlso Tables("任务表.汇报与批示").Current("批准否") = True Then
            e.Form.Controls("撤准Button1").Enabled = True
        Else
            e.Form.Controls("撤准Button1").Enabled = False
        End If
       
       
        \'---------------------当修改了,但没有保存,这时候换行,需要先锁定全部可以编辑的内容------
       
        \'汇报与批示页签中,初始加载,输入框都不能编辑
    \'    e.Table.Save
    \'    For Each c As Winform.Control In Forms("任务管理窗口").Controls("汇报GroupBox").Children
    \'        c.Enabled =False
    \'    Next
     \'   For Each c As Winform.Control In Forms("任务管理窗口").Controls("批示栏GroupBox").Children
     \'       c.Enabled =False
    \'    Next
       
       
              \'工具栏修改按钮的控制
        If Tables("任务表.汇报与批示").Current IsNot Nothing Then
           
            If  Tables("任务表.汇报与批示").Current("批准否") = True Then
                Forms("任务管理窗口").Controls("修改Btn").Enabled = False
            Else
                Dim s9 As String = Tables("任务表").Current("下达人")
               
                If Tables("任务表.汇报与批示").Current("汇报人") = user.Name OrElse   s9.Contains( user.Name )  Then
                   Forms("任务管理窗口").Controls("修改Btn").Enabled = True
                Else
                    Forms("任务管理窗口").Controls("修改Btn").Enabled = False
                End If
                             
            End If
        Else
            Forms("任务管理窗口").Controls("修改Btn").Enabled = False
        End If
       

       \'保存按钮不可编辑
        Forms("任务管理窗口").Controls("保存Btn").Enabled = False
       
       
        \'上下移动按钮可用
        Forms("任务管理窗口").Controls("down2Btn").Enabled = True
        Forms("任务管理窗口").Controls("downBtn").Enabled = True
        Forms("任务管理窗口").Controls("upBtn").Enabled = True
        Forms("任务管理窗口").Controls("uupBtn").Enabled = True
       
        \'----------------
       
       
       
       
    End If
End If


--  作者:kolen
--  发布时间:2014/1/26 13:33:00
--  
前面是有 If Tables("任务表.汇报与批示").Rows.Count > 0  Then
end if 了呀
--  作者:lsy
--  发布时间:2014/1/26 13:39:00
--  
行有了,不代表当前行还在呀。
--  作者:kolen
--  发布时间:2014/1/26 14:18:00
--  

居然问题出在这句上面,加了报错,不加就OK,奇怪了。 

\'    e.Table.Save

 

 

 

 

将它换成DataTables("汇报与批示").Save 也报一样错误,没有这句就不出错。

 

实现换行时候,直接先保存表。但是删除当前行时候,就报错了。

[此贴子已经被作者于2014-1-26 14:21:49编辑过]

--  作者:lsy
--  发布时间:2014/1/26 14:20:00
--  

不奇怪。

不保存,行还是原来的行。

一保存,删除的行就真没了。


--  作者:kolen
--  发布时间:2014/1/26 14:28:00
--  

这个过程是怎么样的呢?是否我理解的这样:

当前行----删除当前行后-- 系统重新选择了一个当前行--- -CurrentChanged事件触发,执行里面的代码

 

是这样吗,我该怎么改进代码呢?