ASP.Net: สร้าง Crystal Report แบบง่ายๆ ใน VS 2005
หลังจากเราได้สร้าง ฐานข้อมูลไว้เรียบร้อยแล้ว และต้องการนำเอามาแสดงเป็น Crystal Report สามารถทำตามลำดับขั้นตอนดังนี้ (จะอธิบายก่อนแสดงรูปภาพ)
1.สร้างไฟล์ DataSet สำหรับดึงข้อมูลจาก Database ก่อน
-โดยการคลิกขวา ที่ โฟรเดอร์ App_Code แล้วเลือก Add New Item… เลือก Dataset แล้วกด Add
-เลือกตำแหน่งไฟล์ของไฟล์ Database
- ทำตาม Wizard ไปเรื่อยๆ จนกระทั้งถึงหน้านี้ (ตามรูป) จะเป็นการสร้างเมทธอดในการคิวรีข้อมูล ให้เช็คถูกเฉพาะหัวข้อ
Return a DataTable แล้วให้ตั้งชื่อเมทธอดอะไรก็ได้ (ของผมชื่อ GetWebData)
-ทำไปจนกระทั้งเสร็จ จากนั้นลองทดสอบการคิวรีดู ให้คลิกขวาที่เมทธอดที่เราสร้าง (GetWebData()) แล้วก็เลือก Preview Data… แล้วคลิก Preview เหมือนในรูป
2.สร้างไฟล์ Crystal Report - คลิก Add New Item… แล้วเลือก Crystal Report ตั้งชื่อแล้วกด Add
-แล้วมันจะขึ้น Wizard มาให้ จากรูปจะมีให้เลือก 3 แบบ ให้เลือกแบบ Standard กด ok
- ทำการเลือกแหล่งข้อมูลที่ต้องการนำมาแสดง ให้เลือกจาก DataSet ที่เราได้สร้างเอาไว้
-ทำการเลือกฟิลด์ที่ต้องการนำมาแสดง
-ต้องการจัดกลุ่มตามฟิลด์ไหน
-ต้องการข้อมูลสรุปของฟิลด์ใดบ้าง ใช้กรณีฟิลด์ที่เป็นตัวเลขแล้วต้องการผลรวมทั้งหมด
-ต้องการกรองข้อมูลในฟิลด์ใดบ้าง
- เลือกรูปรายงาน จากนั้นก็กด Finish
3.ทำการแสดงผลด้วย Crystal Report Control
-กลับไปยังหน้าเว็บ (*.aspx) ที่ Toolbox ให้ลาก Control ของ Crystal Report คือ CrystalReportSource และ CrystalReportViewer
-ที่ CrystalReportSource ตรงเมนู Configure Report Source… ให้เลือกไฟล์ Crystal Report (*.rpt) ที่เราสร้าง
-เสร็จแล้วไปยังหน้าโค้ด (*.aspx.cs) ที่ Page_Load พิมพ์โค้ดดังนี้ เพื่อทำการบอกให้ Engine ของ Crystal Reports ทราบ เพื่อแก้ไขปัญหาการให้ Logon ก่อนการแสดงผล
protected void Page_Load(object sender, EventArgs e)
{
DataSet1TableAdapters.weblistTableAdapter dw = new DataSet1TableAdapters.weblistTableAdapter();// สร้างออบเจกต์จาก DataSet Adapter ของ DataSet1 ที่เราสร้างไว้ตอนแรก
DataTable dt = dw.GetWebData();// สร้างออบเจกต์ Datatable และเรียกใช้เมธอด GetWebData()ที่เป็นการคิวรีข้อมูลที่เราสร้างไว้ตอนแรก ไปเก็บไว้ใน Data table
CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument();// สร้างออบเจกต์ของ Engine ของ Crystal Reports
report.Load(Server.MapPath(“WebCrystalReport.rpt”)); //ทำการอ้างอิงตำแหน่งไฟล์ ของ Crystal Reports report.SetDataSource(dt);
CrystalReportViewer1.ReportSource = report;
// ทำการแสดงผล
}
-ทำการรันโปรแกรม จะได้ผลลัพท์ดังรูป
บน เมษายน 3, 2008 บน 3:11 pm
ลองทำตามวิธีที่แนะนำแล้ว แต่ใช้ vb.net แล้วแสดงมาแค่ตารางเดียวเอง
อยากรู้ว่าถ้า select จากตารางมากกว่า 1 ตาราง ต้องเขียนโค้ดยังหรอ
เพราะลองเขียนโค้ดดูแล้วมันไม่แสดงอะไรเลยอ่ะ
บน มิถุนายน 20, 2008 บน 9:00 am
DataSet1TableAdapters.weblistTableAdapter dw = new DataSet1TableAdapters.weblistTableAdapter();
ต้อง add reference อะไรเพิ่มค่ะ มัน error
ขอบคุณค่ะ
บน กรกฎาคม 2, 2008 บน 2:59 pm
แบบนี้ใช้ where ได้ไหม ที่ dataset ว่าต้องการข้อมูลที่เลือกอ่ะ
บน มีนาคม 6, 2009 บน 12:01 am
ขอเสนอความเห็นว่าให้เขียนเป็น view ใน Database ก่อน จะใช้ field อะไร มีเงื่อนไขอะไร ก็ทำใน view
บน มีนาคม 6, 2009 บน 12:02 am
แทนที่จะเลือก Dataset จาก table ก็ให้เลือกจาก view แทน
บน กันยายน 18, 2010 บน 4:07 pm
@kwan
ประกาศส่วน header library เพิ่มครับ
using CrystalDecisions.CrystalReports;
จากนั้น ไปที่หน้า solution explorer เพิ่ม reference CrystalDecisions.CrystalReports.dll เข้าไป และหา พาทใน Crystal report ให้เจอนะครับ
ถามผู้รู้ท่านอื่นต่อบ้างนะครับ ว่า
DataTable dt = dw.GetWebData(); ตกหล่นอะไรหรือป่าวครับ
รู้สึกว่าจะ compile ไม่ผ่าน และมีปัญหาที่ DataTable ครับ
บน กันยายน 18, 2010 บน 4:58 pm
หาเจอแล้วครับ
ลืม ประกาศ ไลบรารี่
using System.Data;
using System.Data.SqlClient;
บน กันยายน 20, 2010 บน 2:53 pm
พอดีผมใช้ VS2010 และใช้ CR for .net และ for VS 201 ver 14.0
ใช้ตัว report_viewer ไม่ได้เลย ใครพอจะทราบว่าต้อง import .dll ใดบ้าง
เพราะ นั่งหาดู มันเสียเวลาเหลือเกิน เยอะจัด
บน กุมภาพันธ์ 10, 2011 บน 3:36 pm
มีวิธีการเซตอัพ cristal report รึเปล่าคะ กำลังศึกษา ทุกทีใช้ html ทำรายงานตลอด
บน กุมภาพันธ์ 20, 2011 บน 6:28 pm
ขอบคุณมากครับ
หามากนานแระวิธีนี้
บน ธันวาคม 19, 2011 บน 12:57 am
ขอบคุณมากครับ กว่าจะหาวิธีได้