Wednesday, February 18, 2009

Printing mode crystal report on web

ปริ้นโหมดของ crystal report ผ่านเว็บ



# ปกติเมื่อเราเขียน app ธรรมดาเมื่อใช้ crystal report ออกรายงานเมื่อสั่ง print ก็จะขึ้น print control แล้วก็ปริ้นได้เลย



# พึ่งรู้อ่ะ ว่าเว็บมันไม่ใช่แบบ app หว่าโดยค่าเริ่มต้น crystal report เมื่อออกผ่านเว็บจะ export เป็น pdf อัตโนมัติเลย มันปริ้นเลยไม่ได้หว่า

# อ้าว ถ้าเครื่องเค้าไม่ได้ลง pdf reader จะทำไงล่ะ ก็ Export เป็นรูปแบบอื่นสิครับค่อยปริ้น ซะงั้น ^^'

# แต่เดี๋ยวก่อน เพราะเห็นใน crystal report viewer มี property ตัวหนึ่งใช้ตั้งโหมดการ print อยู่

เค้าแก้แบบนี้ป่าวหว่า

1. เพิ่มโค้ดคุณสมบัติของ PrintMode เป็น ActiveX หรือ Pdf ในที่นี้เราไม่ต้องการ Pdf ก็เลือก ActiveX ซะ

CrystalReportViewer1.ReportSource = rpt;
CrystalReportViewer1.DataBind();
CrystalReportViewer1.PrintMode = CrystalDecisions.Web.PrintMode.ActiveX;



2. พอออกรายงานแล้วมันขึ้นแค่กรอบเนี๋ยแล้วไม่เกิดอาไรขึ้นเลย เข้าใจว่า ie ยังไม่ได้ลง ActiveX แน่เลย งง อย่างแล้วถ้ายังไม่ได้ติดตั้ง ActiveX แล้วทำไม ไม่เห็นมี popup สำหรับติดตั้ง ActiveX ขึ้นมาเลยอ่ะ อ่านในเว็บอื่นเค้าก็ให้ไปตั้งค่า ie ให้รับ ActiveX ได้โดยไปตั้งค่าดังนี้



# เปิด ie แล้วไปที่เมนู Tools => Internet Options => Security => Custom level...



# ที่ Automatic prompting for ActiveX controls ให้เรา Enable และ Ok



# เปิด ie ขึ้นมารัน crystal report ดูเค้าก็จะขึ้น popup ให้เราติดตั้ง ActiveX ก็ติดตั้งซะ



3. เมื่อติดตั้ง ActiveX แหละ ลองปิดและเปิด ie อีกครั้งออกรายงานดู ก็จะขึ้น print control เหมือนกับการสั่งปริ้นด้วย app แหละ

Notes:
  • อ้าวแล้วถ้าเราใช้หมาย่างล่ะ จะติดตั้ง ActiveX ไงหว่า แล้วถ้าติดตั้งไม่ได้แล้วจะปริ้นไงล่ะทีนี้
  • เอ่อจะว่าไปแล้วใช้ printmode เป็น pdf ก็ดีอย่างนะไม่ต้องห่วงเรื่อง browser ตัวที่ client ใช้
  • ลองปรับเป็น activex mode แล้วใช้ FF ปริ้นไง๋มัน ปรับเป็น pdf ให้เลยหว่า
  • แต่ลองปริ้นโดย ie7 ก็ใช้ print control ขึ้นนะ ดีจังแฮะปรับ mode อัตโนมัติเลย (หรือป่าว)
  • สำหรับเมนู ie7 ให้กด alt ก่อนจะปรากฏเมนูบาร์ขึ้นมา
References:

No comments:

Post a Comment