以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  筛选树报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144845)

--  作者:lgz518
--  发布时间:2019/12/31 14:14:00
--  筛选树报错
报错:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.12.17.18
错误所在事件:窗口,产品BOM导入,TreeView1,NodeMouseDoubleClick
详细错误信息:
列“分类”不属于表 产品材料明细。


设计代码如下:

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("产品材料明细", "产品类别|主类|次类")
trv.Nodes.Insert("显示所有行",0)


Dim Filter As String
Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
If e.Node.Text <> "显示所有行" Then
    Select Case e.Node.Level
        Case 0
            Filter = "[产品类别] = \'" & dr("产品类别") & "\'"
        Case 1
            Filter = "[产品类别] = \'" & dr("产品类别") & "\' And [主类] = \'" & dr("主类") & "\'"
        Case 2
            Filter = "[产品类别] = \'" & dr("产品类别") & "\' And [主类] = \'" & dr("主类") & "\' And [分类] = \'" & dr("分类") & "\'"
    End Select
End If
Tables("产品材料明细").Filter = Filter


1.如何处理报错?
2.产品类别,有"产品,材料”,上面代码显示是,“材料,产品”,如何想按自定按,“产品,材料"显示?




--  作者:有点蓝
--  发布时间:2019/12/31 14:22:00
--  
1、没有“分类”这个列名:Filter = "[产品类别] = \'" & dr("产品类别") & "\' And [主类] = \'" & dr("主类") & "\' And [分类] = \'" & dr("分类") & "\'"

2、没看懂,截图说明一下

--  作者:lgz518
--  发布时间:2019/12/31 14:52:00
--  
找到问题,解决了,谢谢
--  作者:lgz518
--  发布时间:2019/12/31 16:59:00
--  
表的类型,Normal,改为副表时,筛选是狐表的表,不是窗口上的表,我要筛选窗口上的表,要如何做?
--  作者:有点蓝
--  发布时间:2019/12/31 17:10:00
--  
看看:http://www.foxtable.com/webhelp/topics/1906.htm
--  作者:lgz518
--  发布时间:2020/1/2 15:07:00
--  


1.
表的类型,Normal,改为副表时,筛选是狐表的表,不是窗口上的表,在窗体还是没显示
筛选

Tables("产品材料明细").Filter = Filter   改为  Tables("产品B_产品材料明细").Filter = Filter 

2.在表属性,放下面代码,想实现主表和明细表及其他都能调用,材料明细,但就是实现一个,有时,主表或明细,如何二个表或多个表引用?

--------------------有问题---------------------------------------
Dim t As Table = e.Form.Controls("材料明细").Table
For k As Integer = t.TopRow To t.BottomRow
    Dim r As Row = t.Rows(k)
    If r("选中") = True Then
        Dim nma() As String = {"产品编号","品名","规格","主类","材质","产品图示","进价"} 
        Dim nmb() As String = {"物料号","材料名称","材料规格","部件","材质","材料图示","进价"}  
        Dim dr As Row = Tables("B.M").AddNew
        For i As Integer = 0 To nma.Length - 1
            dr(nmb(i)) = r(nma(i))
        Next
    End If
Next

Dim f As Table = e.Form.Controls("材料明细").Table
For d As Integer = t.TopRow To t.BottomRow
    Dim r As Row = t.Rows(d)
    If r("选中") = True Then
        Dim nme() As String = {"产品编号","品名","规格","单位","版次"}
        Dim nmd() As String = {"产品编号","产品名称","规格","单位","版次"}  
        Dim dr As Row = Tables("B").AddNew
        For i As Integer = 0 To nme.Length - 1
            dr(nmd(i)) = r(nme(i))
        Next
    End If
Next

--  作者:有点蓝
--  发布时间:2020/1/2 15:22:00
--  
一次只能操作一个表
--  作者:lgz518
--  发布时间:2020/1/2 15:26:00
--  
1.
表的类型,Normal,改为副表时,筛选是狐表的表,不是窗口上的表,在窗体还是没显示
筛选

Tables("产品材料明细").Filter = Filter   改为  Tables("产品B_产品材料明细").Filter = Filter 

--  作者:lgz518
--  发布时间:2020/1/2 15:29:00
--  
Normal,改为副表时,不能筛选(目录树)?如果可以代码怎么改?
--  作者:有点蓝
--  发布时间:2020/1/2 15:36:00
--  
肯定可以。搞不定就上传实例