卓振 发表于 2009-5-18 16:11:53

关于QTP代码中if...else用法

在help中看了关于if...else的用户,但是还是不清楚应该怎么样写。
在下面这行代码中
“Window("SuperClient").Dialog("增加设备").WinComboBox("设备类型:").Select DataTable("equip", dtLocalSheet)”
参数equip=a时,执行条件1;当equip=b时,执行条件2
条件1:Window("SuperClient").Window("equip_name2").WinObject("AfxFrameOrView42").DblClick 97,45
条件2:Window("SuperClient").Window("lmfe1").WinObject("AfxFrameOrView42").DblClick 92,36
wait(1)
请问高手,怎么样能完成呢?
在这先谢谢高手。

ls_721521 发表于 2009-5-18 16:27:29

...

ls_721521 发表于 2009-5-18 16:30:12

“Window("SuperClient").Dialog("增加设备").WinComboBox("设备类型:").Select DataTable("equip", dtLocalSheet)”
if equip=a then
      Window("SuperClient").Window("equip_name2").WinObject("AfxFrameOrView42").DblClick 97,45
elseif equip=b then
      Window("SuperClient").Window("lmfe1").WinObject("AfxFrameOrView42").DblClick 92,36

else
    ''''
end if
是这个意思吗?

卓振 发表于 2009-5-18 16:36:23

回复 3# 的帖子

是这个意思,但是这样写,应该不对。
因为equip没有参数化。

ls_721521 发表于 2009-5-18 16:37:12

if前加一句
equip=DataTable("equip", dtLocalSheet)

卓振 发表于 2009-5-18 16:43:19

回复 5# 的帖子

那不用GetROProperty("value") 取值吗?

ls_721521 发表于 2009-5-18 16:51:44

你想取啥值呀?
equip还是后面的a,b
equip是你excel里的值。
你也没说明我也不知道这些值都是干啥的。

卓振 发表于 2009-5-18 17:11:50

回复 7# 的帖子

我需要添加两个设备,但是这两个设备双击打开的位置是不相同的,所以我要用if...else语句。
全部代码如下:
Window("SuperClient").WinTreeView("SysTreeView32").Select "系统;区域1;lmxe", micRightBtn
Window("SuperClient").WinTreeView("SysTreeView32").WinMenu("ContextMenu").Select "增加设备(N)..."
Window("SuperClient").Dialog("增加设备").WinComboBox("设备类型:").Select DataTable("equip", dtLocalSheet)
Window("SuperClient").Dialog("增加设备").WinEdit("IP 地址:").SetSelection 0,3
Window("SuperClient").Dialog("增加设备").WinEdit("IP 地址:").Type "172"
Window("SuperClient").Dialog("增加设备").WinEdit("Edit").Type ".16."
Window("SuperClient").Dialog("增加设备").WinEdit("Edit_2").Type "95."
Window("SuperClient").Dialog("增加设备").WinEdit("Edit_3").Set DataTable("ip", dtLocalSheet)
Window("SuperClient").Dialog("增加设备").WinEdit("名称:").Set DataTable("equip_name", dtLocalSheet)
Window("SuperClient").Dialog("增加设备").WinButton("确认(O)").Click
wait(1)
Window("SuperClient").Window("lmxe").WinObject("AfxFrameOrView42").Click DataTable("p_X1", dtLocalSheet), DataTable("p_Y1", dtLocalSheet)
Window("SuperClient").Window("lmxe").WinObject("AfxFrameOrView42").type micLCtrlDwn
Window("SuperClient").Window("lmxe").WinObject("AfxFrameOrView42").DblClick DataTable("p_X2", dtLocalSheet), DataTable("p_Y2", dtLocalSheet)
Window("SuperClient").Window("equip_name1").WinObject("AfxFrameOrView42").DblClick 32,53
Window("SuperClient").Dialog("指定设备").WinButton("载入(L)").Click
Window("SuperClient").Dialog("指定设备").Dialog("打开").WinListView("查找范围(I):").Select DataTable("equip.seq", dtLocalSheet)
Window("SuperClient").Dialog("指定设备").Dialog("打开").WinButton("打开(O)").Click
wait(1)
Window("SuperClient").Dialog("指定设备").WinButton("确定(O)").Click
wait(2)
**************************************
equip=DataTable("equip", dtLocalSheet)
If equip=h9molmxe Then
Window("SuperClient").Window("equip_name2").WinObject("AfxFrameOrView42").DblClick 97,45
wait(1)
elseif equip=h9momlfe then
Window("SuperClient").Window("lmfe1").WinObject("AfxFrameOrView42").DblClick 92,36
wait(1)
End If
***********************************
'Window("SuperClient").Activate
这个**符号之间的是我自己添加的老是出问题。

卓振 发表于 2009-5-18 17:15:13

回复 5# 的帖子

我前面加上这句话了,但是不起作用,好像把if...else直接跳过去了。

ls_721521 发表于 2009-5-18 17:28:12

h9molmxe和h9momlfe是你要双击的设备的名字吗?
用变量之前最好定义一下,然后写上注释,这个变量是做什么用的

wangshuman 发表于 2009-5-19 10:45:52

按照你的写法h9molmxe和h9momlfe应该是DataTable中“equip”列中的两个参数值,当你执行代码的时候程序自动定位到DataTable中的第一行,也就是说你取的值应该是“equip”列中的第一个参数值,你可以添加 msgbox equip语句查看一下equip到底取的是什么值,这样就可以检查出你的 if 语句是否有问题了

wangshuman 发表于 2009-5-19 10:48:40

将h9molmxe和h9momlfe用双引号引起来试一下
页: [1]
查看完整版本: 关于QTP代码中if...else用法