ผู้เขียน หัวข้อ: ขอคำแนะนำเรื่องตัวแปรวันที่ใน Report ครับ  (อ่าน 8318 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ panus_t

  • Hero Member
  • *****
  • กระทู้: 2,368
  • Respect: +8
    • ดูรายละเอียด
where vstdate between "'+formatdatetime('yyyy-mm-dd',rxdate1)+'" and "'+formatdatetime('yyyy-mm-dd',rxdate2)+'"
ค่าตรงนี้จะทราบได้อย่างไรว่าจะเป็นตัวไหน ขอคำชี้แนะวิธีการดูด้วยครับเพราะรายงานแต่ละตัวกำหนดตัวแปรไม่เหมือนกัน
ผมแนบไฟล์มาให้ช่วยดูด้วยครับตรง Variable2
« แก้ไขครั้งสุดท้าย: สิงหาคม 24, 2011, 14:23:31 PM โดย panus_t »
โรงพยาบาลเสิงสาง จ.นครราชสีมา (ขนาด  60  เตียง ปี2554)  ขึ้นระบบโดยทีมงาน BMS  เมื่อเดือนเมษายน 2551
ก่อนหน้านั้นขึ้นระบบเมื่อ 07/07/07 ฤกษ์ดี  Master Server  IBM System x3500M4  RAM ECC 24 GB. HardDisk SAS 450x3 GB. ServerRAID M1100 Series Zero RAID5  OS:CentOS 6.4  MySQLPercona : 5.5.30-30.1

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,358
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: ขอคำแนะนำเรื่องตัวแปรวันที่ใน Report ครับ
« ตอบกลับ #1 เมื่อ: สิงหาคม 24, 2011, 19:30:29 PM »
0
แนบรูปมาผิดมั้งครับ key violation เป็นของกระทู้ก่อนหน้า 5555+
HOSxP_Attachment_key-violation.png
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ Bordin

  • Hero Member
  • *****
  • กระทู้: 1,089
  • อย่าคิดว่าทำไม่ได้ ถ้ายังไม่ลองทำ
  • Respect: +1
    • ดูรายละเอียด
    • ADMIN PCB. sz
Re: ขอคำแนะนำเรื่องตัวแปรวันที่ใน Report ครับ
« ตอบกลับ #2 เมื่อ: สิงหาคม 24, 2011, 21:49:04 PM »
0
 ;D ;D ;D ;D

ออฟไลน์ Svl2Nuk3

  • Hero Member
  • *****
  • กระทู้: 793
  • Respect: 0
    • ดูรายละเอียด
Re: ขอคำแนะนำเรื่องตัวแปรวันที่ใน Report ครับ
« ตอบกลับ #3 เมื่อ: สิงหาคม 24, 2011, 22:40:46 PM »
0
จริง ๆ มันคือ sql  ที่เป็น string ธรรมดานี่แหละครับ
แต่เราต้องการแทนที่ค่าที่อยู่ใน String  ด้วยวันที่  ที่เราได้รับมา

 เช่น  วันที่่ที่ดึงมาจาก GetDateRangeDialog(date1,date2)    เราจะได้วันที่่มาอยู่ในตัวแปร date1  และ date2

จึงต้องใช้  FormatDateTime('yyyy-mm-dd',date1)   เพื่อแปลงวันที่ให้เป็นรูปแบบ string
parameter ที่ใส่ให้กับ FormatDateTime()  ก็จะมี Format  แล้วก็วันที่

Formate  ที่เราใช้กับคำสั่ง sql  ก็จะเป็น  'yyyy-mm-dd'
ส่วนวันที่  ก็จะอยู่ในตัวแปร  date1,date2   หรืออื่น ๆ ขึ้นอยู่กับตอนที่เราประกาศ  และเรียกใช้ใน GetDateRangeDialog() ครับ


เมื่อ report  ทำงาน  ค่าในส่วนที่จะได้มากจากตอนที่ user  เลือกวันที่ครับ


I'm nuke (นุ๊ก)
My Blog  : http://www.codenuke.net
อดีต นวก.คอมฯ รพช.พรหมพิราม => 1 พ.ค. 52 - 30 ก.ย. 54
ปัจจุบัน : Software Engineer บริษัทแห่งหนึ่ง

ออฟไลน์ LDHP

  • Full Member
  • ***
  • กระทู้: 128
  • พิศมัย พื้นนวล พยาบาลชำนาญการ - โรงพยาบาลลำดวน
  • Respect: 0
    • ดูรายละเอียด
Re: ขอคำแนะนำเรื่องตัวแปรวันที่ใน Report ครับ
« ตอบกลับ #4 เมื่อ: สิงหาคม 25, 2011, 09:50:46 AM »
0
GetUserParameter( X );  ค่าที่ได้มาจะเป็น string อยู่แล้วค่ะ 
และถ้าตัวแปรเป็นวันที่ ก็จะได้string ที่มีรูปแบบเป็น  yyyy-mm-dd อยู่แล้วค่ะ ไม่ใช่ datetime
จึงไม่จำเป็นต้องใช้   ISO2Date(d, f);  ค่ะ

ส่วน  FormatDateTime(Format, aDateTime); แปลงค่าวันที่ให้อยู่รูปแบบ string ตามFormat ที่กำหนด
datetime  >  string

แต่ถ้าจะแปลงจาก string > datetime ก็ได้ 
ใช้  StrToDate( str ); แต่ว่ารูปแบบ str ที่เป็น 'yyyy-mm-dd' จะใช้ไม่ได้ ต้องเป็น 'dd/mm/yyyy'ค่ะ
ลองเอาไปทดสอบแบบนี้ดู
Value := formatdatetime('yyyy-mm-dd',StrToDate('01/02/2011'));
master : ibm 3350 xeon 2.66GHz ram 2G  HD 144
  cenos 5.3 mysql 5.1.30

     slave : P4  2.8GHz  ram 2G HD 80G
        redhat 5.0 mysql 5.0.41


ขอขอบคุณท่านอาจารย์ทั้งหลายนะค่ะ ที่ช่วยเหลือให้ความรู้มากมาย

ออฟไลน์ panus_t

  • Hero Member
  • *****
  • กระทู้: 2,368
  • Respect: +8
    • ดูรายละเอียด
Re: ขอคำแนะนำเรื่องตัวแปรวันที่ใน Report ครับ
« ตอบกลับ #5 เมื่อ: สิงหาคม 25, 2011, 10:17:16 AM »
0
แนบรูปมาผิดมั้งครับ key violation เป็นของกระทู้ก่อนหน้า 5555+
HOSxP_Attachment_key-violation.png

ใช้ครับแนบรูปผิด ทำทีละหลายอย่างเลยวันนั้น...
โรงพยาบาลเสิงสาง จ.นครราชสีมา (ขนาด  60  เตียง ปี2554)  ขึ้นระบบโดยทีมงาน BMS  เมื่อเดือนเมษายน 2551
ก่อนหน้านั้นขึ้นระบบเมื่อ 07/07/07 ฤกษ์ดี  Master Server  IBM System x3500M4  RAM ECC 24 GB. HardDisk SAS 450x3 GB. ServerRAID M1100 Series Zero RAID5  OS:CentOS 6.4  MySQLPercona : 5.5.30-30.1

ออฟไลน์ panus_t

  • Hero Member
  • *****
  • กระทู้: 2,368
  • Respect: +8
    • ดูรายละเอียด
Re: ขอคำแนะนำเรื่องตัวแปรวันที่ใน Report ครับ
« ตอบกลับ #6 เมื่อ: สิงหาคม 25, 2011, 10:55:47 AM »
0
แก้ไขรายงานที่แนบมาให้หน่อยได้หรือเปล่าครับ  เพราะไม่ทราบว่าจะนำตัวแปรวันที่ไหนมาใส่ใน variable2 ครับ   ;D
โรงพยาบาลเสิงสาง จ.นครราชสีมา (ขนาด  60  เตียง ปี2554)  ขึ้นระบบโดยทีมงาน BMS  เมื่อเดือนเมษายน 2551
ก่อนหน้านั้นขึ้นระบบเมื่อ 07/07/07 ฤกษ์ดี  Master Server  IBM System x3500M4  RAM ECC 24 GB. HardDisk SAS 450x3 GB. ServerRAID M1100 Series Zero RAID5  OS:CentOS 6.4  MySQLPercona : 5.5.30-30.1

ออฟไลน์ nahos

  • Hero Member
  • *****
  • กระทู้: 2,216
  • รพ.นาแห้ว
  • Respect: +7
    • ดูรายละเอียด
    • รพ.นาแห้ว
Re: ขอคำแนะนำเรื่องตัวแปรวันที่ใน Report ครับ
« ตอบกลับ #7 เมื่อ: สิงหาคม 25, 2011, 11:48:49 AM »
0
จากรายงานน่าจะใช้
DBcalcเฉย  ๆ ก็น่าจะได้นะครับ เพราะดูจาก variable2
เหมือนกับ  code mysql  ตั้งต้นมีวันที่กำกับไว้อยุ่แล้ว

Value := GetSQLIntegerData('select count(v.vn) as num '+
' from vn_stat v '+
' left outer join doctor d on  d.code=v.dx_doctor '+
' left outer join ovst o on o.vn=v.vn '+
' left outer join holiday h on h.holiday_date=v.vstdate '+
' left outer join patient p on p.hn=v.hn '+
' where v.vstdate between "'+ISO2Date(GetUserParameter(0),'dd mmmm eeee')+'" and "'+ISO2Date(GetUserParameter(1),'dd mmmm eeee')+'" '+
' and o.cur_dep_time between "08:00:00" and "16:00:00" '+
' and v.dx_doctor in ("139") and o.main_dep="010" '+
' and v.vstdate not in (select holiday_date from holiday) ');



ถ้าำคำถามท่านได้คำตอบที่ต้องการจากอาจารย์ท่านใด กรุณากด Thank เบา ๆ ^ ถูกใจกด [applaud] ไม่ชอบใจกด[smite]
>> การโพสต์ขอรายงานที่ดี <<
อ่านซักนิด ถามยังไงให้ได้คำตอบ ? :)
วิธีแสดงตัวว่าเป็นใคร โดย อ.อ๊อด (ให้ข้อมูลว่าเป็นใคร ปฏิบัติงานที่ไหน ใช้ server อะไร OS อะไร HOsxp Vไหน)
ก่อนที่จะตั้งกระทู้ถาม ลองค้นจากกระทู้เก่าดูก่อนไหม จะได้คำตอบเร็วกว่าการรอคำตอบนะ
..........................................................................
เจษ จพ.เภสัชกรรมฯ user@ NAHAEO HOSPITAL LOEI. <br>  Supervise by DANSAI HOSPITAL LOEI. <br>
Start 01/03/2550
=> Server IBM X3200 Ram 6 Gb. OS:Cent OS 6.0  
=> Client 20 client  OS: SP2  => HosXP Version <b>3.56.11.19</b>
-----------------------------
น้ำเต็มแก้ว "การเรียนรู้ไม่มีที่สิ้นสุด"

