以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  窗口设计,fill两次执行结果不同  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=159969)

--  作者:lsjt_1979
--  发布时间:2021/1/15 18:22:00
--  窗口设计,fill两次执行结果不同
老师好:
我在查询窗口中用combobox和目录树配合,当第一次选择所有数据时,执行结果没有问题,显示所有列,当选择其他选项后,再重新选择所有数据,结果显示的还是之前的数据,没有恢复到所有数据

图片点击可在新窗口打开查看此主题相关图片如下:161070115067(1).png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:1111610705101(1).png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:1610705142111(1).png
图片点击可在新窗口打开查看



Dim Filter As String
Dim txt As WinForm.ComboBox = e.Form.Controls("ComboBox1")

If  Tables("对账单主界面_Table1").Rows.Count>0 Then
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
    If txt.Value="所有数据" Then
        If e.Node.Text <> "显示所有列" Then
            Sel ect Case e.Node.Level
                Case 0
                    Filter = "[年度] = \'" & dr("年度") & "\'"
                    Tables("对账单主界面_Table1").Filter = Filter
                    Tables("对账单主界面_Table1").SetColVisibleWidth("月份|40|订单编号|110|箱型|60|箱号|60|承运方|60|铁路运费|60|报关行|60|报关费|60|车队|60|拖车费|60|装箱货场|60|装箱费|60|加固队|60|加固费|60|代码公司|60|境外运费USD|60|单据费|60|单证公司|60|单证费|60|口岸代理|60|查验费|60|滞留费|60|放射放行费|60|退运运费|60|落地交付费|60|人民币杂费|60|美元杂费|60|卖箱公司|60|买箱款|60|备注|60")
                    
                Case 1
                    Filter = "[月份] = \'" & dr("月份") & "\' and [年度] = \'" & dr("年度") & "\'"
                    Tables("对账单主界面_Table1").Filter = Filter
                    Tables("对账单主界面_Table1").SetColVisibleWidth("订单编号|110|箱型|60|箱号|60|承运方|60|铁路运费|60|报关行|60|报关费|60|车队|60|拖车费|60|装箱货场|60|装箱费|60|加固队|60|加固费|60|代码公司|60|境外运费USD|60|单据费|60|单证公司|60|单证费|60|口岸代理|60|查验费|60|滞留费|60|放射放行费|60|退运运费|60|落地交付费|60|人民币杂费|60|美元杂费|60|卖箱公司|60|买箱款|60|备注|60")
                    
                Case 2
                    Filter = "[订单编号] = \'" & dr("订单编号") & "\' and [年度] = \'" & dr("年度") & "\' And [月份] = \'" & dr("月份") & "\' "
                    Tables("对账单主界面_Table1").Filter = Filter
                    Tables("对账单主界面_Table1").SetColVisibleWidth("箱型|60|箱号|60|承运方|60|铁路运费|60|报关行|60|报关费|60|车队|60|拖车费|60|装箱货场|60|装箱费|60|加固队|60|加固费|60|代码公司|60|境外运费USD|60|单据费|60|单证公司|60|单证费|60|口岸代理|60|查验费|60|滞留费|60|放射放行费|60|退运运费|60|落地交付费|60|人民币杂费|60|美元杂费|60|卖箱公司|60|买箱款|60|备注|60")
  
            End Select
        Else
            Filter = ""
            Tables("对账单主界面_Table1").Filter = Filter
            Tables("对账单主界面_Table1").SetColVisibleWidth("年度|60|月份|40|订单编号|110|箱型|60|箱号|60|承运方|60|铁路运费|60|报关行|60|报关费|60|车队|60|拖车费|60|装箱货场|60|装箱费|60|加固队|60|加固费|60|代码公司|60|境外运费USD|60|单据费|60|单证公司|60|单证费|60|口岸代理|60|查验费|60|滞留费|60|放射放行费|60|退运运费|60|落地交付费|60|人民币杂费|60|美元杂费|60|卖箱公司|60|买箱款|60|备注|60")
        End If
    End If
    If txt.Value="承运方" Then
        If e.Node.Text <> "显示所有列" Then
            Select Case e.Node.Level
                Case 0
                    Filter = "[年度] = \'" & dr("年度") & "\'"
                    Tables("对账单主界面_Table1").Filter = Filter
                    Tables("对账单主界面_Table1").SetColVisibleWidth("月份|40|订单编号|110|箱号|98|箱型|98|承运方|98|铁路运费|98")
                Case 1
                    Filter = "[月份] = \'" & dr("月份") & "\' and [年度] = \'" & dr("年度") & "\'"
                    Tables("对账单主界面_Table1").Filter = Filter
                    Tables("对账单主界面_Table1").SetColVisibleWidth("订单编号|110|箱号|98|箱型|98|承运方|98|铁路运费|98")
                Case 2
                    Filter = "[承运方] = \'" & dr("承运方") & "\' and [年度] = \'" & dr("年度") & "\' And [月份] = \'" & dr("月份") & "\' "
                    Tables("对账单主界面_Table1").Filter = Filter
                    Tables("对账单主界面_Table1").SetColVisibleWidth("订单编号|110|箱号|98|箱型|98|铁路运费|98")
                Case 3
                    Filter = "[承运方] = \'" & dr("承运方") & "\' and [年度] = \'" & dr("年度") & "\' And [月份] = \'" & dr("月份") & "\' and [订单编号] = \'" & dr("订单编号") & "\' "
                    Tables("对账单主界面_Table1").Filter = Filter
                    Tables("对账单主界面_Table1").SetColVisibleWidth("箱号|98|箱型|98|铁路运费|98")
            End Select
        Else
            Filter = ""
            Tables("对账单主界面_Table1").Filter = Filter
            Tables("对账单主界面_Table1").SetColVisibleWidth("年度|40|月份|40|订单编号|110|箱号|98|箱型|98|承运方|98|铁路运费|98")
        End If
    End If

