BMS-HOSxP Community
HOSxP => Report Exchange => ข้อความที่เริ่มโดย: thecoy ที่ พฤษภาคม 22, 2009, 14:19:33 PM
-
ขอความรู้การทำsupreport กับพี่ขวดหรือผู้ทุกท่าน คือว่าต้องการหารายละเอียดผู้ป่วยในที่ amdit R40 j029 k30 ได้
code ครับ แต่ข้อมูลให้supreport ไม่เปลี่ยนตาม ChangeDBPipeLineLink1SQL ครับ ยังเป็นของคนแรก
GetDateRangeDialog(date1, date2);
ds1:=formatdatetime('yyyy-mm-dd',date1);
ds2:=formatdatetime('yyyy-mm-dd',date2);
ChangeReportSQL('select i.prediag, i.hn,(i.dchdate-i.regdate) as Day ,concat(p.pname ,p.fname," ",p.lname) as ptname,i.regdate, i.dchdate,ipd.an,ipd.icd10 ,icd.name '+
'from iptdiag ipd '+
'left outer join ipt i on ipd.an=i.an '+
'left outer join icd101 icd on ipd.icd10=icd.code '+
'left outer join patient p on p.hn= i.hn ' +
'where ipd.icd10 in ("J029","R42","K30") '+
'and ipd.diagtype="1" '+
'and i.dchdate between "'+ds1+'" and "'+ds2+'"'+
'order by i.hn ');
ChangeDBPipeLineLink1SQL( 'select o.icode,concat(s.name,"",s.strength,"",s.units) as item_name, '+
'sum(o.qty) as sum_qty1,sum(o.qty) as sum_qty2,sum(o.sum_price) as sum_price '+
'from opitemrece o left outer join s_drugitems s on s.icode = o.icode '+
'where o.an="'+DBPipeline['AN']+'"'+
'group by o.icode,s.name,s.strength,s.units order by o.icode,s.name');
-
... เดี๋ยวขอโหลดตัวรายงานไปดูก่อนนะครับ เท่าที่เห็นน่าจะวางคำสั่งผิดตำแหน่งครับ .... :D ...
-
... ดูแล้วครับ การวางคำสั่งผิดนิดหน่อย ... :D ...
-
... ที่แท็ป Calc คลิ๊กขวาตามรูป แล้วเลือก Events ... :D ...
-
... รายงานตัวนี้เราต้องการวาง SubReport ไว้ในส่วนของ Detail ก็เอาเมาท์ไปคลิ๊กที่ Detail แล้วคลิ๊กขวาที่ BefoerGenerate แล้วเลือก New ...
... จากนั้นใส่คำสั่ง
ChangeDBPipeLineLink1SQL( 'select o.icode,concat(s.name,"",s.strength,"",s.units) as item_name, '+
'sum(o.qty) as sum_qty1,sum(o.qty) as sum_qty2,sum(o.sum_price) as sum_price '+
'from opitemrece o '+
'left outer join s_drugitems s on s.icode = o.icode '+
'where o.an="'+DBPipeline['AN']+'"'+
'group by o.icode,s.name,s.strength,s.units order by o.icode,s.name');
ซิ่งเป็นคำสั่งดึงข้อมูลมาแสดงใน SubReport วางคำสั่งตามรูปครับ .... :D ....
-
... คลิ๊กขวาที่ว่างๆ ของ Report Objects แล้วเลือกมุมมองเป็น Module ครับ ... :D ...
-
...ในส่วนนี้ ใส่คำสั่งส่วนของ ChangeDBPipeLineLink1SQL เป็น
ChangeDBPipeLineLink1SQL( 'select o.icode,concat(s.name,"",s.strength,"",s.units) as item_name, '+
'sum(o.qty) as sum_qty1,sum(o.qty) as sum_qty2,sum(o.sum_price) as sum_price '+
'from opitemrece o '+
'left outer join s_drugitems s on s.icode = o.icode '+
'limit 0 ');
สังเกตุว่าคือคำสั่งเหมือนกับที่เราใส่ใน BefoerGenerate ในส่วนของ Detail ที่เราทำก่อนหน้านี้ แต่ตัดส่วนที่เป็นเงือนไขตั้งแต่ where ออกไป แล้วเปลี่ยนเป็น limit 0 แทน ....
....แล้วลองสั่ง Preview รายงานดูใหม่นะครับ .... :D ....
-
...อันนี้ตัวรายงานที่แก้ไขตามที่ตอบไว้ข้างบนครับ ... :D ...
-
ขอบคุณครับ พี่ขวด คำตอบจากพี่ช่วยได้เสมอ มาตรังวันไหน จะพาไปทานหมูย่างนะครับ :D :D ;D ;D