BMS-HOSxP Community

HOSxP => Report Exchange => ข้อความที่เริ่มโดย: yokyai ที่ กุมภาพันธ์ 11, 2010, 10:28:24 AM

หัวข้อ: เราจะเพิ่มตัวเลือกใน getpickuplist ได้อย่างไร
เริ่มหัวข้อโดย: yokyai ที่ กุมภาพันธ์ 11, 2010, 10:28:24 AM
คือถ้าเราเรียกรายการมาใส่ใน pickuplistแล้ว เช่น สมมตินะคับ
getpickuplist('select name from doctor') ก็จะได้ชื่อคนทั้งหมดในตาราง doctor มา
แต่ผมอยากให้รายงานมันมีเงื่อนไขเพิ่มที่ว่าถ้าไม่เลือกรายการไหนเลย ก็ให้หมายถึงทุกคนรวมกันในตาราง doctor หรือว่าเพิ่มตัวเลือกไปว่า All อะไรประมาณนี้หน่ะคับ ทำอย่างไร
หัวข้อ: Re: เราจะเพิ่มตัวเลือกใน getpickuplist ได้อย่างไร
เริ่มหัวข้อโดย: James011 ที่ กุมภาพันธ์ 11, 2010, 10:32:32 AM
 ;D ;D ;D กรณีที่ 1 เพิ่ม All ใน list

getpickuplist( select "All" union select name from doctor)
หัวข้อ: Re: เราจะเพิ่มตัวเลือกใน getpickuplist ได้อย่างไร
เริ่มหัวข้อโดย: James011 ที่ กุมภาพันธ์ 11, 2010, 10:36:38 AM
 ;D ;D  กรณี 2 แบบไม่เลือกอะไรแล้วให้เป็น All

          gl1:=getpickuplist('select name from doctor')
         
          if gl1 ='' then
          begin
          gl1:='All';
          end;
หัวข้อ: Re: เราจะเพิ่มตัวเลือกใน getpickuplist ได้อย่างไร
เริ่มหัวข้อโดย: yokyai ที่ กุมภาพันธ์ 11, 2010, 10:42:59 AM
ผมลอง select "ALL" มาแล้วคับ แล้วตรง All เนี่ยผมต้องให้มันรับค่าอะไรหรือเปล่า คือลองใส่ select "ALL" ไว้แล้วเลือกเลยเนี่ยมันไม่มาคับ
หัวข้อ: Re: เราจะเพิ่มตัวเลือกใน getpickuplist ได้อย่างไร
เริ่มหัวข้อโดย: James011 ที่ กุมภาพันธ์ 11, 2010, 10:54:45 AM
 ;D ;D ;D  สร้างตัวแปรมารับค่า GetPickupList 1 ตัว ชื่อ gl1 ครับ  Test Showmessage ก็ได้ครับ
 
gl1:=getpickuplist( select "All" union select name from doctor)
showmessage(gl1);
หัวข้อ: Re: เราจะเพิ่มตัวเลือกใน getpickuplist ได้อย่างไร
เริ่มหัวข้อโดย: yokyai ที่ กุมภาพันธ์ 11, 2010, 10:59:24 AM
แสดงว่า select "ALL" เนี่ย โปรแกรมฉลาดพอที่จะรู้ว่าคำว่า ALL มันหมายถึงอะไรใช่ไหมคับ คือเคยทำแบบนี้แล้ว รายงานมันออกมาเป็น 0 เลยคับ
หัวข้อ: Re: เราจะเพิ่มตัวเลือกใน getpickuplist ได้อย่างไร
เริ่มหัวข้อโดย: James011 ที่ กุมภาพันธ์ 11, 2010, 11:16:23 AM
 ;D ;D เราต้องเขียน เงือนไขให้มันด้วยครับ  เช่น

          If gl1='All' then
             begin
             ChangeReportSQL('select * from vn_stat where vstdate between "2009-12-01" and  "2009-12-31"');
             end
          else
             begin
             ChangeReportSQL('select * from vn_stat where vstdate between "2009-12-01" and  "2009-12-31" and dx_doctor="'+gl1+'"')
             end;


หัวข้อ: Re: เราจะเพิ่มตัวเลือกใน getpickuplist ได้อย่างไร
เริ่มหัวข้อโดย: Svl2Nuk3 ที่ กุมภาพันธ์ 11, 2010, 12:45:56 PM
;D ;D เราต้องเขียน เงือนไขให้มันด้วยครับ  เช่น

          If gl1='All' then
             begin
             ChangeReportSQL('select * from vn_stat where vstdate between "2009-12-01" and  "2009-12-31"');
             end
          else
             begin
             ChangeReportSQL('select * from vn_stat where vstdate between "2009-12-01" and  "2009-12-31" and dx_doctor="'+gl1+'"')
             end;




นิดนึงครับถ้าไม่ใช่ all     gl1  มีค่า  =  ชื่อหมอ
ต้องประกาศตัวแปรมาเก็บ  code ก่อนอ่ะครับ
doctor_code := GetSQLStringData('select code from doctor where name="'+gl1+'"');
แล้วก็เอา  doctor_code  ไปใส่ใน  sql
หัวข้อ: Re: เราจะเพิ่มตัวเลือกใน getpickuplist ได้อย่างไร
เริ่มหัวข้อโดย: udomchok ที่ กุมภาพันธ์ 11, 2010, 23:50:09 PM
ผมเคย post ไว้หลายรายงานแล้วที่ใช้ลักษณะนี้
เช่น
ปรับปรุงใหม่ - ค้นหาประชากรกลุ่มเป้าหมาย (หากไม่เลือกหมู่บ้าน จะแสดงทุกหมู่)
หากไม่เลือกหมู่บ้าน จะแสดงทุกหมู่บ้าน (แสดงแยกรายหมู่บ้าน จะได้ไม่ต้องมาเลือกทีละหมู่ให้เสียเวลา)
หากไม่เลือกเพศ จะแสดงทั้งข้อมูลทุกคน
หากไม่ใส่อายุ จะใช้อายุต่ำสุด = 0 อายุสูงสุด = 124
ไปดูที่ http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=6700.msg96049#msg96049 ครับ