以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  通过筛选树找项目  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107753)

--  作者:有点甜
--  发布时间:2017/10/9 14:24:00
--  

参考代码

 

Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
Dim Filter As String = "专业编号 = \'" & dr("专业编号") & "\'"
e.form.controls("table1").Table.filter = filter


--  作者:有点蓝
--  发布时间:2017/11/18 16:14:00
--  
1楼项目我测试没有问题

您左边的目录树是如何生成的?

--  作者:有点蓝
--  发布时间:2017/11/18 16:37:00
--  
NodeMouseDoubleClick事件完整代码发出来看看
--  作者:有点蓝
--  发布时间:2017/11/18 17:07:00
--  
那不应该和6楼红色的代码有关系。

删除项目里的bin目录,重新打开项目试试

或者做个例子过来看看

--  作者:有点甜
--  发布时间:2017/11/19 17:14:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树找项目1118.foxdb


--  作者:有点甜
--  发布时间:2017/11/19 23:12:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树找项目1118 (1).foxdb


--  作者:有点甜
--  发布时间:2017/11/20 15:17:00
--  

新增的时候,工程名称赋值要唯一,如

 

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode = trv.SelectedNode
If nd IsNot Nothing Then
    If nd.Level = 2 Then
        MessageBox.Show("请选择单位工程再新建专业工程!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        Dim pr As DataRow = DataTables("项目结构").find("_Identify = " & nd.tag)
        Dim dr As Row = Tables("项目结构").AddNew()
        dr("项目编号") = pr("项目编号")
        dr("工程名称") = pr("工程名称")
        dr("单位工程") = "单位工程" & dr("_Identify")
        Dim bh As String= DataTables("项目结构").Compute("max(专业编号)","项目编号 = \'" & pr("项目编号") & "\' and 专业编号 like \'" & pr("项目编号")  & "-%\'")
        Dim id As Integer = 1
        If bh > "" Then
            id = cint(bh.SubString(pr("项目编号").Length + 1,2)) + 1
        End If
        dr("专业编号") = pr("项目编号") & "-" & Format(id,"00")
        If nd.Level = 0
            nd = nd.Nodes.Add("单位工程","单位工程" & dr("_Identify"))
        ElseIf nd.Level = 1
            nd = nd.ParentNode.Nodes.Add("单位工程", "单位工程" & dr("_Identify"))
        End If
        nd.tag = dr("_Identify")
        trv.SelectedNode = nd
        trv.Select()
        trv.BeginEdit()
    End If
End If


--  作者:有点甜
--  发布时间:2017/11/21 8:30:00
--  

同理啊,赋值的名称不能一样

 

nd = nd.Nodes.Add("专业工程", "专业工程" & dr("_Identify"))

 

dr("专业工程") = "专业工程" & dr("_Identify")


--  作者:有点甜
--  发布时间:2017/11/21 10:16:00
--  
以下是引用ZJZK2015在2017/11/21 9:10:00的发言:
有点甜老师你好:
16楼的代码还是不对的,加与不加一个样,如何处理?

 

1、新增的节点,重命名,肯定没问题。

 

2、旧节点重命名的时候,节点名称相同的都会被重命名,这个是一定的。


--  作者:有点甜
--  发布时间:2017/11/22 17:38:00
--  

 你的截图,没看懂你什么意思。

 

 你筛选的逻辑是什么,根据什么逻辑筛选数据?上传对应例子测试。