28 เมษายน 2559

VFP : Display Base64 image

Base64 คือรูปแบบการเข้ารหัสวิธีหนึ่ง แต่ที่นิยมกันในปัจจุบันโดยการนำไปใช้เพื่อทำให้ข้อมูลที่เก็บอยู่ในรูปของไบนารี เช่น ภาพ JPG PNG หรือ Bitmap  กลายมาเป็นรูปแบบของตัวอักษร

นิยมนำไปใช้ภายใต้ HTML ตัวอย่างการใช้ ผ่านทางแท็ก img

<img src="data:image/jpg;base64,As10AAQSkZJRg........................Ed0/E//9k=" />

ถ้าหากต้องการเข้ารหัสภาพทางเว็บบราวเซอร์ สามารถเข้าไปที่เว็บ

https://www.base64-image.de/


สำหรับบทความนี้จะนำเสนอวิธีการใช้ด้วยโปรแกรม Visual FoxPro ดังนี้

การเข้ารหัสรูปแบบของภาพไปเป็น Base64

lcPictureFile = GETPICT( "jpg" )
lcPictBase64  = STRCONV( FILETOSTR( lcPictureFile ) , 13 )

การแปลงข้อมูล Base64 กลับไปเป็นแฟ้มภาพ

=STRTOFILE(STRCONV( lcPictBase64 , 14) , lcPictureFile)

การนำข้อมูล Base64 แสดงภายใต้คอนโทรล Image 

ThisForm.Image1.Picture = ""
ThisForm.Image1.PictureVal = STRCONV( lcPictBase64 , 14)

การนำเอาข้อมูล Base64 ไปออกรายงาน

ข้อมูล Base64 เป็นข้อมูลตัวอักษรธรรมดา ซึ่งเราสามารถนำไปบันทึกลงในฟิลด์ได้ทันที โดยเก็บไว้ในฟิลด์ประเภท memo หากต้องการนำข้อมูลมาแสดงผลเป็นรูปภาพในรายงาน สามารถทำได้หลายวิธีดังนี้

* สมมุติขอมูล Base64 ถูกเก็บไว้ที่ตาราง TableBase ภายใต้ฟิลด์ชื่อ Pict

วิธีที่ 1 

1. สร้างรายงาน CREATE REPORT myReport
2. ทำการสร้างตัวแปร โดยคลิกที่เมนู Report -> Variables...
    ที่แท็ป Variables ให้กำหนด
          Value to store:  BlobImage
          Initial value: CREATEOBJECT("Image")

3  นำคอนโทรล Picture/OLE มาใส่ในรายงาน
    double click จะเข้าสู่หน้าต่าง Picture/OLE Bound Properties
         ที่ แท็ป General คลิกเลือก Expression or variable name
         จากนั้นป้อนตัวแปรที่ช่อง Control source: BlobImage
         คลิกปุ่ม OK

4. double click ที่ Detail จะเข้าสู่หน้าต่าง Detail Band Properties
    คลิกที่แท็บ General
       ทีช่อง On entry: ใส่คำสั่ง
         
              EXECSCRIPT("Blobimage.PictureVal=STRCONV(TableBase.Pict , 14)")

              *** TableBase.Pict คือชื่อตารางและฟิลด์ที่เก็บข้อมูล Base64


ทำการบันทึกรายงาน เป็นอันเสร็จเรียบร้อย


วิธีที่ 2

1. สร้างรายงาน จากนั้นนำคอนโทรล Picture/OLE มาใส่
    double click กำหนดค่าในแท็บ General โดยคลิกเลือก Expression or variable name
    ที่ช่อง Control Source:  loRL.oBlobImage
    
    ** loRL คือชื่อ object  และ oBlobImage คือชื่อ property


2.  ทำการเขียนคำสั่ง เพื่อแสดงภาพในรายงาน ดังนี้

USE TableBase    && ตารางที่มีข้อมูล Base64

SET REPORTBEHAVIOR 90

