BMS-HOSxP Community
HOSxP => Report Exchange => ข้อความที่เริ่มโดย: panus_t ที่ ตุลาคม 12, 2011, 15:02:09 PM
-
clinic:=GetPickupList('select name from clinic order by name');
ตรงนี้แสดงรายชื่อ Clinic ให้ผู้ใช้งานเลือก แล้วถ้าต้องการค่ารหัส clinic ที่ผู้ใช้เลือกทำไงครับ
ChangeReportSQL('select o.hn,o.vstdate,o.nextdate,o.nexttime,o.nexttime_end,o.clinic,c.name,o.depcode,k.department,o.doctor,d.name,o.app_user, '
+' concat(p.addrpart," ËÁÙè ",p.moopart," ",t.full_name) as addr,o.note '
+' from oapp o '
+' left outer join vn_stat v on v.vn=o.vn '
+' left outer join thaiaddress t on t.addressid=v.aid '
+' left outer join patient p on p.hn=o.hn '
+' left outer join clinic c on c.clinic=o.clinic '
+' left outer join kskdepartment k on k.depcode=o.depcode '
+' left outer join doctor d on d.code=o.doctor '
+' where o.nextdate between "'+ds1+'" and "'+ds2+'" and o.clinic="018" ');
-
ถ้าต้องการแทนค่ารหัสคลินิคในคำสั่ง SQL ก็ต้องสร้างตัวแปรเพิ่มขึ้นมาอีก 1 ตัวเพื่อเอาไว้รับค่าที่เป็นรหัสคลินิคจากการเลือกของ user แล้วจึงนำตัวแปรนั้นไปแทนค่าในคำสั่งหลักค่ะ ตัวอย่างนะคะ
clinic:=GetPickupList('select name from clinic order by name');
code:=GetSQLStringData('select clinic from clinic where name="'+clinic+'"')
ChangeReportSQL('select o.hn,o.vstdate,o.nextdate,o.nexttime,o.nexttime_end,o.clinic,c.name,o.depcode,k.department,o.doctor,d.name,o.app_user, '
+' concat(p.addrpart," ËÁÙè ",p.moopart," ",t.full_name) as addr,o.note '
+' from oapp o '
+' left outer join vn_stat v on v.vn=o.vn '
+' left outer join thaiaddress t on t.addressid=v.aid '
+' left outer join patient p on p.hn=o.hn '
+' left outer join clinic c on c.clinic=o.clinic '
+' left outer join kskdepartment k on k.depcode=o.depcode '
+' left outer join doctor d on d.code=o.doctor '
+' where o.nextdate between "'+ds1+'" and "'+ds2+'" and o.clinic="'+code+'" ');
-
รบกวนแก้ไขตัวรายงานให้หน่อยนะครับ เพราะ
ตอนนี้ผมย้ายคำสั่ง
ChangeReportSQL('select o.hn,concat(p.pname,p.fname," ",p.lname) as pt_name,o.vstdate,o.nextdate,o.nexttime,o.nexttime_end,o.clinic,c.name,o.depcode,k.department,o.doctor,d.name,o.app_user, '
+' concat(p.addrpart," หมู่ ",p.moopart," ",t.full_name) as addr,o.note '
+' from oapp o '
+' left outer join vn_stat v on v.vn=o.vn '
+' left outer join thaiaddress t on t.addressid=v.aid '
+' left outer join patient p on p.hn=o.hn '
+' left outer join clinic c on c.clinic=o.clinic '
+' left outer join kskdepartment k on k.depcode=o.depcode '
+' left outer join doctor d on d.code=o.doctor '
+' where o.nextdate between "'+ds1+'" and "'+ds2+'" and o.clinic="'+clinic+'" ');
มาที่ช่อง SQL เป็น
select o.hn,concat(p.pname,p.fname," ",p.lname) as
pt_name,o.vstdate,o.nextdate,o.nexttime,o.nexttime_end,o.clinic,c.name,o.depcode,k.department,o.doctor,d.name,o.app_user,
concat(p.addrpart," ËÁÙè ",p.moopart," ",t.full_name) as addr,o.note
from oapp o
left outer join vn_stat v on v.vn=o.vn
left outer join thaiaddress t on t.addressid=v.aid
left outer join patient p on p.hn=o.hn
left outer join clinic c on c.clinic=o.clinic
left outer join kskdepartment k on k.depcode=o.depcode
left outer join doctor d on d.code=o.doctor
where o.nextdate between "2011-10-13" and "2011-10-13" and o.clinic="018"
แทน select "1" as cc
เพื่อที่ต้องการให้ข้อมูลที่ Select สามารถส่งออกเป็น Excel ได้ครับ
-
ทำไมไม่ลองส่งออกเป็น EXEL โดยใช้ print to file ล่ะคะ จะได้ไม่ต้องย้ายคำสั่ง
-
ทำไมไม่ลองส่งออกเป็น EXEL โดยใช้ print to file ล่ะคะ จะได้ไม่ต้องย้ายคำสั่ง
มันจะได้เฉพาะที่แสดงในตัวรายงานครับ ในคำสั่ง SQL ทั้งหมดมันมีมากกว่านั้น ครับ
-
แนะนำให้นำคำสั่งไปวางในแถบ Calc มากกว่าที่แถบ SQL นะคะ เนื่องจากว่าถ้าวางคำสั่งไปด้านนอก จะไม่สามารถใช้ function อื่นๆที่ต้องการได้