หลายคนคงจะเข้าใจว่าเครื่องมือในการพัฒนาโปรแกรมของ Oracle อย่าง Form Builder คงจะเก่งแต่การจัดการกับข้อมูลในฐานข้อมูล ส่วนเรื่องที่จะเอาเครื่องมือนี้ไปพัฒนาโปรแกรมที่จะต้องติดต่อสื่อสาร (Communicate) กับ Hardware อื่น ๆ ผ่านทาง Communication Port หรือ Serial Port คงจะทำไม่ได้ หลายคนก็เลยเปลี่ยนใจไปใช้ Tools อื่น ๆ พัฒนาแทน เพราะมีบาง Application ที่จะต้องคุยกับ Hardware อื่น ๆ เช่น โปรแกรมระบบงานขายสดอย่าง Point of Sales (POS) ซึ่งจะต้องต่อเชื่อมกับป้าย Display เพื่อแสดงราคาให้ลูกค้าเห็น โดยที่ป้าย Display นี้จะเป็นอุปกรณ์ Hardware ตัวหนึ่งที่ต่อเชื่อมกับเครื่อง PC ผ่านทาง Serial Port
บทความนี้จะมาช่วยไขข้อข้องใจให้กับหลาย ๆ คนได้เกี่ยวกับการใช้ Oracle Foms ติดต่อสื่อสารและส่งข้อมูลผ่านทาง Communication Port หรือ Serial Port โดยในที่นี้จะกล่าวถึงการพัฒนาด้วย Oracle Forms Version 6i โชคดีที่ Oracle Forms ได้เตรียมเครื่องมือ OLE Container มาให้ เราจะมาทดลองเขียนโปรแกรมส่งข้อมูลไปยัง Comm Port ได้ดังนี้
1. สร้าง Form ใหม่ขึ้นมา แล้วเปิด Canvas จากนั้นที่แถบเครื่องมือด้านซ้าย (Tools Palette) ให้คลิกเลือกเครื่องมือ OLE Container แล้วนำมาวางใน Canvas คลิกขวาที่ Object นั้นแล้วเลือก Insert Object จะปรากฏ Insert Object Dialog Box ขึ้นมาให้คลิก Create Control และในช่อง Control Type เลือก Microsoft Comunications Control แล้วคลิก OK
2. ถึงตรงนี้ถ้าไม่มีอะไรผิดพลาดเราจะเห็น OLE Object ที่เราสร้างขึ้นเป็นรูปโทรศัพท์ ต่อไปเราจะมาสร้างปุ่ม Comm Port Test โดยผลลัพธ์จากการกดปุ่มจะเป็นการสั่งให้โปรแกรมส่ง Output ที่เป็นตัวอักษรไปยัง Communication Port ซึ่งในที่นี้เราจะทดสอบกับพอร์ต Comm1 โดยเขียนโค้ดใน When-Button-Pressed Trigger ดังนี้
หลังจากเขียนโค้ดเสร็จก็ลอง run โปรแกรม โดยถ้าจะให้เห็นภาพมากขึ้นก็อาจจะต้องมีอุปกรณ์ที่เป็น Hardware มาต่อเชื่อมที่พอร์ต Comm1 ของเครื่อง PC เช่นป้าย Display หรืออาจจะเป็นเครื่องพิมพ์ชนิดที่ต่อผ่าน Comm Port ก็จะเห็นผลลัพธ์นั้นแสดงออกมา หวังว่าบทความนี้คงจะเป็นแนวทางในการนำไปเขียนโปรแกรมที่ใช้สื่อสารกับอุปกรณ์อื่น ๆ ผ่านทาง Communication Port ได้บ้างไม่มากก็น้อยนะครับ
รบกวนช่วยส่ง code ให้ที่ email siteesiteesitee@yahoo.com หน่อยครับ ผมกำลังทดลองใช้งานอยู่ แต่รูปเล็กมาก ขยายขึ้นมาแล้วภาพมันแตก อ่านไม่รู้เรื่องครับ
ตอบลบขอบคุณมากครับ