loRL = NEWOBJECT( 'PreviewListener' )
loRL.InitBLOBImage( )  
loRL.LISTENERTYPE = 1  && Preview

REPORT FORM ชื่อรายงาน OBJECT loRL      

RETURN

DEFINE CLASS PreviewListener AS REPORTLISTENER
oBlobImage = NULL

PROCEDURE InitBLOBImage(lpcBlobField AS STRING)
THIS.oBlobImage = NEWOBJECT( 'IMAGE' )
THIS.oBlobImage.PICTUREVAL = STRCONV(Tablebase.pict , 14)
ENDPROC

PROCEDURE BEFOREBAND( nBandObjCode, nFRXRecNo )
IF nBandObjCode = 4 && Detail band
THIS.oBlobImage.PICTUREVAL = STRCONV(Tablebase.pict , 14)
ENDIF
ENDPROC
ENDDEFINE


เสร็จสำหรับการจัดการแสดงผลภาพจาก Base64 ในรายงาน


สำหรับการนำเสนอวิธีการจัดการกับการเข้ารหัสด้วย Base64 ก็จบเพียงเท่านี้

สวัสดี ปีที่มีอากาศร้อนที่สุดๆๆๆๆ

22 เมษายน 2559

VFP : ActiveVFP สร้างสรรค์เว็บด้วย VFP

ActiveVFP เป็นภาษาคลิปต์ที่ออกแบบมาสำหรับนักพัฒนาเว็บ โดยอาศัยพื้นฐานภาษา Visual FoxPro ในการพัฒนา (เหมือนกับการพัฒนาเว็บด้วยภาษา PHP, ASP) ActiveVFP ถูกสร้างขึ้นมาเป็นลักษณะของซอฟต์แวร์โอเพ่นซอรส์ เพื่อให้นักพัฒนาที่มีความถนัดในการเขียนโปรแกรม VFP สามารถนำไปใช้งานและต่อยอดความสามารถต่างๆ ได้อย่างสะดวกและรวดเร็ย โดยไม่จำเป็นต้องเรียนรู้ภาษาใหม่

จะหาโปรแกรม ActiveVFP ได้จากที่ไหน ?
ดาวน์โหลดโปรแกรมคลิกที่นี่

เตรียมการก่อนติดตั้งโปรแกรม ActiveVFP

การใช้งาน ActiveVFP จำเป็นต้องติดตั้ง IIS ก่อน เพื่อจำลองเครื่องคอมพิวเตอร์ของเราให้เป็น Web Server ดังนี้
1. คลิกที่เมนู Start ของ Windows เพื่อเปิด Control Panel -> Programs -> Programs and Features จะเข้าสู่หน้าต่าง Unstall or change a program ให้คลิกเลือก Turn Windows features on or off

2. ที่หน้าต่าง Windows Features ให้เลือกติดตั้ง Insternet Information Service และเลือก รายการ Application Development Features ตามต้องการ ดังภาพตัวอย่าง

คลิกปุ่ม OK
ระบบจะทำการติดตั้ง IIS จนแล้วเสร็จ

3. ทำการทดสอบว่าสามารถใช้งาน IIS ได้หรือยัง โดยเปิดโปรแกรมเว็บบราวเซอร์ แล้วพิมพ์ url
http://localhost
หากติดตั้งสำเร็จ จะขึ้นเว็บ ดังภาพ (ขึ้นอยู่กับรุ่นของ IIS)

วิธีการติดตั้งโปรแกรม ActiveVFP

1. ให้เรียกไฟล์ติดตั้งที่ทำการดาวน์โหลดมา (ActiveVFP603,exe) ขณะที่โปรแกรมทำการติดตั้งจะปรากฏหน้าจอให้กำหนดไดเรคทอรีสำหรับเว็บไซต์
ให้กำหนดชื่อตามต้องการ ดังภาพ

