lingb 发表于 2009-10-22 10:59:19

整理:QTP的DataTable操作

本人不才,收集网络资源后将QTP对DataTable的操作方法进行整理如下,希望帮助初学者。

DataTable的操作包括:
DataTable.GetSheet(dtSheet)
DataTable.GetSheetCount
DataTable.GetRowCount
DataTable.GetParameterCount
DataTable.GetSheet(sSheetName).GetParameter(“ColumName”).ValueByName(iRowNumber)
DataTable.GetCurrentRow
DataTable.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)
7AddSheet 方法
    描述:向运行时数据表中添加指定工作表并返回该工作表,以便可以直接在同一语句中设置新工作表的属性。
    语法:DataTable.AddSheet(SheetName)
    示例:
         以下示例先使用 AddSheet 方法在运行时数据表中新建工作表"MySheet",然后向新工作表中添加参数。
         Dim Variable
         Variable=DataTable.AddSheet ("MySheet").AddParameter("Time", "8:00")
8DeleteSheet方法
    描述:从运行时数据表中删除指定工作表。
    语法:DataTable.DeleteSheet SheetID
    示例:
          以下示例使用 DeleteSheet 方法从运行时数据表中删除工作表"MySheet"。
          DataTable.DeleteSheet "MySheet"
9Export方法
    描述:在指定位置保存运行时数据表的副本。
    语法:DataTable.Export(FileName)
    示例:
          以下示例使用 Export 方法将测试的数据表副本保存在 C:\flights.xls 中。
          DataTable.Export ("C:\flights.xls")
10 ExportSheet方法
    描述:将运行时数据表的指定工作表导出到指定文件中。
               如果指定文件不存在,则将创建一个新文件并保存指定工作表。
               如果当前文件存在,但是该文件不包含具有指定工作表名称的工作表,则将插入该工作表作为文件的最后一个工作表。
               如果当前文件存在且包含指定工作表,则导出的工作表将覆盖现有工作表。
    语法:DataTable.ExportSheet(FileName, DTSheet)
               DTSheet 变量 要导出的运行时数据表工作表的名称或索引。索引值从 1 开始。
    示例:
          以下示例使用 ExportSheet 方法将运行时数据表的第一个工作表保存到 name.xls 文件中。
          DataTable.ExportSheet "C:\name.xls" ,1
          DataTable.ExportSheet "C:\name.xls" , " MySheet "
11 GetSheet方法
   描述 :返回运行时数据表中的指定工作表。
   语法 :DataTable.GetSheet(SheetID)
               SheetID 变量 标识要返回的工作表。SheetID 可以是工作表名称或索引。
               索引值从 1 开始。
    返回值:DTSheet 对象
    示例:
         以下示例使用 GetSheet 方法返回运行时数据表的"MySheet"工作表,以便向其中添加参数。
         MyParam=DataTable.GetSheet ("MySheet").AddParameter("Time", "8:00")
          您还可以使用该方法向"MySheet"本地表中添加参数(注意,不会返回值)。
         DataTable.GetSheet ("MySheet").AddParameter "Time", "8:00"
12 GetSheetCount方法
    描述:返回运行时数据表中的总工作表数。
    语法:DataTable.GetSheetCount
    返回值:数字
    示例:
          以下示例使用 GetSheetCount 方法查找运行时数据表中的总工作表数,并将其写入报告。
          sheetcount = DataTable.GetSheetCount
          Reporter.ReportEvent 0, "工作表编号", "数据表中有" & sheetcount & "个工作表。
13 Import方法
   描述:将指定的 Microsoft Excel 文件导入运行时数据表。
   注意:
         导入的表必须与测试或组件匹配。列名必须与测试或组件中的参数匹配,并且工作表名称(用于测试)必须与操作名匹配。
         如果导入的 Excel 表包含组合框或列表单元格、条件格式或其他特殊单元格格式,则不会导入这些格式,并且单元格在数据表中显示时包含固定值。
   语法:DataTable.Import(FileName)
               FileName 字符串型 要导入的 Excel 表的完整路径。
   示例:
            导入的表将替换现有运行时数据表(包括所有数据表)中的所有数据。
            以下示例使用 Import 方法将 flights.xls 表导入运行时数据表。
            DataTable.Import ("C:\flights.xls")
14 ImportSheet方法
    描述:将指定文件的工作表导入运行时数据表的指定工作表。导入的工作表中的数据将替换目标工作表中的数据(请参阅 SheetDest 参数)。
    注意:
          导入的工作表中的列标题必须与工作表导入操作中的数据表参数名匹配。否则,测试或组件可能会失败。
          导入的工作表会自动采用它所替换的工作表的名称。
          如果导入的 Excel 工作表包含组合框或列表单元格、条件格式或其他特殊单元格格式,则不会导入这些格式,并且单元格在数据表中显示时包含固定值。
    语法: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表,会出现死循环现象。

kasimxiao 发表于 2009-10-22 12:25:19

绝对加精啊~~

robinsgl 发表于 2009-10-26 17:10:50

好帖,好帖

luxiwen 发表于 2009-10-27 06:38:32

谢谢楼主整理,对偶此等新手很有用:)

wuyuzimu 发表于 2009-12-29 13:52:08

:victory:

wuyuzimu 发表于 2009-12-29 13:52:22

收藏了!

cyypanda 发表于 2009-12-30 15:54:13

谢谢lz,很有帮助,呵呵。。。

bingoofish 发表于 2009-12-30 15:58:42

嗯~~楼主果然不才~~:o (开玩笑哈,很实用)

mowandao1985 发表于 2010-3-2 16:36:49

不错!收藏起!

zhengpeipei 发表于 2010-3-3 08:41:02

不错!

yujie6832 发表于 2010-3-3 09:20:40

不错哦~:lol

huilin.gao 发表于 2010-3-3 13:53:08

verygood,download

vaivaivai 发表于 2010-3-3 14:14:22

好东西,感谢分享~~:lol

xc520 发表于 2010-3-3 15:00:51

那是相当的不错~
谢谢LZ了

wujianping 发表于 2010-3-3 15:16:23

太赞了,好东西!

huiguiziran111 发表于 2010-5-13 17:01:18

haotie:hug:

shaynechu 发表于 2011-3-23 15:26:11

:):):)

damiao011 发表于 2011-3-28 16:57:49

听说是好东西,我来仔细阅读下,呵呵

super191 发表于 2011-3-29 17:50:13

好就一个字

yxd2006 发表于 2011-6-24 14:47:16

收藏了,谢谢分享
页: [1]
查看完整版本: 整理:QTP的DataTable操作