Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
[求助]  发帖心情 Post By:2014/12/24 16:00:00 [只看该作者]

.NET Framework 版本:2.0.50727.8009
Foxtable 版本:2014.11.11.1
错误所在事件:窗口,BUG研发查询修改系统,TreeView1,NodeMouseDoubleClick
详细错误信息:
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据

这个问题是不是一开始没有加载数据导致的?我是想不论做什么操作一开始先全部加载数据,然后再根据提交进行筛选,请帮我看看哪里出问题了?

AfterLoad代码如下:

DataTables("BUG研发表").loadFilter = ""
DataTables("BUG研发表").Load()
Tables("BUG研发表").sort = "BUG_ID DESC"
Dim t1 As WinForm.TreeView
t1 =e.Form.Controls("TreeView1")
t1.BuildTree("BUG研发表", "研发组长|模块维护人")
t1.Nodes.Insert("显示所有研发的BUG",0)
Dim t2 As WinForm.TreeView = e.Form.Controls("TreeView2")
t2.CreateTree("BUG研发表","怀疑模块")
t2.Nodes.Insert("显示所有模块的BUG",0)
Dim t3 As WinForm.TreeView = e.Form.Controls("TreeView3")
t3.CreateTree("BUG研发表","测试机型")
t3.Nodes.Insert("显示所有机型的BUG",0)
Dim t4 As WinForm.TreeView = e.Form.Controls("TreeView4")
t4.CreateTree("BUG研发表","测试项目")
t4.Nodes.Insert("显示所有项目的BUG",0)

 

TopicLinkClick代码如下:

DataTables("BUG研发表").loadFilter = ""
DataTables("BUG研发表").Load()
Select  Case e.Link.Name
    Case  "待我解决的BUG"
        DataTables("BUG研发表").loadFilter = "状态 = '待解决' and 模块维护人 = '" & user.name & "'"
        DataTables("BUG研发表").Load()
        Tables("BUG研发表").sort = "BUG_ID DESC"
    Case "我已更新的BUG"
        DataTables("BUG研发表").loadFilter = "状态 = '已更新' and 模块维护人 = '" & user.name & "'"       
        DataTables("BUG研发表").Load()
        Tables("BUG研发表").sort = "BUG_ID DESC"
    Case "我已解决的BUG"
        DataTables("BUG研发表").loadFilter = "状态 = '已解决' and 模块维护人 = '" & user.name & "'"       
        DataTables("BUG研发表").Load()
        Tables("BUG研发表").sort = "BUG_ID DESC"
End Select

 

 

NodeMouseDoubleClick代码如下:

DataTables("BUG研发表").loadFilter = ""
DataTables("BUG研发表").Load()
Dim Filter As String
Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行
If e.Node.Text <> "显示所有研发的BUG" Then
    Select Case e.Node.Level
        Case 1
            Filter = "[模块维护人] = '" & dr("模块维护人") & "' "
    End Select
End If
DataTables("BUG研发表").loadFilter = Filter
DataTables("BUG研发表").Load()


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


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

 这句代码有问题,重新load表之后,不能再用DataRow。你直接根据e.Node.Text去写代码吧

 

Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/12/24 16:22:00 [只看该作者]

以下是引用有点甜在2014-12-24 16:05:00的发言:

 这句代码有问题,重新load表之后,不能再用DataRow。你直接根据e.Node.Text去写代码吧

 

Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行

重新load表之后,不能再用DataRow?

重新load就是让它加载全部数据,然后筛选出对应的行datarow。

我还是没有弄懂这个问题。

你直接根据e.Node.Text去写代码吧------怎么写呢?请帮忙。


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


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

比如

 

Filter = "[模块维护人] = '" & e.Node.Text & "' "


 回到顶部