Unit 7 - การสร้างวินโดว์ต้นฉบับ |
การสร้างวินโดว์ต้นฉบับ
ในบทนี้ท่านจะได้เรียนรู้การสร้างวินโดว์ เพื่อใช้งานในโปรแกรมแอพพลิเคชัน ซึ่งโปรแกรม PowerBuilder นั้นสร้างวินโดว์ ผ่านทาง Window Painter |
![]() |
![]() |
![]() |
การสร้างวินโดว์ต้นฉบับ
ในบทนี้ท่านจะได้เรียนรู้การสร้างวินโดว์ เพื่อใช้งานในโปรแกรมแอพพลิเคชัน
ซึ่งโปรแกรม PowerBuilder นั้นสร้างวินโดว์ ผ่านทาง Window Painter
ท เพิ่ม DataWindow Control บนวินโดว์
ท เพี่ม User Event ให้แก่วินโดว์
ท เขียนสคริปท์ที่ ดึงข้อมูล,เพิ่มเรคคอร์ด,ลบเรคคอร์ด และปรับปรุงข้อมูล
ท เขียนสคริปท์เพื่อให้เมนูเรียกใช้สคริปท์ใน User Event
เวลาในการทำความเข้าใจ
ใช้เวลาประมาณ 45 นาที
การเขียนสคริปท์ดึงข้อมูลให้แก่ master datawindow
สร้างหน้าต่างใหม่
เพิ่ม DataWindow Control
เพิ่ม User Event
เขียนสคริปท์ของ User Event
ท เขียนสคริปท์ดึงข้อมูลให้แก่ master datawindow
เขียนสคริปท์ดึงข้อมูลให้แก่ detail datawindow
นำเมนูมาสัมพันธ์กับวินโดว์
จัดเก็บวินโดว์
เขียนสคริปท์เรียกใช้งาน User Event ของวินโดว์
ขณะนี้ท่านกำลังจะเขียนสคริปท์ที่เรียกใช้เหตุการณ์ User Event ที่ชื่อว่า
ue_retrieve
ในการเรียกใช้เหตุการณ์ ue_retrieve นี้จะเรียกใช้จากเหตุการณ์ Open ซึ่งจะทำงานเมื่อวินโดว์ออบเจ็คท์เปิดทำงาน
ท่านต้องแน่ใจก่อนว่าท่านไม่ได้เลือกออบเจ็คท์ใดๆ บนวินโดว์ออบเจ็คท์ ก่อนเปิด
สคริปท์ของวินโดว์
1. คลิก Select Event listbox เลือก Open Event
พิมพ์
dw_master.settransobject ( sqlca )
dw_detail.settransobject ( sqlca )
this.EVENT ue_retrieve()
สองบรรทัดแรกเป็นการกำหนด SQLCA ทรานเซ็คชั่นออบเจ็คท์เพื่อติดต่อกับฐานข้อมูล ส่วนบรรทัดที่สามเป็นการเรียกใช้เหตุการณ์ ue_retrieve
2. กดปุ่ม Return
หรือ
เลือก File > Return จากเมนู
โปรแกรม PowerBuilder จะคอมไพล์ สคริปท์ และกลับมายัง Window Painter
เขียนสคริปท์ดึงข้อมูลให้แก่ detail datawindow
สร้างหน้าต่างใหม่
เพิ่ม DataWindow Control
เพิ่ม User Event
เขียนสคริปท์ของ User Event
เขียนสคริปท์ดึงข้อมูลให้แก่ master datawindow
ท เขียนสคริปท์ดึงข้อมูลให้แก่ detail datawindow
นำเมนูมาสัมพันธ์กับวินโดว์
จัดเก็บวินโดว์
เขียนสคริปท์เรียกใช้งาน User Event ของวินโดว์
ท่านจะได้เขียนสคริปท์ที่เหตุการณ์ RowFocusChanged Event ของ dw_master
เพื่อทำการดึงข้อมูลใน dw_detail DataWindow
ท เมื่อเปิดวินโดว์เป็นครั้งแรก แอพพลิเคชันจะติดต่อกับตาราง Employee
และดึงข้อมูลขึ้นมาทั้งหมด โดยที่จะแสดงอยู่ที่ดาต้าวินโดว์ส่วนที่อยู่ข้างบนสุดของวินโดว์และรายละเอียดของตาราง
Employee จะแสดงอยู่ที่ดาต้าวินโดว์ด้านล่าง
ท เมื่อผู้ใช้งานเคลื่อนย้ายตำแหน่งของเรคคอร์ดบน dw_master จะทำให้ dw_detail
เปลี่ยนแปลงตามไปด้วย
ท่านจะได้เขียนสคริปท์ที่เหตุการณ์ RowFocusChanged ของ dw_master
และเขียนสคริปท์ดึงข้อมูลตาม employee id ให้แก่ dw_detail
1. เลือก dw_master DataWindow คอนโทรล
เลือกสคริปท์จาก Popup เมนูของ dw_master
เลือกเหตุการณ์ RowFocusChanged จาก Select Event Listbox
พิมพ์
long ll_itemnum
ll_itemnum = this.object.data [currentrow,1]
IF dw_detail.Retreive (ll_itemnum) = -1 THEN
MessageBox("Retreive","Retreive error-detail")
END IF
2. กดปุ่ม Retrrun
หรือ
เลือก File > Return จากเมนู
โปรแกรม PowerBuilder จะทำการคอมไพล์สคริปท์ให้ทันที
นำเมนูมาสัมพันธ์กับวินโดว์
สร้างหน้าต่างใหม่
เพิ่ม DataWindow Control
เพิ่ม User Event
เขียนสคริปท์ของ User Event
เขียนสคริปท์ดึงข้อมูลให้แก่ master datawindow
เขียนสคริปท์ดึงข้อมูลให้แก่ detail datawindow
ท นำเมนูมาสัมพันธ์กับวินโดว์
จัดเก็บวินโดว์
เขียนสคริปท์เรียกใช้งาน User Event ของวินโดว์
เมื่อสร้างวินโดว์เรียบร้อยแล้วต้องมีเมนู ซึ่งจะได้แนะนำการนำเมนู m_fileopen
มาสัมพันธ์กับวินโดว์ที่สร้าง
1. แน่ใจว่าท่านไม่ได้เลือกออบเจ็คท์ใด ๆ บนวินโดว์
2. เลือก Properties จาก Popup เมนูของวินโดว์
3. พิมพ์ m_fileopen ในช่องเมนู Name
4. กดปุ่ม OK
โปรแกรม PowerBuilder จะนำเมนูไปสัมพันธ์กับวินโดว์ซึ่งเมื่อทำงานเมนูบาร์ที่แสดงอยู่จะเปลี่ยนไปใช้
m_fileopen เมื่อหน้าจอนี้ถูกเปิดขึ้น
จัดเก็บวินโดว์
สร้างหน้าต่างใหม่
เพิ่ม DataWindow Control
เพิ่ม User Event
เขียนสคริปท์ของ User Event
เขียนสคริปท์ดึงข้อมูลให้แก่ master datawindow
เขียนสคริปท์ดึงข้อมูลให้แก่ detail datawindow
นำเมนูมาสัมพันธ์กับวินโดว์
ท จัดเก็บวินโดว์
เขียนสคริปท์เรียกใช้งาน User Event ของวินโดว์
1. เลือก File > Save จากเมนู
ไดอะล็อกบ็อกซ์ Save Window จะปรากฏขึ้น
2. เลือกไฟล์ workshop.pbl ในช่อง Application Libraries
พิมพ์ w_master_detail
พิมพ์หมายเหตุและกดปุ่ม OK
เมื่อกดปุ่ม OK โปรแกรม PowerBuilder จะกลับมาทำงานที่ Window Painter
และแสดงไตเติลว่า w_master_detail
3. ปิด w_master_detail
เขียนสคริปท์เรียกใช้งาน User Event ของวินโดว์
สร้างหน้าต่างใหม่
เพิ่ม DataWindow Control
เพิ่ม User Event
เขียนสคริปท์ของ User Event
เขียนสคริปท์ดึงข้อมูลให้แก่ master datawindow
เขียนสคริปท์ดึงข้อมูลให้แก่ detail datawindow
นำเมนูมาสัมพันธ์กับวินโดว์
จัดเก็บวินโดว์
ท เขียนสคริปท์เรียกใช้งาน User Event ของวินโดว์
1. เปิด Menu Painter เลือก m_fileopen กด OK ถ้าเมนูไม่มีในรายการให้เลือก
workshop.pbl ในช่อง Application Libraries
2. เลือก Edit dropdown ใน Menu Painter
3. เลือกรายการ Insert เมนู
กดปุ่ม Script บน PainterBar
พิมพ์
w_master_detail lw_activesheet
lw_activesheet = w_genapp_frame.GetActiveSheet()
lw_activesheet.EVENT ue_insert()
4. กดปุ่ม Return บน PainterBar
หรือ
เลือก File > Return จากเมนู
5. เลือกรายการ Update เมนู
กดปุ่ม Script บน PainterBar
พิมพ์
w_master_detail lw_activesheet
lw_activesheet = w_genapp_frame.GetActiveSheet()
lw_activesheet.EVENT ue_update()
6. กดปุ่ม Return บน PainterBar
หรือ
เลือก File > Return จากเมนู
7. เลือกรายการ Delete เมนู
กดปุ่ม Script บน PainterBar
พิมพ์
w_master_detail lw_activesheet
lw_activesheet = w_genapp_frame.GetActiveSheet()
lw_activesheet.EVENT ue_delete()
8. กดปุ่ม Return บน PainterBar
หรือ
เลือก File > Return จากเมนู
9. เลือก File > Save จากเมนู
โปรแกรม PowerBuilder จะจัดเก็บเมนู
10. ปิด m_fileopen