BMS-HOSxP Community

HOSxP => Report Exchange => ข้อความที่เริ่มโดย: roonarmy ที่ มีนาคม 31, 2011, 05:15:19 AM

หัวข้อ: ถามการเขียนใน Oncreate ครับ
เริ่มหัวข้อโดย: 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
หัวข้อ: Re: ถามการเขียนใน Oncreate ครับ
เริ่มหัวข้อโดย: yokyai ที่ มีนาคม 31, 2011, 09:52:15 AM
ไม่เข้าใจเงื่อนไขว่าทำไมต้องเลือก 4 วันในเดือน แล้วจะเลือกทุกเดือนหรือเปล่า
หัวข้อ: Re: ถามการเขียนใน Oncreate ครับ
เริ่มหัวข้อโดย: chitvichai ที่ มีนาคม 31, 2011, 10:30:57 AM
ต้องอาศัย 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;
หัวข้อ: Re: ถามการเขียนใน Oncreate ครับ
เริ่มหัวข้อโดย: Svl2Nuk3 ที่ มีนาคม 31, 2011, 11:34:18 AM
ถ้าจะ  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 ไปต่อครับ



หัวข้อ: Re: ถามการเขียนใน Oncreate ครับ
เริ่มหัวข้อโดย: roonarmy ที่ มีนาคม 31, 2011, 13:43:48 PM
Ok ขอบคุณทุกท่านขอรับ ;D อันเนื่องมาจากคนที่ต้องการรายงานเขาต้องการระบุวันที่ต้องการตรวจสอบข้อมูลในเดือนนั้นๆมาน่ะครับ เป็นรายงานของกพร