以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教狐爸,三级目录树如何写  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43203)

--  作者:发哥
--  发布时间:2013/12/2 11:13:00
--  请教狐爸,三级目录树如何写


图片点击可在新窗口打开查看此主题相关图片如下:未标题-1.jpg
图片点击可在新窗口打开查看
利用教程,学会了二级目录树的制作,但三级目录树不会,。如下图

 

烦请狐爸帮手改下如下代码,(区域/省份/客户名称)

 

If e.Node.Level = 1 Then \'如果单击的是第二层节点
    Dim ps() As String = e.Node.FullPath.Split("\\")
    Dim tr As Row = Tables("费用主表").Current
    Dim dr As DataRow = DataTables("商家信息表").Find("区域 = \'" & ps(0) & "\' And 客户名称 = \'" & ps(1) & "\'")
    If dr IsNot Nothing Then \'如果在行政区域表找到对应的行,则将此行的值写入客户表的当前行.
        tr("区域") = dr("区域")
        tr("省份") = dr("省份")
        tr("客户名称") = dr("客户名称")
        tr("分销商") = dr("分销商")
        e.Form.DropDownBox.Value = tr("客户名称") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    End If
    e.Form.DropDownBox.CloseDropdown()
End If

 

谢谢,


--  作者:Bin
--  发布时间:2013/12/2 11:20:00
--  
一样的,判断为最后一层节点区域需要多加一个判断, 你上个例子吧.
--  作者:发哥
--  发布时间:2013/12/2 11:26:00
--  

谢谢,我不会写,麻烦您在此上面的基础上修正一下,加个“省份”,发个代码给我,

 

万分感谢您


--  作者:Bin
--  发布时间:2013/12/2 11:39:00
--  
既然不会,就上个例子.否则我直接写,有可能会不符合实际情况,到时候又要修改折腾.
--  作者:blackzhu
--  发布时间:2013/12/2 11:40:00
--  
你原来的代码 拿上来 看看
--  作者:发哥
--  发布时间:2013/12/2 11:43:00
--  

我的原代码如下(是二级目录),烦请问能否在此代码上改成三级目录呢

 

If e.Node.Level = 1 Then \'如果单击的是第二层节点
    Dim ps() As String = e.Node.FullPath.Split("\\")
    Dim tr As Row = Tables("费用主表").Current
    Dim dr As DataRow = DataTables("商家信息表").Find("区域 = \'" & ps(0) & "\' And 客户名称 = \'" & ps(1) & "\'")
    If dr IsNot Nothing Then \'如果在行政区域表找到对应的行,则将此行的值写入客户表的当前行.
        tr("区域") = dr("区域")
        tr("省份") = dr("省份")
        tr("客户名称") = dr("客户名称")
        tr("分销商") = dr("分销商")
        e.Form.DropDownBox.Value = tr("客户名称") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    End If
    e.Form.DropDownBox.CloseDropdown()
End If


--  作者:blackzhu
--  发布时间:2013/12/2 11:45:00
--  
这个是输入的代码 跟生成的代码浑身不搭界的 
--  作者:狐狸爸爸
--  发布时间:2013/12/2 12:02:00
--  

楼主是已经生成了目录树,不会写双击输入的代码?

 

如果用是的foxtable内置的方法自动生成的目录树,那是相当简单的:

 

If e.Node.Level = 2 Then \'如果单击的是第三层节点
    Dim ps() As String = e.Node.FullPath.Split("\\")
    Dim tr As Row = Tables("费用主表").Current
    Dim dr As DataRow = e.Node.DataRow

    If dr IsNot Nothing Then \'如果在行政区域表找到对应的行,则将此行的值写入客户表的当前行.
        tr("区域") = dr("区域")
        tr("省份") = dr("省份")
        tr("客户名称") = dr("客户名称")
        tr("分销商") = dr("分销商")
        e.Form.DropDownBox.Value = tr("客户名称") \'这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
    End If
    e.Form.DropDownBox.CloseDropdown()
End If

 

注意这个属性:

http://www.foxtable.com/help/topics/2689.htm

 

不起眼,但是非常有用。


--  作者:发哥
--  发布时间:2013/12/2 12:37:00
--  

图片点击可在新窗口打开查看哈哈,谢谢狐爸爸,

直接复制过去,就成了!!!!!虽然不明白是咋回事,

 

哈哈,亲一口狐爸,,,,图片点击可在新窗口打开查看