BMS-HOSxP Community
HOSxP => Report Exchange => ข้อความที่เริ่มโดย: roonarmy ที่ มีนาคม 31, 2011, 05:15:19 AM
-
ผมต้องการเขียนคำสั่งเลือกวันที่แบบเลือกได้ 4 วันในเดือน ผมต้องเขียนใน Oncreate ว่ายังไง แล้วต้องประกาศตัวแปรยังไง ผมลองใช้ GetDaterangeDiaglog แล้ว Error อ่ะครับ
select o.vstdate,concat(p.pname,p.fname,' ',p.lname) as ptname ,o.vsttime
from ovst o
left outer join vn_stat v on v.vn = o.vn
left outer join patient p on p.hn = o.hn
where o.vstdate in("2011-01-04","2011-01-12","2011-01-20","2011-01-28")
and o.pt_subtype = 1
order by o.vstdate,o.vsttime
-
ไม่เข้าใจเงื่อนไขว่าทำไมต้องเลือก 4 วันในเดือน แล้วจะเลือกทุกเดือนหรือเปล่า
-
ต้องอาศัย from pascal รับข้อมูลเก็บในตาราง tempreport ก่อนแล้วค่อย query ใน oncreate ดังนึ้ครับ
procedure GlobalOnCreate;
begin
sql:='select o.vstdate,concat(p.pname,p.fname," ",p.lname) as ptname ,o.vsttime ' +
' from ovst o ' +
' left outer join vn_stat v on v.vn = o.vn ' +
' left outer join patient p on p.hn = o.hn ' +
' where o.vstdate in(select date1 from tempreport where reportname="test4date" and id="11157") '+
' and o.pt_subtype = "'+GetUserParameter(0)+'" ' +
' order by o.vstdate,o.vsttime ';
ChangeReportSQL(sql);
end;
-
ถ้าจะ Fix ไว้ที่ 4 วันก็เขียนแบบกำปั้นทุบดินไปเลยครับ ;D
procedure GlobalOnCreate;
var date1,date2,date3,date4:TDateTime ;
str_date:String;
begin
Showmessage('àÅ×Í¡Çѹ·Õè¤ÃÑ駷Õè 1 áÅÐ 2');
GetDateRangeDialog(date1, date2);
Showmessage('àÅ×Í¡Çѹ·Õè¤ÃÑ駷Õè 3 áÅÐ 4');
GetDateRangeDialog(date3, date4);
str_date := '"'+FormatDateTime('yyyy-mm-dd',date1) +'","'+ FormatDateTime('yyyy-mm-dd',date2)+'","'+FormatDateTime('yyyy-mm-dd',date3)+'","'+FormatDateTime('yyyy-mm-dd',date4)+'"';
Showmessage(str_date);
ChangeReportSQL(
' select o.vstdate,concat(p.pname,p.fname," ",p.lname) as ptname ,o.vsttime '+
' from ovst o '+
' left outer join vn_stat v on v.vn = o.vn '+
' left outer join patient p on p.hn = o.hn '+
' where o.vstdate in('+str_date+') '+
' and o.pt_subtype = 1 '+
' order by o.vstdate,o.vsttime '
);
end;
แต่ถ้าไม่ Fix ไว้ที่ 4 วันก็แก้อีกนิด ใส่ Loop while ครอบ หาเงื่อนไขในการหยุด แล้วในแต่ละรอบก็เอา String ไปต่อครับ
-
Ok ขอบคุณทุกท่านขอรับ ;D อันเนื่องมาจากคนที่ต้องการรายงานเขาต้องการระบุวันที่ต้องการตรวจสอบข้อมูลในเดือนนั้นๆมาน่ะครับ เป็นรายงานของกพร