ThaiPBL.com

PowerBuilder Library Thailand

อีเมล พิมพ์ PDF

แนะนำการใช้งาน single line edit

สวัสดีครับ วันนี้จะแนะนำการใช้งาน single line edit ให้มีประสิทธิภาพมากขึ้น โดยเมื่อเราเริ่มพิมพ์ข้อมูลบน sle ที่ตัว datawindow ก็จะทำการ focus ไปยังข้อมูลที่เราพิมพ์ตามทันที เหมะสำหรับนำไปใช้ในการ search หาข้อมูลที่เราต้องการ เช่นพวก หมายเลขประจำตัวต่างๆเช่น หมายเลขประจำตัว 11512 ซึ่งอาจจะมีตัวเลขที่ใกล้เคียงกันเยอะมากเราก็พิมพ์แค่ 115 ตัว datawindow ก็จะวิ่งไปที่หมายเลขประจำตัวที่ขึ้นต้นด้วย 115 ให้เราเลยโดยที่เราไม่ต้อง scroll datawindow หาเอาเอง

    หลักการก็มีอยู่ว่า ให้เราทำการเพิ่ม user event ของตัว sle ดังนี้

    กำหนด user event ว่า ue_keyup แล้วก็ map กับ pbm_keyup เสร็จแล้วก็ลงมือเขียนสคริปต์กันเลย

String ls_search_string
long ll_found_row

ls_search_string = 'Match(string(sowid),"^'+This.text+'")'
ll_found_row = dw_list.find(ls_search_string,1,dw_list.rowcount())
if ll_found_row > 0 then
dw_list.ScrolltoRow(ll_found_row)
dw_list.SelectRow(0,false)
dw_list.SelectRow(ll_found_row,True)
end if
This.setfocus()

คำว่า sowid นั้นคือชื่อ คอลัมน์ที่เราต้องการใช้ใน datawindow ส่วน dw_list ก็คือชื่อของ datawindow ที่เราต้องการใช้งาน เมื่อ datawindow scroll ไปยังข้อมูลที่เราต้องการแล้วเราก็สามารถที่จะกด enter เพื่อ get ข้อมูลนั้นออกมาได้ทันทีโดยการเพิ่ม สคริปต์ที่ modified event อีกนิดเท่านั้นเอง

String id

id = dw_list.getitemstring(dw_list.getrow(),"sowid")

เพียงเท่านี้การค้นหาข้อมูลของคุณก็จะไม่น่าเบื่ออีกต่อไปแล้วครับ สวัสดีปีใหม่ครับ


บทความนี้จาก www.soopawat.com