03 July 2012

HOSxP Report Design ตอน Function pickuplist

       วันก่อนมีน้องมาถามว่า... "พี่ผมมี Report ที่เกี่ยวกับชื่อยา ผมต้องการให้เขาเลือกชื่อยาได้เลยโดยไม่ต้องสร้างรายงานหลายตัวผมจะทำอย่างไร" ผมเลยแนะนำให้ใช้ Function getpickuplist ซึ่งเป็น 1 ใน Function ของ HOSxP Report Designer โดยเมื่อ Preview หรือจะ Print รายงาน ก็จะมี Dialog Box ขึ้นมาถามดังรูปด้านล่าง เพื่อให้เราเลือกก่อนที่จะไปขึ้นตอนต่อไป  บทความนี้ผมจะเล่าถึงวิธีการนำไปใช้งานเจ้า getpickuplist กันครับ โดยผมขอยกตัวอย่างของการเลือกชื่อตำบลแทนชื่อยาละกันนะครับ

ก่อนอื่นเราต้องประกาศตัวแปรก่อนครับในกรณีนี้ผมประกาศเป็นประเภท String เพื่อมารับค่าจาก Dialog box ครับ โดยใช้ตัวแปรที่ชื่อ tumbonname มารับ


จากนั้นผมก็เขียนคำสั่งลงไป โดยใช้ คำสั่ง getpickuplist (Syntax : getpickuplist(sql);)
tumname := getpickuplist('select name from thaiaddress   where codetype <> "2" and addressid like "6705%" ');
จากคำสั่ง sql ดังกล่าว ระบบจะสร้าง Dialog Box ขึ้นมา 1 ตัวแล้วให้เลือก ชื่อ ตำบล



เมื่อเราเลือกแล้ว ระบบจะนำชื่อตำบลไปเก็บไว้ในตัวแปรที่ชื่อ tumname เราก็นำเอาตัวแปลที่ได้ไปหา
รหัสของตำบลอีกทีหนึ่ง โดยใช้
 คำสั่ง  getsqlstringdata (Syntax :  getsqlstringdata (sql);) 
tumbon:= getsqlstringdata('select tmbpart from thaiaddress  where name = "'+tumname+'" and chwpart ="67" and amppart ="05"');
ซึ่งคำสั่ง getsqlstringdata นี้เอาไว้ใช้ในการดึงข้อมูล ของ Field แรก ของ Record แรกมาใช้ โดยใช้คำสั่ง mysql executescalar นั่นเอง ในกรณีนี้เราก็จะได้ รหัสตำบลมาเก็บไว้ในตัวแปล ซึ่งเราจะนำไป Query อะไรก็แล้วแต่เราแล้วละครับ



No comments: