以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何实现此功能  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=121436)

--  作者:vxzx
--  发布时间:2018/7/6 11:00:00
--  [求助]如何实现此功能
某一行中,【第一列】单元格内选择 “A”,则出现“B”“C”“D”选择项,选择任意一项后,选项内容出现在该行的【第二列】单元格内?

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

--  作者:有点甜
--  发布时间:2018/7/6 11:07:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/1528.htm

 

http://www.foxtable.com/webhelp/scr/1843.htm

 


--  作者:vxzx
--  发布时间:2018/7/7 8:22:00
--  
有没有办法能实现,[第一列]与[第二列]相互约束? 即[第一列]选择 “A”,则出现“B”“C”“D”选择项出现在[第二列],而在[第二列]选择“B”“C”“D”,则[第一列]只出现"A"的结果?
--  作者:有点蓝
--  发布时间:2018/7/7 9:10:00
--  
用法一样啊,差不多也就是把列名调换一下位置而已
--  作者:vxzx
--  发布时间: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

--  作者:有点蓝
--  发布时间: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
--  发布时间:2018/7/10 8:48:00
--  
感谢大神,按你的码,改了下名称就解决了 。