以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]删除行的时候报错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154237) |
-- 作者:81538475 -- 发布时间:2020/9/9 9:29:00 -- [求助]删除行的时候报错 drawdell 里面报错 不能通过已删除的行访问该行的信息If Forms("任务-xmZB").Opened Then Tables("任务-xmZB_table1").grid.Cols(0).widthdisplay = 4 Tables("任务-xmZB_table1").Grid.Rows(0).Height =27 Tables("任务-xmZB_table2").grid.Cols(0).widthdisplay = 4 \'Tables("任务-xmZB_table1").Grid.Rows(0).Height =27 End If If Forms("任务-xmfp").Opened Then Tables("任务-xmfp_table1").grid.Cols(0).widthdisplay = 4 End If If vars("start") = True AndAlso (e.Col.name = "缩略图" OrElse e.Col.name = "通过截图") AndAlso e.Table.Name<>"任务-xmfp_table1" Then \'--------改成本地文件之后,去掉 vars("局域网")=True AndAlso If e.Col.name= "缩略图" Then e.StartDraw If e.Row("缩略图") > "" Then If FileSys.FileExists(ProjectPath & "\\Foxtemp\\" & e.Row("缩略图")) Then e.Graphics.DrawImage(getimage(ProjectPath & "\\Foxtemp\\" & e.Row("缩略图")), e.x ,e.y , e.Width ,e.Height ) \'绘制第一个图标 Else e.Graphics.DrawImage(failed, e.x + 1,e.y +1, 42,42) End If End If e.text = "" e.EndDraw End If End If \'-------------日期显示设置 If e.Col.IsDate Then If e.Row.isnull(e.Col.Name) = False Then e.text = format(e.Row(e.Col.Name),"MM-dd") End If End If If vars("start2") = True Then e.Table.Se\\ect(0, 1) vars("start2") = False End If \'\'\' If e.Row.Locked =False Then Dim dr As DataRow = DataTables("XMZB").find("bh = \'"& e.row("BH") & "\'") \'Dim dr As DataRow = DataTables("XMFP").DataRows(e.Row.Index) \'Dim pr As DataRow = dr.GetParentrow("xmzb") If dr IsNot Nothing Then If dr("已通过") = True Then e.style = "通过" Else If e.Row("任务状态") = "通过" Then e.Style = "通过" Else If e.Col.Name = "任务结束" Then If e.Row.IsNull("任务结束") = False Dim d1 As Date=e.Row("任务结束") Dim tp As TimeSpan = E.Row("任务结束") - E.Row("计划开始") Dim tp2 As TimeSpan = D1 - Date.Today If tp2.TotalDays <0 Then e.Style = "延期提醒" Else If tp2.TotalDays/TP.TotalDays < 0.3 AndAlso tp2.TotalDays/TP.TotalDays >= 0 Then e.Style = "到期提醒" Else e.Style = Nothing End If End If End If Else If e.Row("剩余人天") < 0 AndAlso e.Col.Name = "剩余人天" Then e.Style = "延期提醒" \'Else \'If CurrentTable.Name= "xmfp" Then \'Dim idx As Integer = 0 \'For i As Integer = 1 To e.Row.Index \'If e.Table.Rows(i-1)("成员") <> e.Table.Rows(i)("成员") Then \'idx += 1 \'End If \'Next \'If idx Mod 2 = 0 Then \'e.style = "样式1" \'Else \'e.style = "样式2" \'End If \'End If End If End If End If If e.Row.IsNull("颜色记录") = False Then Dim n As String = "样式" & e.Row("_Identify") & "_" & e.Col.name Dim ary() As String = e.Row("颜色记录").split("|") For Each s As String In ary Dim a() As String = s.split(":") If a(0) = e.Col.name Then e.Table.DataTable.AddUserStyle(n, Color.FromARGB(a(1)), Color.black) e.Table.DataTable.Styles(n).BackColor = Color.FromARGB(a(1)) e.style = n Exit For End If Next End If Else \'Dim idx As Integer = 0 \'For i As Integer = 1 To e.Row.Index \'If e.Table.Rows(i-1)("成员") <> e.Table.Rows(i)("成员") Then \'idx += 1 \'End If \'Next \'If idx Mod 2 = 0 Then \'e.style = "样式3" \'Else \'e.style = "样式4" \'End If \'e.Style = "锁定" End If \'If e.Row.IsNull("任务") = False Then \'If e.Row("任务").contains("_复制") Then \'e.Style = "新增行" \'End If \'End If \'\'\' \'\'\' If e.Col.name="项目名称" Then If e.Row.Index = vars("x") AndAlso e.Col.Index = vars("y") Then e.Style = "突出显示" End If End If \'If e.Row.index = e.Table.rowsel Then \'e.Style = "整行样式" \'End If [此贴子已经被作者于2020/9/9 9:29:44编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/9/9 9:35:00 -- 一步步去掉部分代码测试,看是那一句代码有问题 |
-- 作者:81538475 -- 发布时间:2020/9/10 0:29:00 -- If e.Row.IsNull("任务结束") = False Dim d1 As Date=e.Row("任务结束") Dim tp As TimeSpan = E.Row("任务结束") - E.Row("计划开始") Dim tp2 As TimeSpan = D1 - Date.Today \' If tp2.TotalDays <0 Then e.Style = "延期提醒" Else If tp2.TotalDays/TP.TotalDays < 0.3 AndAlso tp2.TotalDays/TP.TotalDays >= 0 Then e.Style = "到期提醒" Else e.Style = Nothing End If End If End If 是这一段报错。 再删除行的时候报错了 .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2020.5.29.8 错误所在事件:任务,CurrentChanged 详细错误信息: 不能通过已删除的行访问该行的信息。 |
-- 作者:有点蓝 -- 发布时间:2020/9/10 9:13:00 -- 提示的是这个事件错误【错误所在事件:任务,CurrentChanged】,不是drawcell事件 |
-- 作者:81538475 -- 发布时间:2020/9/16 19:37:00 -- 会先提示这个,在提示CurrentChanged .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2020.5.29.8 错误所在事件:表,任务,DrawCell 详细错误信息: 调用的目标发生了异常。 不能通过已删除的行访问该行的信息。
|
-- 作者:81538475 -- 发布时间:2020/9/16 20:24:00 -- 目前想在删除前 systemready = false 删除后恢复 systemready = True 但是恢复的代码写在 删除中和删除后,都不行。
|
-- 作者:有点蓝 -- 发布时间:2020/9/17 8:57:00 -- 有时候错误是连锁反应的,先解决CurrentChanged问题,也许就没有问题了 |