ThaiPBL.com

PowerBuilder Library Thailand

อีเมล พิมพ์ PDF

การใช้งาน Getchild กับ dropdwondatawindow

วันนี้เราจะมาคุยกันถึงเรื่องการใช้งาน Getchild กับ dropdwondatawindow อันเนื่องมาจากมีเพื่อนสมาชิกท่านหนึ่งถามมาและจากการทดลองใช้งานก็พบว่าสามารถใช้งานได้เลยนำมาแจกจ่ายเผื่อบางท่านอาจจะยังไม่ทราบ และอาจจะนำไประยุกต์ใช้งานด้านอื่นได้อีก โดยหัวข้อการทำงานวันนี้ก็คือ จะมี datawindow ที่เป็น external หนึ่งตัวและทำเป็น dropdowndatawindow เพื่อเลือกรายชื่อจังหวัด จากนั้นตัว dropdwonadatawindow อีกตัวหนึ่งก็จะทำการ filter ให้เหลือเฉพาะอำเภอของจังหวัดนั้นๆ สิ่งที่เราจะต้องเตรียมอันดับแรกก็คือ table ที่ประกอบไปด้วย 3 คอลัมน์ด้วยกันคือ
    amphur       province         rec

    โพธาราม         ราชบุรี               

    บ้านโป่ง         ราชบุรี

    จอมบึง            ราชบุรี

    บางเขน            กทม

    บางรัก             กทม

      โดย rec นั้นเราจะทำเป็น autoincrement เพื่อเป็น primary key เสร็จแล้วก็สร้าง datawindow ขึ้นมาหนึ่งตัวโดยเลือกเอา คอลัมน์ province อย่างเดียว โดยเลือกให้เป็นแบบ distinc ด้วยนะครับ เราจะได้มีจังหวัดที่ไม่ซ้ำกัน และทำการเก็บลงชื่อ dw_province จากนั้นก็สร้าง datawindow อีกหนึ่งตัวโดยเลือกเอาคอลัมน์ amphur และ province แต่ให้แสดงข้อมูลเฉพาะ amphur อย่างเดียว เก็บลงชื่อ dw_amphur

       จากนั้นก็สร้าง datawindow อีกหนึ่งตัวให้เป็นแบบ external กำนหดค่าลงไป 2 คอลัมน์ และทำการกำหนดคอลัมน์แรกให้ทำการ link กับ dropdowndatawindow ที่ชื่อ dw_province และคอลัมน์ที่สองก็กำหนดให้ link กับ dw_amphur

    จากนั้นก็เขียนสคริปต์ที่ Itemchanged event ดังนี้

string names

this.accepttext()
if dwo.name = 'province' then
    names = this.object.province[row]
end if

This.Getchild("amphur",dwc)
dwc.setfilter( "Province ='" + names +"'" )
dwc.filter()

พอจะเข้าใจไหมครับ เนื่องจากตอนที่เขียนบทความนี้ไม่สามารถใช้งาน pb8 ได้ตามปกติเพราะใช้งานอย่างอื่นด้วย พอรัน pb8 แล้วมันชอบ error ขนาดจะเข้าไป modify datawindow ยังไม่ได้เลยครับ เมโมรี่ก็ 256 แล้วนะครับเดี๋ยวเอาใว้จะ update ให้ทีหลังนะครับ

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