Unit 7 - การสร้างวินโดว์ต้นฉบับ
การสร้างวินโดว์ต้นฉบับ
                              ในบทนี้ท่านจะได้เรียนรู้การสร้างวินโดว์ เพื่อใช้งานในโปรแกรมแอพพลิเคชัน ซึ่งโปรแกรม PowerBuilder นั้นสร้างวินโดว์ ผ่านทาง Window Painter 


Previous 
Next 
TOC 

 

การสร้างวินโดว์ต้นฉบับ

ในบทนี้ท่านจะได้เรียนรู้การสร้างวินโดว์ เพื่อใช้งานในโปรแกรมแอพพลิเคชัน ซึ่งโปรแกรม 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