我有一个包含数百或数千个项目的页面。网页大小由用户手动设置,选择他/她想要查看的项目数(选项为25,50,100,200)。根据不同,项目将显示在多个页面中。
要验证每个项目,我有一个SQL。我想只检查当前屏幕上的项目,即项目26到50中的100项。
我接下来试过了:
ItemsOnPage = mybrowser.webelement(...).GetROProperty("innertext")
Set aRecordSet= objconnection.Execute(Query)
aRecordSet.PageSize = ItemsOnPage
print aRecordSet.PageNumber
aRecordSet.PageNumber
保持为-1,不依赖于PageSize,以及如果我没有设置PageSize。
另外,需要根据Web上的当前页面设置PageNumber:
wCurrentPage = mybrowser.webElement(...).GetROProperty("innertext")
我尝试了下一个选项:
aRecordSet.AbsolutePage = wCurrentPage
aRecordSet.AbsolutePosition = 2+(ItemsOnPage *(wCurrentPage-1))
这些命令返回错误:对象打开时不允许操作。和
aRecordSet.CursorLocation = 1+(ItemsOnPage *(wCurrentPage-1))
返回"当前记录集不支持书签。"
如何实现?
UPD:获取数据的查询是:
SELECT * FROM tblCustomerMetricData
WHERE RunDate = '"&webGetDate&"' AND
CustomerID in
(SELECT CustomerID from [tblCustomers]
where RegionID in (SELECT RegionID FROM [tblRegion]
WHERE RegionName = '"&webRegionName&"')) OR CustomerID in (SELECT CustomerID from [tblCustomers]
where CustomerName = '"&webCustomerName&"'))
任何以" web"开头的东西被视为变量从用户设置的网页获取值。查询由UFT运行。
答案 0 :(得分:0)
您可以使用几种不同的方法配置Recordset以供使用。我们在ADO客户端的网站上进行分页,效果很好。在建立数据库连接后尝试添加以下内容:
objconnection.CursorLocation = adUseClient
如果未定义adUseClient
,请将其设置为3
。
答案 1 :(得分:0)
我无法配置我的Recordset - 不确定是否因为我不能或因为提供商不支持。 我继续使用这个解决方案:
pagesnumber = mybrowser(...).Webedit(...).GetROProperty("innertext") 'get pages on web
for p = 1 to pagesnumber-1
for r = 0 to webtable.rowcount
for c = 0 to webtable.columncount(1)
(comparing by cell by row here)
next 'loop columncount
Recordset.MoveNext
next 'loop rowcount
next 'loop pagesnumber
因此,我不需要为Recordset设置页面或记录编号。