QTP的DataTable操作
DataTable的操作包括:
DataTable.GetSheet(dtSheet)
DataTable.GetSheetCount
DataTable.[GetSheet.]GetRowCount
DataTable.[GetSheet.]GetParameterCount
DataTable.GetSheet(SheetName).GetParameter(“ColumName”).ValueByName(iRowNumber)
DataTable.[GetSheet.]GetCurrentRow
DataTable.[GetSheet.]SetCurrentRow(RowNumber)
DataTable.Value(ParameterID [,SheetID]) or DataTable (ParameterID [, SheetID])
DataTable.AddSheet(SheetName)
DataTable.DeleteSheet(SheetName)
DataTable.Export(filename)
DataTable.ExportSheet(filename,SheetName)
DataTable.Import(FileName)
DataTable.ImportSheet(FileName, SheetSource, SheetDest)
1.得到datatable总行数的命令:GetRowCount
描述:返回运行时数据表的第一个工作表(用于测试的全局表或用于业务组件的业务组件表)中最长的列中的总行数。
语法:DataTable.GetRowCount
返回值:数字
示例:
以下示例使用 GetRowCount 方法查找 MySheet 运行时数据表中最长的列中的总行数,并将其写入报告。
rowcount = DataTable.GetSheet("MySheet").GetRowCount
Reporter.ReportEvent 2, "数据工作表中有 " &rowcount, "行。
2.得到datatable运行时的动态列数:GetParameterCount
语法:DTSheet.GetParameterCount
例: paramcount = DataTable.GetSheet("MySheet").GetParameterCount
3.GetCurrentRow方法
描述:返回运行时数据表的第一个工作表(用于测试的全局表或用于业务组件的业务组件表)中的当前(活动)行。
语法:DataTable.GetCurrentRow
返回值:数字
示例:
以下示例使用 GetCurrentRow 方法检索当前在运行时数据表中使用的行,并将其写入报告。
row = DataTable.GetCurrentRow
Reporter.ReportEvent 1, "行号", row
4. 设置当前active的行数(第一行为1):SetCurrentRow
语法:DataTable.SetCurrentRow(RowNumber)
例:DataTable.SetCurrentRow(tb_i+1)
DataTable.GetSheet("Action1"). SetCurrentRow(tb_i+1)
'注:此命令可在循环运行中不断指向下一行数据
你也可以用GetCurrentRow来获取Action1的行,然后再用SetCurrentRow来保持两个Action的当前行一致:
CurrRow = DataTable.GetSheet("Action1").GetCurrentRow
DataTable.GetSheet("Action2").SetCurrentRow(CurrRow)
5.查询、设置datatable的数值:
语法:To find the value:
DataTable.Value(ParameterID,[SheetID])
or : DataTable(ParameterID,[SheetID])
To set the value:
DataTable.Value(ParameterID,[SheetID])=NewValue
or : DataTable(ParameterID,[SheetID]) =NewValue5
DataTable("Col", "Action2") 就是读取Action2的Col列。
同样,表也可以用数字代替:
DataTable(1, 2) 这样就是读取第二个Action表的第一列
还有一种写法:DataTable(1, "Action2") 这样就是读取Action2的第一列,不管第一列叫什么名字,都能读
还有一种赋值方法 aParam2=DataTable(“AccountsNumber”,dtGlobalSheet)
还有一种赋值方法,但是有一个前提就是:必须只能是测试只包含一个操作的情况:
aParam3=DataTable(“AccountsNumber”,dtLocalSheet)
例:DataTable.Value("Destination", "ActionA")="New York"
DataTable.Value(2,3)="New York"
DataTable("Destination", dtlocalSheet)="New York"
Call_date= DataTable.Value("Date","add Conference Call") '为Call_date赋值
6.取datatable特定行的数据:
DataTable.GetSheet("Action1").GetParameter("test").ValueByRow(4)
7 GetSheet方法
描述 :返回运行时数据表中的指定工作表。
语法 :DataTable.GetSheet(SheetID)
SheetID 变量 标识要返回的工作表。SheetID 可以是工作表名称或索引。
索引值从 1 开始。
返回值:DTSheet 对象
8 GetSheetCount方法
描述:返回运行时数据表中的总工作表数。
语法:DataTable.GetSheetCount
返回值:数字
示例:
以下示例使用 GetSheetCount 方法查找运行时数据表中的总工作表数,并将其写入报告。
sheetcount = DataTable.GetSheetCount
Reporter.ReportEvent 0, "工作表编号", "数据表中有" & sheetcount & "个工作表。
9 ImportSheet方法
描述:将指定文件的工作表导入运行时数据表的指定工作表。
语法:DataTable.ImportSheet(FileName, SheetSource, SheetDest)
FileName 字符串型 要从中导入工作表的 Excel 表的完整路径。
SheetSource 变量 要从文件导入的工作表的名称或索引。索引值从 1 开始。
SheetDest 变量 数据表中要用 SheetSource 替换的工作表的名称或索引。索引值从 1 开始。
示例:
以下示例使用 ImportSheet 方法将 name.xls 表的第一个工作表导入测试的运行时数据表中的Action1工作表。
DataTable.ImportSheet "C:\name.xls" ,1 ," Action1"
DataTable.ImportSheet "C:\name.xls" ,1 ," Global"
Qtp中不要使用Global表,会出现死循环现象。
posted on 2012-02-28 00:20 sumflower 阅读(1921) 评论(0) 编辑 收藏 举报