2015-02-23 1 views
0

Можно ли динамически добавлять новую строку во время выполнения на Qtatatable или excel sheet? Он должен быть динамическим, поскольку добавление новой строки зависит от количества строк данных, возвращаемых входными данными. Не похоже, что есть какой-либо метод, который добавляет строки либо в datatable, либо в excel, поэтому я не уверен, как справиться с этой проблемой.Динамическое добавление строк в QTP на основе значений в существующем столбце

Объект DataTable: 6 колонок и в настоящее время тестирования с 4 номера счетов для теперь как строки, так это выглядит примерно так:

столбец 1, столбец 2, столбец 3, столбец 4, столбец 5, столбец 6 счета 1 счетом 2 счетом 3 счетом 4

применение: веб-приложение, которое имеет номер счета в качестве входных данных, и может возвращать несколько строк данных. В настоящее время, если номер учетной записи возвращает несколько строк данных, он переходит на предыдущую запись. Мне нужно создать новую строку в предыдущей строке (так, чтобы она не была.) Переопределить предыдущую запись и b.) Ввести информацию предыдущих учетных записей в строке следующей учетной записи.

Вот псевдо-код для проверки:

Dim Rowcount, webrowcnt 
Rowcount=datatable.getsheet"Sheet name".GetRowCount 

For i=1 to Rowcount 
Datatable.GetSheet"Sheet name".SetCurrentRow(i) 
Browser("").Page("").Link("").Click 
Browser("").Page("").WebEdit("").Set DataTable("Row1", dtLocalSheet) 
Browser("").Page("").WebButton("").Click 

webrowcnt=Browser("").Page("").WebTable("").RowCount 

For n=3 to webrowcnt (note: n=3 because the data I need starts on row 3) 
If webrowcnt > 3 Then (note: this is where I want it to create a new row if there is more than 3 rows of data) 
For i=4 to webrowcnt 
some code here to create however many rows of data the account number has. 
Next 
End If 
column1 = Browser("").Page("").WebTable("").GetCellData(n, 1) 
DataTable("column1", dtLocalSheet)=column1 
column2 = Browser("").Page("").WebTable("").GetCellData(n, 2) 
DataTable("column2", dtLocalSheet)=column2 
column3 = Browser("").Page("").WebTable("").GetCellData(n, 3) 
DataTable("column3", dtLocalSheet)=column3 
column4 = Browser("").Page("").WebTable("").GetCellData(n, 4) 
DataTable("column4", dtLocalSheet)=column4 
column5 = Browser("").Page("").WebTable("").GetCellData(n, 5) 
DataTable("column5", dtLocalSheet)=column5 
column6 = Browser("").Page("").WebTable("").GetCellData(n, 6) 
DataTable("column6", dtLocalSheet)=column6 

Browser("").Page("").Link("").click (note: link to return to home page to restart on new account number) 
Next 

ответ

0

Пожалуйста, попробуйте с комбинацией получить и набор метод DataTable

rowNum=DataTable.GetCurrentRow 
DataTable.setCurrentRow(rowNum+1) 

Пожалуйста, проверьте синтаксис в UFT (QTP), сосредоточив внимание на Datatable и нажмите F1.

Надеюсь, это решит вашу проблему.

0

вы можете просто держать на вставке значения в следующих строках и в конце концов, экспортировать вставленные значения внешнего файла

for n=3 to webrowcnt 
......some code....... 
    If webrowcnt > 3 then 
    DataTable.SetCurrentRow(n) 'now value of n is 4 and so on 
    DataTable.Value("parameter","sheet")="Value" 'fill any data you want 
    ......some code....... 
    end IF 
......some code....... 
next 

 Смежные вопросы

  • Нет связанных вопросов^_^