2017-09-18 7 views
1

웹 테이블이 50 개 이상의 페이지, 페이지 당 20 개의 레코드로 분리되어 있습니다. SQL DB에 대해 확인해야합니다.웹 테이블과 DB 테이블 비교 : 코드 건너 뛰기 DB 레코드

페이지는 같은 테이블의 하단에 링크로 표시됩니다 :

enter image description here

지금, 내 코드가 올바르게 다음 페이지 (현재 페이지 + 1)을 클릭하고 문제없이 10 1 페이지를 확인합니다. 그러나 마지막 링크 (...)를 클릭하여 11 페이지로 이동하면 DB 테이블에서 20 개 레코드를 건너 뛰고 DB에서 레코드 221 인 웹 테이블에서 레코드 201을 확인하기 시작합니다. 그게 뭐가 잘못 되었 니? 여기

는 내가 가지고있는 코드 :

set PagesLink=description.Create 
PagesLink("micclass").Value = "Link" 
PagesLink("html tag").Value = "A" 

Do Until DBMaintenanceRS.EOF 
Set PagesCollection = .WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").ChildObjects(PagesLink) 'Get links to pages. 10 links to pages are showed in bottom of table. 

print PagesCollection.Count 

For pc = 0 To PagesCollection.Count-1 'start pages loop 

For rc = 2 to .WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").RowCount-1 'start table rows loop 
     For cc = 2 To .WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").ColumnCount(1) 'start table columns loop 
      wCell = .WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").GetCellData(rc, cc) 
      dbCell = DBMa 

intenanceRS.Fields(cc-2) 
        If trim(dbCell) = trim(wCell) Then 
         Print "Pass" 
        Else 
         print "FAIL::: ID="&.WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").GetCellData(rc, 2)&"-Column='"&.WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").GetCellData(1, cc)&"'-Value="&wCell&"-=-VS DB: "&dbCell 
        End If 

      Next 

      cc="" 
      wcell="" 
      dbcell="" 
      DBMaintenanceRS.MoveNext 
     Next 
    rc="" 
    print pc&"-=-"& PagesCollection(pc).GetROProperty("innertext") 

    If pc=0 Then 
     If NOT(PagesCollection(pc).GetROPRoperty("innertext")="...") Then 
      PagesCollection(pc).Click 
     End If 
Else 
    PagesCollection(pc).Click 
End If 
.Sync 
wait 1 

Set PagesCollection = .WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").ChildObjects(PagesLink) 
Next 
print "Next 10 pages" 
pc=0 
Set PagesCollection = .WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").ChildObjects(PagesLink) 
print DBMaintenanceRS.Fields(0) 
Loop 
+1

3 개의 'For' 루프가 서로 중첩되어 있습니다. '...'을 클릭하면 코드가 새로운 페이지로 취급되지만 행 개수가 없으면 DB 데이터와 비교할 데이터가 없으므로 10 개의 레코드는 건너 뜁니다. – Dave

+0

제안을 피하는 방법은 무엇입니까? – Salek

+0

@Salek 링크 '...'를 클릭하면 어떻게됩니까? 페이지 1 ~ 10에 대한 링크가 계속 표시됩니까? 또는 10-20의 링크 뒤에'... '가 붙은 링크 만 보입니까? – Gurman

답변

0

귀하의 행 카운트 변수 (rc) 세계적 행을 계산하지만 웹 페이지 만의 행의 현재 (21..40을 포함합니다 예) 행 21은 실제로 현재 WbfGrid의 첫 번째 행이라고 생각합니다.

DB 행과 WbfGrid 행에 대해 별도의 카운터가 있어야합니다.

+0

어떤 제안을 피하는 방법? – Salek

+0

@Salek는 두 개의 개별 변수가 있고'... ' – Motti