![Avatar of RWayneH](https://cdn.experts-exchange.com/images/experts-exchange/avatar-01-large.gif)
Get a For/Next to only process once.
I have an odd request... There is a dynamic table of records in a QTP sheet that is "y" and for each record I am grabbing a value in the row and setting it to SOLN_Qty. Ln 1-4. Then I am trying to move that value assigned to SOLN_Qty to a dynamic WebTable and place it in the first row "z", column 4. However it places that value in all the WebTable rows and I only want the current value of SOLN_Qty in that first WebTable row.
It then proceed to the next y, and assigns SOLN_Qty to whatever the next y rows value is. Then assigns all the WebTable cells, (z,4) to that. and on and on, until the last row of y is reached, and that is the value that each row in the WebTable gets.
Is there a way to tell the second For/Next, or z, to only execute once and not go thru all the rows in the Webtable? We need it to increment z, and go get the next y value, and assign that to the next z. Hope this makes sense. Please advise and thanks.
Actually z and y are equal to the same thing. 3. Unless someone knows of a different way to get the value assigned to SOLN_Qty to the WebTable? Any Idea's?
It then proceed to the next y, and assigns SOLN_Qty to whatever the next y rows value is. Then assigns all the WebTable cells, (z,4) to that. and on and on, until the last row of y is reached, and that is the value that each row in the WebTable gets.
Is there a way to tell the second For/Next, or z, to only execute once and not go thru all the rows in the Webtable? We need it to increment z, and go get the next y value, and assign that to the next z. Hope this makes sense. Please advise and thanks.
Actually z and y are equal to the same thing. 3. Unless someone knows of a different way to get the value assigned to SOLN_Qty to the WebTable? Any Idea's?
Dim record_counta
record_counta = DataTable.GetSheet("SOLNData").GetRowCount
For y = 1 to record_counta 'Goes thru all rows.
SOLN_Qty=Datatable.Value("OrderQty","SOLNData") 'Sets SOLN_Qty to whatever is in row 1
rCount = Browser("SAP NetWeaver Portal").SAPPortal("SAP NetWeaver Portal").Frame("213414_FRAME").WebTable("Number").RowCount 'WebTable row count = same as y
For z = 2 to rCount 'start at row 2, because row one is the headers
'Issue: next line loops through all rows and puts the value of SOLN_Qty in each row of the WebTable, and we only need it in whatever row "z" is. Only need the next line to execute once. Then go get the next y, put it in the next z.
Browser("SAP NetWeaver Portal").SAPPortal("SAP NetWeaver Portal").Frame("213414_FRAME").WebTable("Number").ChildItem(z,4,"WebEdit",index).Set SOLN_Qty
Next
DataTable.GetSheet("SOLNData").SetNextRow
Next
![Avatar of Phillip Burton](https://filedb.experts-exchange.com/files/public/2014/8/16/6e3d8480-853c-4f9f-8afb-0e3267291ffe.png)
You could use an "Exit For" statement
![Avatar of RWayneH](https://cdn.experts-exchange.com/images/experts-exchange/avatar-01-large.gif)
ASKER
I did not even think of that... trying it now. Thanks.
![Avatar of RWayneH](https://cdn.experts-exchange.com/images/experts-exchange/avatar-01-large.gif)
ASKER
How would I get Ln8 to increament down to the next row of the WebTable? Is'nt it going to go back to row 2 and overwrite?
![Avatar of RWayneH](https://cdn.experts-exchange.com/images/experts-exchange/avatar-01-large.gif)
ASKER
I made an incorrect statement that y and z are the same. Actually in this case y is 3 and z is 4. z contains row 1 which are headers.
![Avatar of Phillip Burton](https://filedb.experts-exchange.com/files/public/2014/8/16/6e3d8480-853c-4f9f-8afb-0e3267291ffe.png)
"For Next" will only exit the inner-most loop. So if you put it after line 12, then it will continue with the "y" loop.
![Avatar of RWayneH](https://cdn.experts-exchange.com/images/experts-exchange/avatar-01-large.gif)
ASKER
Yup I was right. It overwrote row 2 column 4, with the new y. It does not increment z to row 3 when the next y is selected. How would I address keeping z incrementing as y does so that the next y, increments z to the next WebTable row down from row 2 column 4 and is row 3 column 4?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
![Avatar of RWayneH](https://cdn.experts-exchange.com/images/experts-exchange/avatar-01-large.gif)
ASKER
I am working with removing z and the inner For/Next. Instead using y+1 in the WebTabe. So far so good. If this does not work I will use your suggestion. Thanks.
For y = 1 to record_counta 'Goes thru all rows.
SOLN_Qty=Datatable.Value(" OrderQty", "SOLNData" ) 'Sets SOLN_Qty to whatever is in row 1
Browser("SAP NetWeaver Portal").SAPPortal("SAP NetWeaver Portal").Frame("213414_FRA ME").WebTa ble("Numbe r").ChildI tem(y+1,4, "WebEdit", index).Set SOLN_Qty
DataTable.GetSheet("SOLNDa ta").SetNe xtRow
Next
For y = 1 to record_counta 'Goes thru all rows.
SOLN_Qty=Datatable.Value("
Browser("SAP NetWeaver Portal").SAPPortal("SAP NetWeaver Portal").Frame("213414_FRA
DataTable.GetSheet("SOLNDa
Next
![Avatar of Phillip Burton](https://filedb.experts-exchange.com/files/public/2014/8/16/6e3d8480-853c-4f9f-8afb-0e3267291ffe.png)
Good luck.
![Avatar of RWayneH](https://cdn.experts-exchange.com/images/experts-exchange/avatar-01-large.gif)
ASKER
Question on this.... new code with no z
I sequenced the qty's in the table to be 5, 10 and 15. so they should be loaded into the Webtable that way. How come when it runs then out of seqence and loads them as 10,15 and 5? Some thing is up?
I sequenced the qty's in the table to be 5, 10 and 15. so they should be loaded into the Webtable that way. How come when it runs then out of seqence and loads them as 10,15 and 5? Some thing is up?
![Avatar of Phillip Burton](https://filedb.experts-exchange.com/files/public/2014/8/16/6e3d8480-853c-4f9f-8afb-0e3267291ffe.png)
Sounds like it is in alphabetical order rather than number order.
![Avatar of RWayneH](https://cdn.experts-exchange.com/images/experts-exchange/avatar-01-large.gif)
ASKER
Any idea how to fix this? I thought because y is 1 it is referring to 1, that is the first row?... not the first row in alphabetical order? So, 1,2,3 will work, but 5,10,15 will not? This very disturbing and I am guessing something in QTP? Is there a way the make 1 the first row and not alphabetically? My testing is show this consistent, as you say.
![Avatar of Phillip Burton](https://filedb.experts-exchange.com/files/public/2014/8/16/6e3d8480-853c-4f9f-8afb-0e3267291ffe.png)
You should sort your datatable, maybe using the Select method - see http://msdn.microsoft.com/en-us/library/zk13kdh0%28v=vs.71%29.aspx for more details.
Or - you should have use the NumberFormat on the column in question - see https://datatables.net/reference/option/formatNumber for more details.
Or - you should have use the NumberFormat on the column in question - see https://datatables.net/reference/option/formatNumber for more details.
![Avatar of RWayneH](https://cdn.experts-exchange.com/images/experts-exchange/avatar-01-large.gif)
ASKER
It was the column format in QTP, once I changed it, it started behaving correctly. THANKS!!
![Avatar of RWayneH](https://cdn.experts-exchange.com/images/experts-exchange/avatar-01-large.gif)
ASKER
Thanks for the help