以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助 查找控件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=46248)

--  作者:jianjingmaoyi
--  发布时间:2014/2/19 22:05:00
--  求助 查找控件
 表A 在窗口名称列输入窗口名字,在控件名称列可以下拉出,找出在测试表中相对应的控件类型为按钮的名字\'

是根据   key码和  p Key 有相同的值来找.

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:查找.table






[此贴子已经被作者于2014-2-19 22:06:45编辑过]

--  作者:jianjingmaoyi
--  发布时间:2014/2/19 22:36:00
--  
有点甜 请帮忙
--  作者:有点甜
--  发布时间:2014/2/19 22:40:00
--  
 呃,什么意思?如果要查询,不是直接查就行了?是说列出此窗口所有的按钮名字就行了?

 如果要做下拉,可以参考自定义窗口那里做一个下拉窗口。

 再有就是,你的表不规范,每一行都应该填入所有表者

--  作者:jianjingmaoyi
--  发布时间:2014/2/19 22:42:00
--  
 我就需要这个结构找控件的名字 类似于递归函数的做法
[此贴子已经被作者于2014-2-19 22:43:17编辑过]

--  作者:有点甜
--  发布时间:2014/2/19 22:46:00
--  
 规则是什么?只是根据表名查找所有的控件名?
--  作者:jianjingmaoyi
--  发布时间:2014/2/19 22:51:00
--  
Dim Arys As List(Of String())
Arys = DataTables("测试").GetValues("窗口以及控件姓名|Key","控件类型=\'窗口\'")
For Each Ary As String() In Arys
    Dim drs As List(Of DataRow)
    drs = DataTables("测试").Select("ParentKey=\'" & Ary(1)& "\'And 控件类型=\'按钮\'")
    For Each dr As DataRow In drs
        Output.Show(Ary(0) & "|" & dr("窗口以及控件姓名"))  \'到这一步返回的窗口按钮控件的名字是对的
        Dim drs1 As List(Of DataRow)
        drs1 = DataTables("测试").Select("窗口以及控件姓名=\'" & dr("窗口以及控件姓名") & "\'")
        For Each dr1 As DataRow In drs1
            \'  Output.Show(dr1("key"))
            \' Dim drs2 As List(Of DataRow)
            Dim dr2 As DataRow = DataTables("测试").Find("Key=\'" & dr1("ParentKey") & "\'")
            If  dr2 IsNot Nothing
                \'  Output.Show(dr2("窗口以及控件姓名"))
            End If
        Next
    Next
Next

我写了一部分  我需要返回容器内的控件名字

--  作者:jianjingmaoyi
--  发布时间:2014/2/19 23:02:00
--  
搞定了,谢谢
--  作者:有点甜
--  发布时间:2014/2/19 23:19:00
--  
 呃……可以参考递归函数来做

内部函数(递归)
Dim drs As List(Of DataRow) = args(0)
Dim fname As String = args(1)

For Each dr As DataRow In drs
    If dr.IsNull("ParentKey") Then
        fname = dr("窗口以及控件姓名")
    End If
    If dr("控件类型") = "按钮" Then
        output.show(fname & "|" & dr("窗口以及控件姓名"))
    End If
    Functions.Execute("递归", DataTables("测试").Select("parentKey = \'" & dr("key") & "\'"), fname)
Next

调用
Dim drs As List(Of DataRow) = DataTables("测试").Select("parentKey is null")
Functions.Execute("递归", drs, "")

--  作者:blackzhu
--  发布时间:2014/2/20 9:11:00
--  
谢谢 有点甜 我试试
--  作者:程兴刚
--  发布时间:2014/2/20 9:38:00
--  
哈,老朱,您这样的马甲还有何意义?图片点击可在新窗口打开查看