Thursday, November 29, 2012

การเขียน Script เพื่อใช้งาน GetPickupList ใน Report Bulider


การเขียน Script เพื่อใช้งาน  GetPickupList ใน Report Bulider

ใน Report Designer จจะมี function ที่ชือว่า GetPickupList(); หลายคนอาจเคยใช้ แต่หลายคนก็ยังใช้ไม่ค่อยเป็นเลยนำ วิธีการใช้งานมาฝากครับ

ผมประกาศ ตัวแปลตัวหนึ่งขึ้นชื่อว่า pttype เป็น string ครับ จากนั้นก็เริ่มกันเลยครับ

ผมเขียนในส่วนของ Events นะครับ

pttype := GetPickupList('select "ALL" as name union select name from pttype '); // อาจจะมีคำถามถามว่า แล้ว Union นี้คืออะไร มันก็คือการเอา คำว่า ALL ไปรวมอยู่กับการเลือกสิทธิไงครับ ต่อเลยนะครับ

จากนั้นก็ต่อด้วย

if (pttype='') or (pttype='ALL') then
    begin
       pttype := '';
    end else
    begin
       pttype :=  GetSQLStringData('select pttype from pttype where name="'+pttype+'" ');
       pttype := ' pttype="'+pttype+'"';
    end;

เป็นการเทียบค่าที่ เลือกจาก function ข้างบนครับว่าเข้าเลือก ALL หรือค่าว่าง (คือไม่ได้เลือกนั่นเอง) ถ้าเลือกALL หรือค่าว่าง (คือไม่ได้เลือกนั่นเอง) pttype เท่ากับค่าว่าง แต่ถ้าเลือกสิทธิอื่นก็จะมาทำข้างล้างครับ

ตัวอย่างบรรทัด pttype := ' pttype="'+pttype+'"'; จะได้ pttype มีค่าเท่ากับ ' pttype="เลขสิทธิที่เลือก" ครับ

จากนั้นก็ใช้นี่เลยครับ function ChangeReportSQL(); //

ChangeReportSQL('select * from vn_stat '+
    '  where  '+pttype+' '+
    '    group by vn order by vstdate ');

แค่นี้เราก็จะได้รายงานที่สามารถเลือกสิทธิของผู้ป่วยได้แล้วครับว่าจะดูผู้ป่วยทุกสิทธิ หรือ เฉพาะสิทธิที่เราเลือกแล้วครับ .....


-----------------------------------------------

.....By Admin@บ้านนอก  รวบรวมจาก HOSxP.Net



No comments: