ผู้เขียน หัวข้อ: ตัวอย่าง Script import Excel data to HOSxP  (อ่าน 16033 ครั้ง)

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

ออฟไลน์ naj

  • Hero Member
  • *****
  • กระทู้: 2,449
  • Respect: +10
    • ดูรายละเอียด
    • http://www.luangphopern-hospital.com
ตัวอย่าง Script import Excel data to HOSxP
« เมื่อ: กุมภาพันธ์ 22, 2010, 01:25:41 AM »
+1
มีหลาย รพ ที่ ได้รับ file excel จากสปสช และต้องการนำข้อมูลจากตาราง Excel ดังกล่าว เข้า HOSxP เลยยกตัวอย่างมาให้ดูครับ
1.สร้างตาราง zdata โดยใช้คำสั่งนี้ครับ
โค๊ด: SQL
  1. CREATE TABLE `zdata` (
  2.   `hcode` VARCHAR(5) DEFAULT NULL,
  3.  
  4.  `hname` VARCHAR(50) DEFAULT NULL,
  5.  
  6.  `province_id` VARCHAR(50) DEFAULT NULL,
  7.  
  8.  `hn` VARCHAR(7) DEFAULT NULL
  9. )
  10.  ENGINE=MyISAM DEFAULT CHARSET=tis620;
  11.  
ใน sql (เครื่องหมายสายฟ้า) ของ HOSxP แล้วกดแทบ Exec
จากนั้นนำ Script นี้ไปวางใน tab source (อย่าลืมลบข้อมูลเดิมที่อยู่ใน source และ dfm ออกก่อนนะครับ)
หลังจากวางเสร็จเรีบยร้อยแล้วให้ตั้ง path excel file ในตัวอย่างนี้ อยู่ที่ d:\book1.xls
ตัวอย่าง code
โค๊ด: Pascal
  1. unit Yindee;
  2. function addzero(s: string; i: integer): string;//เป็น function สำหรับปรับ hn โดยเติม 0 ข้างหน้าให้ตรงตามจำนวนหลักของ รพที่ตั้งไว้ (7 หรือ 9 หลัก)
  3. begin
  4.   //result:=s;
  5.   while length(s) < i do
  6.   begin
  7.     s := '0' + s;
  8.   end;
  9.   result := s;
  10. end;
  11. procedure main;
  12. var
  13.   Excel : Variant;
  14.   Workbook : Variant;
  15.   Worksheet : Variant;
  16.   Cells : Variant;
  17.   Item : Variant;
  18.   X, Y : Integer;
  19.   row_count : Integer;
  20.   cell_data : string;
  21.   hn_int,i:integer;
  22.   fhn : string;
  23.   fhcode,fhname,fprovince_id : string;
  24.   fdatapath:string;
  25.  begin
  26.    i:=0;
  27.   fdatapath:='d:\book1.xls';//path ที่เก็บ excel file ที่ต้องการ
  28.  
  29.   showmessage('Excel import data By Yindee'+#13+
  30.   'Data path = '+fdatapath);
  31.   if messagedlg('Please confirm import , old data  will be replace ?',
  32.      mtconfirmation,[mbyes,mbno],0)<>mryes then exit;
  33.  
  34.   Excel := CreateOleObject('Excel.Application');
  35.   try
  36.     Workbook := Excel.Workbooks.open(fdatapath);
  37.     Cells := Excel.Cells;
  38.     x:=1;
  39.     y:=1;
  40.     row_count:=0;
  41.     repeat
  42.       cell_data := cells.item(y,x);
  43.       row_count:=row_count+1;
  44.       y:=y+1;
  45.     until cell_data='';
  46.  
  47.     Item := Cells.Item(2,2); // row, col
  48.  
  49.     //showmessage(formatdatetime('yyyy-mm-dd',item));
  50.  
  51.     row_count:=row_count-1;
  52.  
  53.     showmessage('Found   '+inttostr(row_count-1)+' Records');
  54.  
  55.   for x:=2 to row_count do
  56.     begin
  57.     i:=i+1;
  58.       fhn:=cells.item(x,4);  // HN in column number 4
  59.  
  60.       SetStatusLabel('Processing HN '+fhn);
  61.       SetProgressBar(x,row_count);
  62.       ShowDebugText('Record no.'+inttostr(i)+'   import HN '+fhn+'..... OK');
  63.             if length(fhn)>0 then
  64.         begin
  65.         fhcode:=cells.item(x,1);
  66.         fhname:=cells.item(x,2);
  67.         fprovince_id:=cells.item(x,3);
  68.         fcds.close;
  69.         fcds.datarequest('select * from zdata where hn="'+fhn+'"');
  70.         fcds.open;
  71.         fcds.first;
  72.         if fcds.recordcount=0 then
  73.         fcds.insert
  74.       else
  75.       fcds.edit;
  76.         fcds.fieldbyname('hn').asstring:=addzero(fhn,7);
  77.         fcds.fieldbyname('hcode').asstring:=fhcode;
  78.         fcds.fieldbyname('hname').asstring:=fhname;
  79.         fcds.fieldbyname('province_id').asstring:=fprovince_id;
  80.          fcds.post;
  81.         fcds.datarequest('select * from zdata where hn="'+fhn+'"');
  82.         applyupdate_fcds(-1);
  83.  
  84.         fcds.close;
  85.  
  86.  
  87.          end;
  88.  
  89.       application.processmessages;
  90.  
  91.     end;
  92.  
  93.  
  94.   finally
  95.  
  96.     Excel.Quit;
  97.   end;
  98.     ShowDebugtext('====================================================');
  99.   showDebugtext('Import Done.');
  100.  
  101. end;
  102. end.
  103.  
  104.  
หมายเหตุ
เนื่องจาก file excel ต้นฉบับ มี hn บางรายที่จำนวนหลักไม่เท่ากับของ รพ ผมจึงใช้ function addzero ช่วยปรับตอนนำเข้าให้ครับ ซึ่งในตัวอย่างผมตั้ง hn เป็น 7 หลักครับ และผมได้แนบ doraemon_excel.cds มาด้วยครับ
« แก้ไขครั้งสุดท้าย: กุมภาพันธ์ 22, 2010, 01:44:08 AM โดย naj »
Yindee And Tan

ออฟไลน์ siemens

  • Jr. Member
  • **
  • กระทู้: 87
  • Respect: 0
    • ดูรายละเอียด
Re: ตัวอย่าง Script import Excel data to HOSxP
« ตอบกลับ #1 เมื่อ: กุมภาพันธ์ 22, 2010, 20:06:59 PM »
0
ขอบคุณหลายเด้อ..................... ;D

// วันนี้พี่ไปรามาการ์เดน เจอรถโรงพยาบาลหลวงพ่อเปิ่น เลยเกร่ไปถามหา อจ.นาจ เสียดายไม่ได้เจอกันครับ
อนุโรจน์  วิสุทธิ์เจริญพร

โรงพยาบาลบ้านค่าย อ.บ้านค่าย จ.ระยอง

OS : Hosxp version 3.52.7.3 --->3.53.11.29
Server : CentOS 5.3 + MySQL 5.1.37 percona Ram 10G
Slave   : CentOS 5.3 + MySQL 5.1.37 percona Ram   3G 

since 4 July 2009   by  BMS team

moderator of smart-mobile.com

"What the will wills it has already. For the will wills its will. Its will is what it has willed. The will wills itself." fROM M. Heideggers

ออฟไลน์ thannawe

  • Hero Member
  • *****
  • กระทู้: 2,904
  • Respect: +8
    • ดูรายละเอียด
Re: ตัวอย่าง Script import Excel data to HOSxP
« ตอบกลับ #2 เมื่อ: กุมภาพันธ์ 22, 2010, 20:53:45 PM »
0
สุดยอด!!  ;D ;) :D
กิจจา ชาญธัญกรรม
นักวิชาการคอมพิวเตอร์ชำนาญการ รพ.โพธาราม จ.ราชบุรี
็HOSxP XE

ออฟไลน์ naj

  • Hero Member
  • *****
  • กระทู้: 2,449
  • Respect: +10
    • ดูรายละเอียด
    • http://www.luangphopern-hospital.com
Re: ตัวอย่าง Script import Excel data to HOSxP
« ตอบกลับ #3 เมื่อ: กุมภาพันธ์ 22, 2010, 21:39:23 PM »
0
ขอบคุณหลายเด้อ..................... ;D

// วันนี้พี่ไปรามาการ์เดน เจอรถโรงพยาบาลหลวงพ่อเปิ่น เลยเกร่ไปถามหา อจ.นาจ เสียดายไม่ได้เจอกันครับ
:D :D :D :D :D
Yindee And Tan

ออฟไลน์ jdadmin1

  • Hero Member
  • *****
  • กระทู้: 6,468
  • "เครื่องชำรุด...งดใช้งานชั่วคราว"
  • Respect: +33
    • ดูรายละเอียด
Re: ตัวอย่าง Script import Excel data to HOSxP
« ตอบกลับ #4 เมื่อ: กุมภาพันธ์ 22, 2010, 22:00:10 PM »
0
อ้างถึง
วันนี้พี่ไปรามาการ์เดน เจอรถโรงพยาบาลหลวงพ่อเปิ่น เลยเกร่ไปถามหา อจ.นาจ เสียดายไม่ได้เจอกันครับ
;D ;D ;D ผมก็เจอบ่อยครับแต่เข้าไปถามแล้วถึงรู้ครับว่าอ.นาจไปไหนไม่ได้ ตอนแรกผมไม่เชื่อน้านาญนะคิดว่าอำผมเล่น แต่ตอนนี้เชื่อแล้วครับว่าเป็นเรื่องจริง ;D ;D ;D
โรงพยาบาลพระสมุทรเจดีย์สวาทยานนท์ จังหวัดสมุทรปราการ
Master   : HOSxP 3.67.6.5
Slave1   : HOSxP 3.67.6.5
Upgrade 8/06/2567
Facebook : Suntad Mamak

