Thắc mắc về parameter "Data Table"

Thảo luận về phần mềm Quick Test Pro QTP
Forum rules
Thảo luận về phần mềm Quick Test Pro QTP
Post Reply
quangdovan8x
Fresher Tester
Posts: 23
Joined: Mon 21 May, 2012 10:54 pm
Contact:

Thắc mắc về parameter "Data Table"

Post by quangdovan8x » Fri 23 Jan, 2015 3:20 pm

Chào các bạn,
Mình mới tìm hiểu về QTP, đến phần parameter thì mình hok hiểu cơ chế làm việc của item "Data Table" cho lắm.
Đây là scenario của mình:

Enter nhiều item trên "Add A New Item" dialog dựa theo data trong Data Table (hình đính kèm).
Cuối cùng, click 'Process' button.

Expected result: Chỉ duy nhất item cuối cùng trong 'Data Table' được add.

Mong mọi người giúp đỡ giải đáp giúp mình.

Thanks,

P/s: mình cũng có thắc mắc về "Regular Expression" trong QTP, chẳng hạn mình có câu lệnh

VbWindow("frmABTInventory").VbComboBox("cboProducts").Select "Nails"

Mình sẽ dùng "Regular Expression" như thế nào để có thể thay thế "Nails" chỉ bằng "N" thôi.
Data Table.JPG
Inventory.rar
You do not have the required permissions to view the files attached to this post.



quangdovan8x
Fresher Tester
Posts: 23
Joined: Mon 21 May, 2012 10:54 pm
Contact:

Re: Thắc mắc về parameter "Data Table"

Post by quangdovan8x » Thu 29 Jan, 2015 10:01 am

Mình chạy scripts này thì QTP gộp luôn cả việc "click Process button" vào work flow của Data Table, mà đoạn này mình không khai báo Data Table.
Mong mọi người giúp đỡ.
Thanks sincerely.



luasaigon
Fresher Tester
Posts: 36
Joined: Thu 27 Oct, 2011 10:50 pm
Contact:

Re: Thắc mắc về parameter "Data Table"

Post by luasaigon » Thu 29 Jan, 2015 11:06 pm

Hi bạn,

Nếu bạn chỉ muốn sử dụng row cuối cùng trong datatable thì bạn thử cách này xem sao (thêm vào trước script của bạn):
- Get number round của datatable lưu vào 1 biến
- set current row của datatable bằng biến vừa lưu
- sau đó đến script của bạn

Code có thể như vậy (bạn có thể sửa 1 chút cho hợp với script của bạn ^^ ):
row_count = DataTable.GetRowCount
SetCurrentRow(row_count)

P/s: nếu code có sai bạn cứ feedback lại để mình kiếm máy nào có cài QTP check lại cho nhé.
Thân.



quangdovan8x
Fresher Tester
Posts: 23
Joined: Mon 21 May, 2012 10:54 pm
Contact:

Re: Thắc mắc về parameter "Data Table"

Post by quangdovan8x » Fri 30 Jan, 2015 9:48 am

Hi luasaigon,
Cám ơn bạn đã quan tâm và giải đáp giúp mình.

Có thể do mình chưa nói hết ý của mình nên có chút hiểu lầm.
Ý tưởng của mình là QTP sẽ add tất cả data trong Table (add tất cả 4 rows theo ví dụ trên của mình).
Sau khi add hết data thì mới click "Process" button.
Cụ thể số lượt chạy scripts sẽ là:

-> add data theo dòng 1 trong Data Table
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtNumber").Set DataTable("Number", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtName").Set DataTable("Name", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtDescription").Set DataTable("Des", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtQuantity").Set DataTable("Qua", dtGlobalSheet)

-> add data theo dòng 2 trong Data Table
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtNumber").Set DataTable("Number", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtName").Set DataTable("Name", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtDescription").Set DataTable("Des", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtQuantity").Set DataTable("Qua", dtGlobalSheet)

-> add data theo dòng 3 trong Data Table
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtNumber").Set DataTable("Number", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtName").Set DataTable("Name", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtDescription").Set DataTable("Des", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtQuantity").Set DataTable("Qua", dtGlobalSheet)

-> add data theo dòng 4 trong Data Table
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtNumber").Set DataTable("Number", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtName").Set DataTable("Name", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtDescription").Set DataTable("Des", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtQuantity").Set DataTable("Qua", dtGlobalSheet)

->Sau khi add hết 4 dòng trong Data Table thì click 'Process' button
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbButton("Process").Click

Mong bạn giúp đỡ.

Thanks,



luasaigon
Fresher Tester
Posts: 36
Joined: Thu 27 Oct, 2011 10:50 pm
Contact:

Re: Thắc mắc về parameter "Data Table"

Post by luasaigon » Fri 30 Jan, 2015 4:01 pm

Vậy bạn thêm if...else để kiểm tra điều kiện cho cái action "click":

row_count = DataTable.GetRowCount
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtNumber").Set DataTable("Number", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtName").Set DataTable("Name", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtDescription").Set DataTable("Des", dtGlobalSheet)
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbEdit("txtQuantity").Set DataTable("Qua", dtGlobalSheet)
if datatable.GetCurrentRow = row_count then
VbWindow("frmABTInventory").VbWindow("dlgAddItem").VbButton("Process").Click
end if

thân.



quangdovan8x
Fresher Tester
Posts: 23
Joined: Mon 21 May, 2012 10:54 pm
Contact:

Re: Thắc mắc về parameter "Data Table"

Post by quangdovan8x » Mon 02 Feb, 2015 1:01 pm

Hi luasaigon,

Cám ơn bạn rất rất nhiều đã nhiệt tình giúp đỡ :D.
Scripts của mình đã chạy smothly đúng theo yêu cầu.



Post Reply

Return to “Quick Test Pro (QTP)”