[此贴子已经被作者于2021/1/15 18:23:08编辑过]

--  作者:有点蓝
--  发布时间:2021/1/16 9:08:00
--  
调试技巧:http://www.foxtable.com/webhelp/topics/1485.htm

If  Tables("对账单主界面_Table1").Rows.Count>0 Then
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
msgbox(txt.Value)
    If txt.Value="所有数据" Then
msgbox(e.Node.Text)
        If e.Node.Text <> "显示所有列" Then
            Sel ect Case e.Node.Level
                Case 0
                    Filter = "[年度] = \'" & dr("年度") & "\'"
                    Tables("对账单主界面_Table1").Filter = Filter
                    Tables("对账单主界面_Table1").SetColVisibleWidth("月份|40|订单编号|110|箱型|60|箱号|60|承运方|60|铁路运费|60|报关行|60|报关费|60|车队|60|拖车费|60|装箱货场|60|装箱费|60|加固队|60|加固费|60|代码公司|60|境外运费USD|60|单据费|60|单证公司|60|单证费|60|口岸代理|60|查验费|60|滞留费|60|放射放行费|60|退运运费|60|落地交付费|60|人民币杂费|60|美元杂费|60|卖箱公司|60|买箱款|60|备注|60")
                    
                Case 1
                    Filter = "[月份] = \'" & dr("月份") & "\' and [年度] = \'" & dr("年度") & "\'"
                    Tables("对账单主界面_Table1").Filter = Filter
                    Tables("对账单主界面_Table1").SetColVisibleWidth("订单编号|110|箱型|60|箱号|60|承运方|60|铁路运费|60|报关行|60|报关费|60|车队|60|拖车费|60|装箱货场|60|装箱费|60|加固队|60|加固费|60|代码公司|60|境外运费USD|60|单据费|60|单证公司|60|单证费|60|口岸代理|60|查验费|60|滞留费|60|放射放行费|60|退运运费|60|落地交付费|60|人民币杂费|60|美元杂费|60|卖箱公司|60|买箱款|60|备注|60")
                    
                Case 2
                    Filter = "[订单编号] = \'" & dr("订单编号") & "\' and [年度] = \'" & dr("年度") & "\' And [月份] = \'" & dr("月份") & "\' "
                    Tables("对账单主界面_Table1").Filter = Filter
                    Tables("对账单主界面_Table1").SetColVisibleWidth("箱型|60|箱号|60|承运方|60|铁路运费|60|报关行|60|报关费|60|车队|60|拖车费|60|装箱货场|60|装箱费|60|加固队|60|加固费|60|代码公司|60|境外运费USD|60|单据费|60|单证公司|60|单证费|60|口岸代理|60|查验费|60|滞留费|60|放射放行费|60|退运运费|60|落地交付费|60|人民币杂费|60|美元杂费|60|卖箱公司|60|买箱款|60|备注|60")
  
            End Select
        Else
            Filter = ""
            Tables("对账单主界面_Table1").Filter = Filter
msgbox(Tables("对账单主界面_Table1").Filter)
            Tables("对账单主界面_Table1").SetColVisibleWidth("年度|60|月份|40|订单编号|110|箱型|60|箱号|60|承运方|60|铁路运费|60|报关行|60|报关费|60|车队|60|拖车费|60|装箱货场|60|装箱费|60|加固队|60|加固费|60|代码公司|60|境外运费USD|60|单据费|60|单证公司|60|单证费|60|口岸代理|60|查验费|60|滞留费|60|放射放行费|60|退运运费|60|落地交付费|60|人民币杂费|60|美元杂费|60|卖箱公司|60|买箱款|60|备注|60")
msgbox(Tables("对账单主界面_Table1").GetColVisibleWidth)
        End If
    End If
    If txt.Value="承运方" Then