Foxtable(狐表)用户栏目专家坐堂 → [求助]如何实现此功能


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

主题:[求助]如何实现此功能

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


加好友 发短信
等级:幼狐 帖子:64 积分:632 威望:0 精华:0 注册:2018/3/25 16:34:00
[求助]如何实现此功能  发帖心情 Post By:2018/7/6 11:00:00 [只看该作者]

某一行中,【第一列】单元格内选择 “A”,则出现“B”“C”“D”选择项,选择任意一项后,选项内容出现在该行的【第二列】单元格内?

有没有相关的资料,谢谢。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/6 11:07:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:64 积分:632 威望:0 精华:0 注册:2018/3/25 16:34:00
  发帖心情 Post By:2018/7/7 8:22:00 [只看该作者]

有没有办法能实现,[第一列]与[第二列]相互约束? 即[第一列]选择 “A”,则出现“B”“C”“D”选择项出现在[第二列],而在[第二列]选择“B”“C”“D”,则[第一列]只出现"A"的结果?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106103 积分:539626 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/7 9:10:00 [只看该作者]

用法一样啊,差不多也就是把列名调换一下位置而已

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


加好友 发短信
等级:幼狐 帖子:64 积分:632 威望:0 精华:0 注册:2018/3/25 16:34:00
  发帖心情 Post By:2018/7/9 19:19:00 [只看该作者]

一直改都没有达到 我想要的功能,就是 当两列是空值时,分别显示自己的下拉项,当第一列选择后,第二列显示对应的下拉项。当清空两列时,再显示回各自的下拉项,这时在第二列选择下拉项后,第一列又会显示对应的下拉项。

试了很多都不行,没学过编程,只能自己摸索,都不知道错在哪。

If e.Row("产品名称") Is Nothing AndAlso e.Row("配方名称") Is Nothing Then
Dim dt As DataTable = DataTables("下拉项目")
Dim dr As DataRow 
For Each c As Col In CurrentTable.Cols
    dr = dt.Find("[表] = '" & CurrentTable.DataTable.Name & "' And [列] = '" & c.Name & "'")
    If dr IsNot Nothing Then
        c.ComboList = dr("列的下拉项目")
End If
Next   
End If
If e.IsFocusCell Then
    If e.Col.Name = "配方名称" Then
        Dim dr As DataRow 
        dr = DataTables("配方对应产品").Find("对应料品名称 = '" & e.Row("产品名称") & "'")
        If dr IsNot Nothing 
            e.Col.ComboList = dr("配方名称汇总")
        End If
    End If
End If

If e.IsFocusCell Then
    If e.Col.Name = "产品名称" Then
        Dim dr As DataRow 
        dr = DataTables("配方对应产品").Find("配方名称汇总 = '" & e.Row("配方名称") & "'")
        If dr IsNot Nothing 
            e.Col.ComboList = dr("对应料品名称")
    End If
End If
End If

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106103 积分:539626 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/9 20:17:00 [只看该作者]

If e.IsFocusCell Then
    Dim dt As DataTable = DataTables("下拉项目")
    If e.Col.Name = "配方名称" Then
        Dim dr As DataRow
        dr = DataTables("配方对应产品").Find("对应料品名称 = '" & e.Row("产品名称") & "'")
        If dr IsNot Nothing
            e.Col.ComboList = dr("配方名称汇总")
        Else
            dr = dt.Find("[表] = '" & e.Table.Name & "' And [列] = '" & e.Col.Name  & "'")
            If dr IsNot Nothing Then
                e.Col.ComboList = dr("列的下拉项目")
            End If
        End If
    ElseIf e.Col.Name = "产品名称" Then
        Dim dr As DataRow
        dr = DataTables("配方对应产品").Find("配方名称汇总 = '" & e.Row("配方名称") & "'")
        If dr IsNot Nothing
            e.Col.ComboList = dr("对应料品名称")
        Else
            dr = dt.Find("[表] = '" & e.Table.Name & "' And [列] = '" & e.Col.Name  & "'")
            If dr IsNot Nothing Then
                e.Col.ComboList = dr("列的下拉项目")
            End If
        End If
    End If
    
End If

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


加好友 发短信
等级:幼狐 帖子:64 积分:632 威望:0 精华:0 注册:2018/3/25 16:34:00
  发帖心情 Post By:2018/7/10 8:48:00 [只看该作者]

感谢大神,按你的码,改了下名称就解决了 。

 回到顶部