Foxtable(狐表)用户栏目专家坐堂 → 请教狐爸,三级目录树如何写


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

主题:请教狐爸,三级目录树如何写

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


加好友 发短信
等级:幼狐 帖子:125 积分:1140 威望:0 精华:0 注册:2012/11/17 9:34:00
请教狐爸,三级目录树如何写  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/2 11:20:00 [只看该作者]

一样的,判断为最后一层节点区域需要多加一个判断, 你上个例子吧.

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


加好友 发短信
等级:幼狐 帖子:125 积分:1140 威望:0 精华:0 注册:2012/11/17 9:34:00
  发帖心情 Post By:2013/12/2 11:26:00 [只看该作者]

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

 

万分感谢您


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/2 11:39:00 [只看该作者]

既然不会,就上个例子.否则我直接写,有可能会不符合实际情况,到时候又要修改折腾.

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/12/2 11:40:00 [只看该作者]

你原来的代码 拿上来 看看

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


加好友 发短信
等级:幼狐 帖子:125 积分:1140 威望:0 精华:0 注册:2012/11/17 9:34:00
  发帖心情 Post By: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
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/12/2 11:45:00 [只看该作者]

这个是输入的代码 跟生成的代码浑身不搭界的 

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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

 

不起眼,但是非常有用。


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


加好友 发短信
等级:幼狐 帖子:125 积分:1140 威望:0 精华:0 注册:2012/11/17 9:34:00
  发帖心情 Post By:2013/12/2 12:37:00 [只看该作者]

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

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

 

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


 回到顶部