ออฟไลน์ panus_t

  • Hero Member
  • *****
  • กระทู้: 2,368
  • Respect: +8
    • ดูรายละเอียด
Re: ขอคำแนะนำเรื่องตัวแปรวันที่ใน Report ครับ
« ตอบกลับ #8 เมื่อ: สิงหาคม 26, 2011, 09:24:03 AM »
0
ถ้าใช้ DBcalc count ในตำแหน่ง Header จะได้แค่ 1 ครับ

ต้องการทราบว่าตรงตัวหนังสือสีแดงความเป็นนะไร หรือ copy มาจากส่วนไหนของตัวรายงานครับ
Value := GetSQLIntegerData('select count(v.vn) as num '+
' from vn_stat v '+
' left outer join doctor d on  d.code=v.dx_doctor '+
' left outer join ovst o on o.vn=v.vn '+
' left outer join holiday h on h.holiday_date=v.vstdate '+
' left outer join patient p on p.hn=v.hn '+
' where v.vstdate between "'+ISO2Date(GetUserParameter(0),'dd mmmm eeee')+'" and "'+ISO2Date(GetUserParameter(1),'dd mmmm eeee')+'" '+
' and o.cur_dep_time between "08:00:00" and "16:00:00" '+
' and v.dx_doctor in ("139") and o.main_dep="010" '+
' and v.vstdate not in (select holiday_date from holiday) ');
โรงพยาบาลเสิงสาง จ.นครราชสีมา (ขนาด  60  เตียง ปี2554)  ขึ้นระบบโดยทีมงาน BMS  เมื่อเดือนเมษายน 2551
ก่อนหน้านั้นขึ้นระบบเมื่อ 07/07/07 ฤกษ์ดี  Master Server  IBM System x3500M4  RAM ECC 24 GB. HardDisk SAS 450x3 GB. ServerRAID M1100 Series Zero RAID5  OS:CentOS 6.4  MySQLPercona : 5.5.30-30.1

