RDU ! ตอนทำฉลากยาเสริม เพิ่มหน้าใหม่ สำหรับ HOSxP_PCU
มีพี่ๆ น้องๆ ถามมาว่า HOSxP_PCU ทำฉลากยาเสริม เพิ่มหน้าใหม่แล้ว แต่ พิมพ์ไม่ได้เลย หรือบางเครื่องก็มี Error ไปเลย ต้องกลับมาใช้ฟอร์มเดิม ยุ่งยาก ขอแบบง่าย ๆ มีไหม
…ผมก็เลยต้องกลับมาทบทวนใหม่ ว่า จะอธิบายยังไงให้เข้าใจดี
วันนี้เลยจะมาเรียบเรียงใหม่ ดูสิว่าจะมีท่านไหนเข้าใจบ้างนะครับ อะ…มาดูกันเลย
– อยากแรก เพิ่มข้อมูลในตารางนี้ก่อนเลย drugitems_advice ซึ่งเป็นตารางเก็บคำแนะนำ เพื่อที่จะเอาไปแสดงใน ใบสติกเกอร์ ฉลากยา นั้นเอง
โดยต้องสังเกตุที่ฟิวล์ icode นั้นคือเลขรหัสยา ที่แต่ละ รพ.สต. จะมี (ซึ่งไม่เหมือนกัน) ดังนั้นท่านควรตรวจสอบตรงนี้ด้วย โดยเวลาพิมพ์สติกเกอร์ icode นี้จะไปจับกับ icode ที่มีอยู่ในฐาน รพ.สต. นั้นๆ แล้วเวลาพิมพ์ออกมา ก็จะออกมาเฉพาะยาที่ได้เลือกไว้ นั้นเองครับ
ดาวโหลด ฐานตัวอย่างตาราง drugitems_advice ตามนี้ครับ Link ดาวโหลด
drugitems_advice_ด่านซ้าย (91 downloads )
ซึ่งหากต้องการแก้ไข เพิ่มเติม ก็แก้ไขได้ที่ฟิวล์ advice_text หรือ ฟิวล์ advice_eng_text
– ต่อมาก็ไป แก้ไขฟอร์มสติกเกอร์ยา กันครับ เข้าไปที่โฟรเดอ C:\Program Files (x86)\HOSxP_PCU
แล้วกำหนด Properties ให้ user ของเรามีสิทธิสูงสุด Full control ตามรูปนี้ครับ
เพื่อให้เวลาเราจะแก้ไขฟอร์ม จะแก้ไขได้เลย ไม่เกิด error access denied ครับ
หรืออีกวิธี ให้ท่านคลิกขวา แล้วเลือกเมนู run as administrator ก็ได้ เช่นกัน
พอเปิดโปรแกรม HOSxPStickerPrintServer.exe มาแล้วก็เข้าไปเมนู
ปุ่ม Design Detail OPD เพื่อจะเข้าไปออกแบบฟอร์มฉลากเสริม
เข้าไปแท็บ Calc เพื่อเข้าไปเขียนโค้ด สำหรับ สั่งให้ดึงข้อมูล drugitems_advice มาก่อน
สร้างตัวแปร ก่อนที่ Declarations –> Variables –> var ตามรูป
เสร็จแล้วก็ให้คลิกขวา ที่ช่อง Module View จะมีเมนูให้เลือก คลิก Events ก็จะมีเมนู สำหรับกำหนด Report Objects ให้ไปเลือก Report–>Detail –> BeforePrint
เราก็จะใส่โค้ดนี้ไปใน events for Detail –> BeforePrint วางโค้ดนี้ไปครับ
****************************
icode_count := GetSQLStringData(‘select count(icode)as cc ‘+
‘ from drugitems_advice where icode =”‘+DBPipeline1[‘icode’]+'” ‘);
if strtoint(icode_count) > 0 then
begin
Header.visible := false;
SubReport1.visible := true;
end
else
begin
if GetSQLStringData(‘select count(*)as cc from drugitems_advice where icode in(‘+DBPipeline1[‘icode’]+’) ‘)=’0’ then
Header.visible := false
else
Header.visible := true;
SubReport1.visible := false;
end;
******************************
วางเสร็จแล้วก็ให้คลิกขวา
แล้วดู error ข้างล่าง หากพบว่า Compile Completed: 0 Errors แสดงว่าไม่พบ error เป็นอันผ่านนะครับ
ต่อมากลับไปที่แท็บ Design
ก็จะไปเอา SubReport มาวางไว้ด้านล่าง ตามรูป แล้ว
ต่อมาก็ไปคลิกเลือก SubReport1: DiPipeLine1
เอา Label มาวาง ด้านบน หัวตามรูป
เอา RichText มาวาง ด้านล่าง หรือตรงกลาง ตามรูป
ใส่ข้อความตัวอย่าง ไว้ก็ได้เพื่อให้มองออก เพราะถ้ากำหนดขนาดตัวอักษรใหญ่เกินไป มันอาจจะตกขอบกระดาษได้ ตรงนี้เอาที่ความกว้าง x ยาว พอดีกับฟอร์มพอนะครับ
ยังไม่เสร็จ….ต่อมา
– ไปที่แท็บ Calc เพื่อสั่งให้หน้านี้ทำงานตาม record ที่ตัวรายงานพิมพ์แต่ละหน้าๆ
เลือก SubReport1 –> OnPrint –> ใส่โค้ดตามนี้เข้าไป
******************
icode_count := GetSQLStringData(‘select count(icode)as cc ‘+
‘ from drugitems_advice where icode =”‘+DBPipeline1[‘icode’]+'” ‘);
if strtoint(icode_count) > 0 then
begin
advice_text := GetSQLStringData(‘select advice_text ‘+
‘ from drugitems_advice where icode =”‘+DBPipeline1[‘icode’]+'” ‘);
advice_eng_text := GetSQLStringData(‘select advice_eng_text ‘+
‘ from drugitems_advice where icode =”‘+DBPipeline1[‘icode’]+'” ‘);
Label5.caption := advice_eng_text;
RichText1.richtext := advice_text;
Header.visible := false;
SubReport1.visible := true;
end
else
begin
if GetSQLStringData(‘select count(*)as cc from drugitems_advice where icode in(‘+DBPipeline1[‘icode’]+’) ‘)=’0’ then
Header.visible := false
else
Header.visible := true;
SubReport1.visible := false;
end;
******************
แล้วกดคลิกขวา
เลือกเมนู Compile ดูว่ามี errors ไหม ถ้าไม่มีจะแสดงเป็น 0 Errors ก็แสดงว่าผ่านไปต่อได้
ปิดหน้าจอนี้ได้เลย ระบบจะทำการบันทึกให้เอง
ก็จะกลับมาหน้าจอเมนูหลัก
แล้วลองพิมพ์รายงานใน HOSxP_PCU ดูครับ
ถ้าพิมพ์ออกมาได้รูปตามนี้ก็ถือว่า ใช้งานได้แล้วนะครับ
หากมี error ก็ให้กลับไปทบทวนใหม่ ตั้งแต่ต้นๆ นะครับ
ขอบคุณที่ติดตาม มีคำถามหรือข้อเสนอแนะ ก็แจ้งเข้ามาได้ที่
https://www.facebook.com/arm.youant
แล้วพบกันใหม่ในบทความต่อไป ครับ