设置 PageSize、PageNumber 并在页面之间切换

Set PageSize, PageNumber and switch between pages

我有一个包含数百或数千个项目的页面。网页大小由用户手动设置,选择 s/he 想要查看的项目数(选项为 25,50,100,200)。视情况而定,项目将出现在多个页面中。

为了验证每一项,我有一个SQL。我只想检查当前显示在屏幕上的项目,即 100 项中的第 26 到 50 项。

接下来我尝试了:

ItemsOnPage = mybrowser.webelement(...).GetROProperty("innertext")
Set aRecordSet= objconnection.Execute(Query)
    aRecordSet.PageSize = ItemsOnPage 
    print aRecordSet.PageNumber

aRecordSet.PageNumber 保持为 -1,与 PageSize 无关,如果我不设置 PageSize 也是如此。

此外,需要根据当前 Web 页面设置页码:

    wCurrentPage = mybrowser.webElement(...).GetROProperty("innertext")

我尝试了下一个选项:

aRecordSet.AbsolutePage = wCurrentPage
aRecordSet.AbsolutePosition = 2+(ItemsOnPage *(wCurrentPage-1))

打开对象时不允许返回这些命令 errors:Operation。并且

aRecordSet.CursorLocation = 1+(ItemsOnPage *(wCurrentPage-1))

返回 "Current Recordset does not support bookmarks."

如何实现?

更新:获取数据的查询是:

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 查询 运行。

您可以通过几种不同的方式配置记录集以供使用。我们在 ADO 客户端的网站上进行分页,效果很好。在建立数据库连接后尝试添加以下内容:

objconnection.CursorLocation = adUseClient

如果未定义adUseClient,则将其设置为3

Here are the docs for CursorLocation.

我无法配置我的 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 设置页数或记录数。