ออฟไลน์ asawincyber

  • Hero Member
  • *****
  • กระทู้: 1,011
  • สู้ต่อไป ทาเกชิ
  • Respect: 0
    • ดูรายละเอียด
    • http://www.okhospital.net
Re: ตัวอย่าง Script import Excel data to HOSxP
« ตอบกลับ #5 เมื่อ: กุมภาพันธ์ 22, 2010, 22:06:06 PM »
0
อ้างถึง
วันนี้พี่ไปรามาการ์เดน เจอรถโรงพยาบาลหลวงพ่อเปิ่น เลยเกร่ไปถามหา อจ.นาจ เสียดายไม่ได้เจอกันครับ
;D ;D ;D ผมก็เจอบ่อยครับแต่เข้าไปถามแล้วถึงรู้ครับว่าอ.นาจไปไหนไม่ได้ ตอนแรกผมไม่เชื่อน้านาญนะคิดว่าอำผมเล่น แต่ตอนนี้เชื่อแล้วครับว่าเป็นเรื่องจริง ;D ;D ;D
ที่ไปไม่ได้ เพราะยังไม่ได้รับการอนุมัติจาก ผอ.ทบ. (ผู้อำนวยการที่บ้าน)  ;D ;D
เสน่ห์  คงมูล (เอก)
โรงพยาบาลองครักษ์ อ.องครักษ์ จ.นครนายก
HOSxP  3.56.2.26  Activate License
Server : DELL T710 Xeon 5500 Ram 64Gb (16 X 4GB) 10600R Centos 5.5 64 bit MySQL 5.5.11 percona By อ.อ็อด
Server : IBM X3400 2.4 Ghz. Ram 4Gb. Centos 5.5 64 bit MySQL 5.5.11 percona By อ.อ็อด

ออฟไลน์ Svl2Nuk3

  • Hero Member
  • *****
  • กระทู้: 793
  • Respect: 0
    • ดูรายละเอียด
Re: ตัวอย่าง Script import Excel data to HOSxP
« ตอบกลับ #6 เมื่อ: กุมภาพันธ์ 23, 2010, 01:41:06 AM »
0
ขอบคุณมากครับ
Script  แบบนี้ถ้าไม่ได้เห็น  code  มานั่งทำเองคงอีกนานเลยกว่าจะได้
I'm nuke (นุ๊ก)
My Blog  : http://www.codenuke.net
อดีต นวก.คอมฯ รพช.พรหมพิราม => 1 พ.ค. 52 - 30 ก.ย. 54
ปัจจุบัน : Software Engineer บริษัทแห่งหนึ่ง

ออฟไลน์ wiphusit

  • Hero Member
  • *****
  • กระทู้: 2,426
  • ยอดกมล
  • Respect: +4
    • ดูรายละเอียด
    • โรงพยาบาลทับปุด
Re: ตัวอย่าง Script import Excel data to HOSxP
« ตอบกลับ #7 เมื่อ: กุมภาพันธ์ 23, 2010, 08:27:37 AM »
0
ขอบคุณมากๆ ครับ
วิภูษิต  คงแก้ว เจ้าพนักงานเครื่องคอมพิวเตอร์ 
โรงพยาบาลทับปุด
อำเภอทับปุด จ.พังงา 82180
โทร 0-7659-9019 ต่อ 117,101
โทรสาร 0-7659-9115
Thailand.

ออฟไลน์ naj

  • Hero Member
  • *****
  • กระทู้: 2,449
  • Respect: +10
    • ดูรายละเอียด
    • http://www.luangphopern-hospital.com
Re: ตัวอย่าง Script import Excel data to HOSxP
« ตอบกลับ #8 เมื่อ: กุมภาพันธ์ 23, 2010, 08:54:27 AM »
0
อ้างถึง
ที่ไปไม่ได้ เพราะยังไม่ได้รับการอนุมัติจาก ผอ.ทบ. (ผู้อำนวยการที่บ้าน)  ;D ;D
ซะง้าน......จั๋งซี้มันต้องถอน
สู้ต่อไปทาเคชิ
Yindee And Tan

ออฟไลน์ niyomstd

  • Hero Member
  • *****
  • กระทู้: 1,270
  • Respect: +15
    • ดูรายละเอียด
    • โรงพยาบาลแม่เมาะ
Re: ตัวอย่าง Script import Excel data to HOSxP
« ตอบกลับ #9 เมื่อ: กุมภาพันธ์ 23, 2010, 09:29:27 AM »
0
อ นาจ นี่ เทพ จริงๆๆๆ
 ;) :) ;)
นิยม  สีทองแดง
โรงพยาบาลแม่เมาะ  ลำปาง(รพช.30 เตียง)
เริ่มใช้ HOSxP 2 เมษายน 2551
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Master :  CentOS