ออฟไลน์ woravet

  • Sr. Member
  • ****
  • กระทู้: 414
  • Respect: +12
    • ดูรายละเอียด
Re: ขอคำแนะนำเรื่องตัวแปรวันที่ใน Report ครับ
« ตอบกลับ #9 เมื่อ: สิงหาคม 26, 2011, 11:33:51 AM »
0
Value := GetSQLIntegerData('select count(v.vn) as num '+
' from vn_stat v '+
' left outer join doctor d on  d.code=v.dx_doctor '+
' left outer join ovst o on o.vn=v.vn '+
' left outer join holiday h on h.holiday_date=v.vstdate '+
' left outer join patient p on p.hn=v.hn '+
' where v.vstdate between "'+GetUserParameter(0)+'" and "'+GetUserParameter(1)+'" '+
' and o.cur_dep_time between "08:00:00" and "16:00:00" '+
' and v.dx_doctor in ("139") and o.main_dep="010" '+
' and v.vstdate not in (select holiday_date from holiday) ');

ไม่ต้องใช้ฟังก์ชัน ISO2Date()
รพ.บึงสามัคคี จ.กำแพงเพชร
*********************
อ.สุชัยและคณะ ขึ้นระบบ 29 ตค.49(Linux+Fedara 5)
*********************
ปัจจุบัน
HOSxP version 3.53.4.27
Server:Windows XP SP2,MySQL 5
Client ประมาณ 15 เครื่อง

ออฟไลน์ yutbit

  • Newbie
  • *
  • กระทู้: 27
  • Respect: 0
    • ดูรายละเอียด
Re: ขอคำแนะนำเรื่องตัวแปรวันที่ใน Report ครับ
« ตอบกลับ #10 เมื่อ: สิงหาคม 26, 2011, 13:56:16 PM »
0
ใช่ครับไม่ต้องใช้ฟังก์ชั้น ISO2Date
ถูกต้องแล้วครับ