RayTM 发表于 2008-11-27 18:46:44

有没有人帮忙解决一下SetCurrentRow不能正确执行的问题?

在项目中有向DataSheet连续多次写入值的情况,于是使用了如下代码(仅仅是个抽象):
For numItration = 1 to 1000
        DataTable.GlobalSheet.SetCurrentRow(numItration)
        DataTable("Bug", dtGlobalSheet) = numItration
        DataTable.GlobalSheet.SetCurrentRow(numItration)       
        DataTable("Bug1", dtGlobalSheet) = "A"&numItration
Next
在把Tools->Options->Run中的Run Mode设置为Fast的情况下运行脚本,结果在Result中会看到如下的结果:
235        A308
2        A2
3        A3
4        A4
5        A5
6        A6
7        A7
8        A8
9        A9
10        A10
11        A11
12        A12
13        A13
14        A14
        A15
16        A16
17        A17
18        A18
        A19
20        A20
21        A21
22        A22
        A23
24        A24
25        A25
26        A26
27        A27
28        A28
29        A29
30        A30
31        A31
32        A32
33        A33
34        A34
35        A35
36        A36
37        A37
        A38
39        A39
40        A40
41        A41
42        A42
43        A43
44        A44
45        A45
46        A46
47        A47
48        A48
49        A49
50        A50
51        A51
52        A52
53        A53
54        A54
55        A55
56        A56
57        A57
58        A58
59        A59
60        A60
61        A61
62       
63        A63
64        A64
        A65
66        A66
67        A67
68        A68
69        A69
70        A70
71        A71
72        A72
73        A73
74        A74
75        A75
76        A76
77        A77
78        A78
79        A79
80        A80
81        A81
82        A82
83        A83
84        A84
85        A85
86        A86
87        A87
88        A88
89        A89
90        A90
91        A91
92        A92
93        A93
94        A94
95        A95
96        A96
97        A97
98        A98
99        A99
100        A100

[ 本帖最后由 RayTM 于 2008-11-28 14:46 编辑 ]

RayTM 发表于 2008-11-28 09:21:30

顶一下, 除了人为加入Wait,还有什么好一些的解决办法?

songfun 发表于 2008-11-28 10:34:23

不知道你想问什么

RayTM 发表于 2008-11-28 10:44:39

结果是异常的,我是想问如何让结果正确?有些cell没有写入任何数据,有些写入了错误的数据。

zhengjun 发表于 2008-11-28 11:01:22

使用正常速度运行试试,如果可以应该是PC的原因

RayTM 发表于 2008-11-28 11:16:06

如果运行在正常模式并且延时设置为1秒的情况下,结果基本上还是正常的。但是由于处理的数据量比较大,延时会导致消耗大量时间,现在求助有没有好的解决办法。从结果看导致异常的原因是SetCurrentRow的问题。

RayTM 发表于 2008-11-28 14:06:20

在运行时加入了两行调试信息,运行后发现在写入数据时得到的行值是不正确的。。。
不知道如何打印正确结果了!:Q
有没有人能帮忙解决下?
For numItration = 1 to 200
        DataTable.GlobalSheet.SetCurrentRow(numItration)
        Reporter.ReportEvent micDone, DataTable.GlobalSheet.GetCurrentRow, numItration
        DataTable("Bug", dtGlobalSheet) = numItration
        Reporter.ReportEvent micDone, DataTable.GlobalSheet.GetCurrentRow, "A"&numItration
        DataTable("Bug1", dtGlobalSheet) = "A"&numItration
Next

ltp401128401128 发表于 2008-11-28 15:52:49

非常奇怪的问题,从程序来看没有任何问题啊!
建议楼主将GlobalSheet里面的数据清了重新做一把,
或者换太机器吧!

RayTM 发表于 2008-11-28 16:40:43

我也在怀疑我的系统和QTP的版本了。
不知道在其他类型的机器上是怎么样的,现在组内机器上都是同样的问题。

PS: OS Version MS WIndows2000 professional
QTP Version 9.0

RayTM 发表于 2008-12-10 17:47:33

找到了一个好点的办法。可以把这些类似的写值操作写入VBS文件,这样就解决了效率的问题。
页: [1]
查看完整版本: 有没有人帮忙解决一下SetCurrentRow不能正确执行的问题?