หลังจากทำการตั้งชื่อแล้วกดปุ่ม Enter โปรแกรมจะทำการติดตั้งไฟล์ต่างๆ ลงในไดเรคทอรีที่กำหนด จากนั้น โปรแกรมจะให้เรากำหนดชื่อของ Virtual Directory Name ให้กำหนดชื่อตามต้องการ ดังภาพ
เมื่อกำหนดชื่อเรียบร้อยให้กดปุ่ม Enter โปรแกรมจะทำการเพิ่ม Web Site ที่เรากำหนดให้กับ IIS
เมื่อติดตั้งเรียบร้อย กด Enter แล้วจะปรากฎหน้าต่างเว็บบราวเซอร์ แสดงรายละเอียดของ ActiveVFP ดังภาพ

เสร็จสิ้นสำหรับการติดตั้ง ActiveVFP

การปรับแต่ง ActiveVFP ให้สนับสนุนภาษาไทย และภาษาอื่นๆ 

1. ให้ทำการเปิดโฟลเดอร์ที่ทำการติดตั้ง ActiveVFP  จากนั้นเข้าไปที่โฟลเดอร์ย่อย ชื่อ prg ดังภาพ

ทำการเปิดโปรแกรม VisualFoxPro แล้วเข้าไปแก้ไขโปรแกรม .prg ที่อยู่ในโฟล์เดอร์เหล่านี้ โดยทำการค้นหา คำสั่ง

oHTML.mergescript(lcHTMLout)

เมื่อพบแล้ว ให้เพิ่มคำสั่ง

 lcHTMLout=STRCONV(lcHTMLout,11)           && for support thai language

โดยนำคำสั่งข้างต้นไว้ก่อนหน้าบรรทัดที่ค้นหาพบ ดังภาพ

ให้ค้นหาทุกไฟล์ .prg และเพิ่มตามตัวอย่าง ก็จะทำให้การแสดงผลและการใช้ภาษาไทยบนหน้าเว็บเป็นไปอย่างถูกต้อง

การกำหนดให้สามารถพิมพ์รายงานของ VisualFoxPro

ขั้นตอนนี้เป็นการกำหนดให้ ActiveVFP สามารถเรียกใช้รายงานของ VisualFoxPro (.frx) ที่ได้ทำการสร้างไว้
1. ให้ทำการดาวน์โหลโปรแกรม Ghostscript จากเว็บไซต์

http://ghostscript.com/download/gsdnld.html

แล้วทำการติดตั้งลงในคอมพิวเตอร์

2. ทำการเปิด Windows Command Prompt ในโหมด Run As Administrator

3. ไปที่โฟล์เดอร์ที่เราได้ติดตั้ง ActiveVFP แล้วเข้าไปที่โฟลเดอร์ reports ทำการ Register ไฟล์  PDFRun.exe โดยอ้างโฟลเดอร์แบบเต็ม ตามตัวอย่างดังภาพ

4. ทำการกำหนดสิทธิ์ให้กับ PDFrun.Print2PDF  โดยการเรียกใช้คำสั่ง mmc comexp.msc /32 ในโหมด Run as Administrator (สำหรับ Windows 7 หรือรุ่นที่สูงกว่า) หรือ DCOMCNFG (สำหรับรุ่นที่ต่ำกว่า Windows 7)
5. ที่หน้าต่าง Component Serveice ให้เข้าไปกำหนดสิทธิให้กับรายการ PDFrun.Print2PDF
โดยให้สิทธิกับผู้ใช้
IIS_IUSRS
IUSR

เป็นอันเสร็จเรียบร้อย

5. ให้ทำการเพิ่มเครื่องพิมพ์ให้กับ Windows โดยทำการเพิ่มเครื่องพิม์
Xerox Phaser 6120 PS  (สำหรับ Windows7 หรือสูงกว่า)
Xerox Phaser 1235 PS  (สำหรับ Windows Vista)
Apple Color LW 12/660 PS (สำหรับ Windows 2003 Server)

สำหรับบทความนี้ก็ขอจบเพียงเท่านี้

สวัสดีมีเว็บใช้งาน

"I Believe in You"

Copyright(c) 2007 - 2022 by Kasem Kamolchaipisit.