51Testing软件测试论坛

标题: 怎样得到winlistview里具体某一行某一列的值? [打印本页]

作者: 戒情人    时间: 2009-8-20 15:29
标题: 怎样得到winlistview里具体某一行某一列的值?
Window("系统管理").WinListView("SysListView32").GetItemProperty(0,"text"),我看了帮助文档,感觉好象是这个方法,但是在一个系统上试验时发现得不到那个表格的值,还请大家给予指导?
作者: 戒情人    时间: 2009-8-20 16:42
标题: 请朋友们帮忙啊
公司一个正在进行的项目遇到了这个问题,请朋友们帮忙啊
作者: dabie    时间: 2009-8-20 17:27
getsubitem
作者: 戒情人    时间: 2009-8-20 17:48
标题: 回复 3# 的帖子
非常感谢你,真的。那你告诉我我写的哪个例子最后得到的是什么呢/帮助文档都是英问,我看了也不是很明白。麻烦你了
作者: 戒情人    时间: 2009-8-21 12:17
标题: 我写的脚本最后得到的是什么呢
我写的哪个例子最后得到的是什么呢?请大家帮忙
作者: zhangwl0417    时间: 2009-8-21 14:37
Function SetCellRow(obj1,obj2,obj3,height,devname,val)
        If devname = "" Then
                Exit Function
        Else
                If obj1.Exist And obj2.Exist Then
                        abs_y1 = obj1.GetROProperty("abs_y")
                        height1 = obj1.GetROProperty("height")
                        abs_y2 = obj2.GetROProperty("abs_y")
                        height2 = obj2.GetROProperty("height")
                        height = CInt(height)
                        Row = CInt((abs_y2-(height/2-height2/2)-abs_y1-height)/height)
                        If obj3.WpfCheckBox("devname:=" &devname,"index:=" &Row).Exist Then
                                obj3.WpfCheckBox("devname:=" &devname,"index:=" &Row).set val
                        Else
                                Reporter.ReportEvent 3,OF011,""
                        End If
                Else
                        Reporter.ReportEvent 3,OF012,""
                End If
        End If
End Function

你用这个函数看看吧
作者: liujinkui    时间: 2009-8-21 22:18
标题: 看懂这个你就明白怎样做了。
Sub GetItemProperty_Example()
sReport = ""
cTabs = -1
sPath =  Window("xxxx").WinTreeView("SysTreeView32").GetItem(0)
While sPath <> ""
    sTabs = ""
    For iTab = 0 To cTabs
        sTabs = sTabs & "-->"
    Next
    sReport = sReport & sTabs &  Window("xxx").WinTreeView("SysTreeView32").GetITemProperty(sPath, "Text") & vbCr
    If  Window("xxxx").WinTreeView("SysTreeView32").GetITemProperty(sPath, "HasChildren") Then
         Window("xxx").WinTreeView("SysTreeView32").Expand (sPath)
        sPath =  Window("xxx").WinTreeView("SysTreeView32").GetITemProperty(sPath, "FirstChild")
        cTabs = cTabs + 1
    ElseIf  Window("xxx").WinTreeView("SysTreeView32").GetITemProperty(sPath, "NextSibling") <> "" Then
        sPath =  Window("xxx").WinTreeView("SysTreeView32").GetITemProperty(sPath, "NextSibling")
    Else
        sPath =  Window("xxx").WinTreeView("SysTreeView32").GetITemProperty(sPath, "Parent")
         Window("xxx").WinTreeView("SysTreeView32").Collapse (sPath)
        cTabs = cTabs - 1
        sPath =  Window("xxx").WinTreeView("SysTreeView32").GetITemProperty(sPath, "NextSibling ")
    End If
Wend
MsgBox sReport
End Sub
作者: liujinkui    时间: 2009-8-23 14:22
没明白再问。
作者: 戒情人    时间: 2009-8-24 10:34
标题: 还需要你的指教
很佩服你,你是个非常热心的高手,可是我看代码的能力确实不高,你能否用中文解释一下我的问题?麻烦了.我的意思是把每一个字段当作一列。我说的某一行某一列的意思就是某一行对应的某个字段。

[ 本帖最后由 戒情人 于 2009-8-24 17:09 编辑 ]
作者: liujinkui    时间: 2009-8-24 19:46
WinTreeView 只是多行,没有列。
你这个不是一个DataGrid吗?

sPath =  Window("xxxx").WinTreeView("SysTreeView32").GetItem(0)
执行上面的语句 Watch 一下sPath 得到的值是什么。
作者: 戒情人    时间: 2009-8-25 09:13
这个表格的数据存在数据库中的一个表中,这个数据库中的表中的每一条数据都有一个行号,字段名是Rowid.执行那条语句会得到数据库中对应的那条记录的Rowid。这是我不明白的地方,我感觉那个脚本返回的结果应该是表格中的某条记录的值,但是怎么会返回数据库中的一个Rowid呢?你能明确的告诉我那个语句应该得到什么结果吗?
作者: liujinkui    时间: 2009-8-25 10:15
我想知道是不是 WinTreeView对象
sPath =  Window("xxxx").WinTreeView("SysTreeView32").GetItem(0)
sPath 应该返回的是第一行的内容
我想知道它返回的是什么值。
作者: 戒情人    时间: 2009-8-25 10:30
WinListView对象,GetItem(0)
得到的是1,即这条记录在数据库的表中的Rowid是1,是书库库的表中的第一条记录
作者: liujinkui    时间: 2009-8-25 13:30
那我也只能关注了。
因为我也没有找到支持Grid控制的好方法
作者: liujinkui    时间: 2009-8-25 13:33
那你执行这条语句得到的是什么?
sPath =  Window("xxxx").WinTreeView("SysTreeView32").GetItem(0)
sPath =  Window("xxx").WinTreeView("SysTreeView32").GetITemProperty(sPath, "FirstChild")
这种你看看sPath得到的是什么?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2