รูปภาพแจ้งข่าว ทางเว็บบอร์ด openerpthailand.org ได้เปลี่ยนระบบเว็บบอร์ด ใหม่เป็น phpBB 3.1
  1. บุคคลทั่วไป จะไม่สามารถเข้าอ่านกระทู้บางบอร์ด แนะนำให้ท่าน สมัครสมาชิกคลิกตามลิงค์นี้
  2. สมาชิกใหม่ ถ้ายังไม่ได้แนะนำตัวจะไม่สามารถ ตั้งกระทู้ และ ดาวน์โหลด ไฟล์จากเว็บบอร์ดได้ ท่านจำเป็นต้องแนะนำตัวที่หมวดนี้
  3. ถ้ามีปัญหาการใช้งาน หรือ ข้อเสนอแนะใดๆ แนะนำได้ที่นี่
  4. ปุ่มรูปหัวใจใต้โพส แต่ละโพส ท่านสามารถกดเพื่อสื่อถึงคนโพสนั้นถูกใจท่าน
  5. ห้ามลง E-mail, เบอร์โทรส่วนตัว, Line id หรือข้อมูลส่วนตัวอื่นๆ เพื่อป้องกันการแอบอ้างและโฆษณาแฝง โดยสามารถติดต่อสมาชิกท่านอื่นผ่านระบบ PM ของบอร์ด
  6. ท่านสามารถปิดการแจ้งนี้ได้ ที่มุมขวาของกล่องข้อความนี้

บุคคลทั่วไปสามาเข้าสู่ระบบ ด้วย Account ของ FaceBook ได้แล้ว คลิกที่นี่ได้เลย

วิธีการทำ Dynamic image ใน IReport กับ Field ที่เก็บรูปภาพแบบ binary

หมวดนี้สำหรับนักพัฒนา Customize & Develop ปรับแต่งแก้ไขโค้ด รายงาน พัฒนาโมดูล ปรึกษาโค้ด ได้ที่หมวดนี้
กฎการใช้บอร์ด
หมวดนี้สำหรับนักพัฒนา
ลงโค้ดอย่าลืมครอบโค้ด เพื่อการแสดงผลที่อ่านง่ายสำหรับคนตอบ
ntnw
โพสต์: 112
ลงทะเบียนเมื่อ: ศุกร์ 25 ก.ค. 2014 10:20 am

วิธีการทำ Dynamic image ใน IReport กับ Field ที่เก็บรูปภาพแบบ binary

โพสต์โดย ntnw » เสาร์ 27 มิ.ย. 2015 2:25 pm

ตามสัญญา ครับ เพิ่งจะมีเวลา
เนื่องจาก IReport มันสั่ง Stream ค่า binary มาเป็น String ไม่ครบ เลยทำให้รูป ไม่ขึ้น
1. ลองสร้าง sql เรียก image มาดู
2. ใส่ Filed 'image' ใน IReport
3. ทดลอง Preview จะได้ค่าเป็น binary
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้

ntnw
โพสต์: 112
ลงทะเบียนเมื่อ: ศุกร์ 25 ก.ค. 2014 10:20 am

Re: วิธีการทำ Dynamic image ใน IReport กับ Field ที่เก็บรูปภาพแบบ binary

โพสต์โดย ntnw » เสาร์ 27 มิ.ย. 2015 2:27 pm

ขั้นตอนการ ทำมีส่วนที่เกี่ยวข้อง 2 ส่วนคือใน PGSql และ IReport ดังนี้

1. ที่ PGSql ให้สร้าง Function ชื่อ "bytea2text"

โค้ด: เลือกทั้งหมด

CREATE OR REPLACE FUNCTION bytea2text(bytea)
  RETURNS text AS
$BODY$
select ENCODE($1, 'escape');
$BODY$
  LANGUAGE sql VOLATILE STRICT
  COST 100;
ALTER FUNCTION bytea2text(bytea)
  OWNER TO openpg;
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้

ntnw
โพสต์: 112
ลงทะเบียนเมื่อ: ศุกร์ 25 ก.ค. 2014 10:20 am

Re: วิธีการทำ Dynamic image ใน IReport กับ Field ที่เก็บรูปภาพแบบ binary

โพสต์โดย ntnw » เสาร์ 27 มิ.ย. 2015 2:29 pm

2. ที่ IReport ให้ Select SQL ใหม่ ดังนี้

โค้ด: เลือกทั้งหมด

select image,bytea2text(image) as my_image from product_template


จะได้ field ชื่อ my_image เพิ่มมาซึ่งจะเป็น text แล้ว ไม่ใช่ binary
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้

ntnw
โพสต์: 112
ลงทะเบียนเมื่อ: ศุกร์ 25 ก.ค. 2014 10:20 am

Re: วิธีการทำ Dynamic image ใน IReport กับ Field ที่เก็บรูปภาพแบบ binary

โพสต์โดย ntnw » เสาร์ 27 มิ.ย. 2015 2:31 pm

Ok เตรียมข้อมูลพร้อม ต่อไป ก็ ทำรูปภาพ

1. ที่ Properties ของ Report ให้ import Base64 เข้าไปดังนี้

โค้ด: เลือกทั้งหมด

org.apache.commons.codec.binary.Base64
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้

ntnw
โพสต์: 112
ลงทะเบียนเมื่อ: ศุกร์ 25 ก.ค. 2014 10:20 am

Re: วิธีการทำ Dynamic image ใน IReport กับ Field ที่เก็บรูปภาพแบบ binary

โพสต์โดย ntnw » เสาร์ 27 มิ.ย. 2015 2:35 pm

2. สร้าง Variables มา 1 ตัว ชื่อ "SHOW_IMAGE" โดยมี Properties ดังนี้
2.1 Variable Class : java.io.InputStream
2.2 Variable Expression : "new ByteArrayInputStream(new Base64().decodeBase64($F{my_image}.getBytes("UTF-8")))"

3. ใช้ Control "Image" วางใน Report ตอนให้เลือก File กด Cancel ออกไป แล้วกำหนด Properties ดังนี้
3.1 Image Expression : $V{SHOW_IMAGE}
3.2 Expression Class : java.lang.string
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้

ntnw
โพสต์: 112
ลงทะเบียนเมื่อ: ศุกร์ 25 ก.ค. 2014 10:20 am

Re: วิธีการทำ Dynamic image ใน IReport กับ Field ที่เก็บรูปภาพแบบ binary

โพสต์โดย ntnw » เสาร์ 27 มิ.ย. 2015 2:37 pm

Preview == สำเร็จ

Note : ปัญหานี้จะไม่เกิดขึ้นถ้าใช้ QWEB Report ครับ เพราะใช้ widget image ได้เลย แต่ถ้าคิดว่าถนัด IReport ก็ จัดไป
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้

trongzav10
โพสต์: 3
ลงทะเบียนเมื่อ: พุธ 29 เม.ย. 2015 9:02 am

Re: วิธีการทำ Dynamic image ใน IReport กับ Field ที่เก็บรูปภาพแบบ binary

โพสต์โดย trongzav10 » ศุกร์ 03 ก.ค. 2015 7:29 pm

ขอบคุณ ครับ คุณ ntnw ทำได้แล้วครับ


  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 7 และ บุคคลทั่วไป 0 ท่าน