Thursday, July 28, 2011

Deploy Crystal Report on VS2010 and IIS 6.0

Deploy Crystal Report on VS2010 and IIS 6.0

สำรหรับบทความนี้ เป็นการแนะนำ การ Deploy Crystal Report บน VS2010 และ IIS 6.0 โดยผมได้เพิ่มเนื้อหาเรื่องการสร้างรายงาน Crstal report จาก DataSet และการดึงรายงานด้วย LINQ ให้ด้วย โดยมีขั้นตอนดังนี้
1. ก่อนอื่นให้ติดตั้ง SAP Crystal Report runtime engine for .NET Framework 4 บนเครื่องเซอร์ฟเวอร์
xxx1
2. เมื่อติดตั้งเรียบร้อย เราจะเห็น SAP Crystal Report runtime engine for .NET Framework 4 ในรายการ Add or Remove Program
xxx
รูป: SAP Crystal Report runtime engine for .NET Framework 4

3.สร้างโปรเจ็กต์ ด้วย ASP.NET Web Application
1

4. สร้าง Connection to Database ชี้ไปที่เซอร์ฟเวอร์ ในฐานข้อมูลที่ผมสร้างขึ้นเอง
xxx2

5.สร้าง LINQ เพื่อ Qurey ข้อมูลออกรายงาน ขอใช้ตัวอย่าง Employee โดยลากตากราง Employee ไปวางบนdesign surfaceจากนั้นบันทึก และBuild หนึ่งครั้ง
2

6. สร้าง DataSet โดย Add new Item เลือก DataSet=> ในหน้าจอ DataSet Designer ให้ลากตาราง Employee ในแทบ Server Explorer ไปวาง=>จากนั้นลบ Column ให้เหลือเฉพาะ Column ที่ต้องการแสดงบนรายงาน คือ EMP_ID, FName,LName =>จากนั้นบันทึก และ Build อีกหนึ่งครั้ง
3

7. สร้างรายงาน Crystal Report=> โดยการ Add new Item Crystal Reports=> เลือก Using the Report Wizard คลิก OK=> Project data=>ADO.NET Dataset แล้วเลือก Dataset1 เลือก Employee กดเลือก Selected Table กด Next=> เลือกฟิลด์ กด Next, Next, Finish 
4
ปล.
ถ้า VS2010 ยังไม่ติดตั้ง CR for VS2010 ให้โหลดได้จากที่นี่:http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0.exe

8. ออกแบบรายงานเรียบร้อย
5

9. เขียนโค้ด
ดับเบิ้ลคลิกลงบนปุ่ม report แล้วใส่โค้ดลงดังนี้
protected void btReport_Click(object sender, EventArgs e)
{
    using (DataClasses1DataContext dc = new DataClasses1DataContext())
    {
        var q = (from t in dc.Employees
                 select
                 new
                 {
                     t.EMP_ID,
                     t.FName,
                     t.LName
                 }).Take(40);
        CrystalDecisions.CrystalReports.Engine.ReportDocument rpt =
            new CrystalDecisions.CrystalReports.Engine.ReportDocument();
        rpt.Load(Server.MapPath(“CrystalReport1.rpt”));
        rpt.SetDatabaseLogon(“UserDatabase”, “PasswordDatabase”, “IPServer Database”, “Database Name”);
        rpt.SetDataSource(q.ToList());
        CrystalReportViewer1.ReportSource = rpt;
    }
}

10. ปรับ Properties ของไฟล์ CrystalReport1.rpt เพื่อเตรียมการ Deploy ขึ้น เซอร์ฟเวอร์โดยคลิกเลือกไฟล์ CrystalReport1.rpt ไปที่ Properties ทำการปรับ Build Action = Content และ Copy to Output Directory = Copy always จากนั้น Build อีกหนึ่งครั้ง แล้วคลิกขวาบนโปรเจ็กต์เลือก Publish… จะมีหน้าต่าง Publish Web ขึ้นมา ให้กำหนด Publish method = File System และ Target Location:.ให้ระบุพาธ(Virtual Directory…) ที่จะวาง Web site เช่นผมสร้าง Virtual Directory ชื่อ CRTEST ไว้บนเซอร์ฟเวอร์ Target Location: ผมระบุเป็น \\IPServer\\CRTEST และเลือก Delete all … เพื่อลบไฟล์ในพาธออกให้หมด ก่อนนำไฟล์ล่าสุดสุดไปวางแทน  
6
11 . ทดสอบเรียกรายงานให้เข้า url http://203.107.158.164/crtest/ คลิก ปุ่มReport
7

10. จะได้รายงานตามที่ออกแบบไว้
8
Link ที่เกี่ยวข้อง
Crystal reports Deployment with VS2010

No comments:

Post a Comment