BMS-HOSxP Community

HOSxP => Report Exchange => ข้อความที่เริ่มโดย: naj ที่ เมษายน 12, 2010, 14:04:01 PM

หัวข้อ: ตัวอย่างรายงานการใช้ Tclientdataset ใน Report Designer
เริ่มหัวข้อโดย: naj ที่ เมษายน 12, 2010, 14:04:01 PM
เป็นตัวอย่างเบื้องต้น สำหรับการทำรายงานที่เอาหลายๆๆเทคนิคมาทำร่วมกันครับ โดยใช้ pascal script (tempreort) ร่วมกับ Tclientdataset สำหรับ HOSxP 3.53.3.xx ขึ้นไปครับ
ปัญหาคือ Function INputQuery ใน report designer ไม่สามารถที่จะกำหนดค่าเริ่มต้นได้ (หมายถึงเขียนในรูปแบบ inputquery('title','label',min_hba1c) ไม่ได้ ต้องเขียนเป็น min_hba1c:=inputquery('title','label ')  ) ปัญหาที่พบคือผู้ใช้ต้องมากรอกทุกครั้ง ดังนั้นเพื่อให้ง่ายสำหรับตัวแปรที่เราต้องการให้มันแสดงที่ใช้บ่อยๆๆ โดยไม่ต้อง key ทุกครั้ง ก็เลยเลี่ยงไปใช้ใน Script  แทน แล้วดึงค่าผ่าน Tclientdataset มาใส่ ChangeReportSQL
จริงๆๆจะเขียนใน tempreport ทั้งหมดก็น่าจะดีนะ :D :D :D :D
ปล
ข้อดีเท่าที่สังเกตคือ
1. สามารถใช้ Function บางตัวที่ report designer ใช้ไม่ได้ แต่เลี่ยงมาใช้ใน Script แทน
2. ไม่จำเป็นต้องเขียน Script  ลง tempreport ทั้งหมด ถ้าเราไม่ถนัด 
3. มีความมันส์เพิ่มขึ้นในการทำรายงาน และสร้างความปวดหัวให้กับ Admin ดีนักแล :D :D :D :D
หัวข้อ: Re: ตัวอย่างรายงานการใช้ Tclientdataset ใน Report Designer
เริ่มหัวข้อโดย: thannawe ที่ เมษายน 12, 2010, 14:08:29 PM
สุดยอด !!
ขอบคุณครับ  :D ;D :D
หัวข้อ: Re: ตัวอย่างรายงานการใช้ Tclientdataset ใน Report Designer
เริ่มหัวข้อโดย: nayok ที่ เมษายน 12, 2010, 14:59:54 PM
อ.นาจเราหนีไปไกลแล้วครับ สุดยอดเลยจริงๆ ;D ;D ;D
หัวข้อ: Re: ตัวอย่างรายงานการใช้ Tclientdataset ใน Report Designer
เริ่มหัวข้อโดย: naj ที่ เมษายน 12, 2010, 15:21:03 PM
ไม่ได้หนีไปไหนครับ อ.mn เพิ่ม ลูกเล่นใหม่ๆมาให้ลอง เลยขอทดสอบ พอดีพี่พยาบาลเขาอยากได้รายงานตัวนี้ด้วยก็ลองประยุกต์มาใช้ :) :) :) :) :)
หัวข้อ: Re: ตัวอย่างรายงานการใช้ Tclientdataset ใน Report Designer
เริ่มหัวข้อโดย: naj ที่ เมษายน 12, 2010, 16:10:22 PM
หรือจะลองเขียนแบบนี้
ตัวอย่าง Code
โค๊ด: Delphi
  1. GetDateRangeDialog(date1, date2);
  2. ds1:= FormatDateTime('yyyy-mm-dd',date1);
  3. ds2:= FormatDateTime('yyyy-mm-dd',date2);
  4. cds:=Tclientdataset.create(nil);
  5. cds.HOSxp_Getdataset('select * from tempreport where id = "CUSTOM-Yindee"');
  6. cds.first;
  7. cds.assigndatatomainreport;
  8. HbA1C_min :=cds.fieldvalues['name1'];
  9. HbA1C_max :=cds.fieldvalues['name2'];
  10. {cds.assigndatatoPipeLineLink1; }
  11. cds.free;
  12.  
  13.  
  14. ChangeReportSQL('select a.report_date,a.hn ,concat(c.pname,c.fname,"    ",c.lname) as ptname,b.lab_order_result   '+
  15.  'from lab_head a     '+
  16.  'left outer join lab_order b on a.lab_order_number=b.lab_order_number '+
  17.  'left outer join patient c on a.hn=c.hn   '+
  18. 'where a.report_date between"'+ds1+'"and"'+ds2+'"   '+
  19. 'and b.lab_order_result between '+HbA1C_min+'  and  '+HbA1C_max+' '+
  20. 'and b.lab_items_code="3162"  order by a.report_date,a.hn ');
หัวข้อ: Re: ตัวอย่างรายงานการใช้ Tclientdataset ใน Report Designer
เริ่มหัวข้อโดย: SrWooD ที่ เมษายน 12, 2010, 16:18:57 PM
 ;D ;D ;D
หัวข้อ: Re: ตัวอย่างรายงานการใช้ Tclientdataset ใน Report Designer
เริ่มหัวข้อโดย: doramon ที่ เมษายน 12, 2010, 16:52:19 PM
 ;D ;D ;D
หัวข้อ: Re: ตัวอย่างรายงานการใช้ Tclientdataset ใน Report Designer
เริ่มหัวข้อโดย: kungkung ที่ เมษายน 12, 2010, 22:45:41 PM
 :D :D