วิธีใช้ Crystal Report ใน ASP.Net
ใน Window App. ใช้ Crystal Report นั้นไม่ยากแต่ ใน Web App. ใช้ Crystal Report แล้วแต่ข้อมูลไม่ออกมาให้เห็น
จึงได้ทดลองค้นหาวิธีทำตั้งนานหลายชั่วโมง
จนกระทั่งทำได้สำเร็จได้ผลตามต้องการ
แต่นี่ยังไม่ใช่วิธีที่ดีที่สุด ก็ต้องทดลองใช้ดูแล้วค่อย ๆ พัฒนาหาวิธีการที่ดีกว่านี้
ในเบื้องต้นจะเอาตัวอย่างเท่าที่ทำได้ผลแล้วมาแสดงให้เห็นก่อนดังนี้
1.สร้าง Dataset ขึ้นมาสมมุติขื่อ Dataset1.xsd ในนี้มี DataTable ชื่อ DataTable1
2.สร้าง Crystal Report สมมุติชื่อ CR1.rpt
- DataBase Expert > Project Data > ADO.NET Dataset > Dataset1
- ทำตามขั้นตอนการสร้าง Crystal Report ทั่ว ๆ ไป
3.ใน Code-Behind เขียนคำสั่งดังนี้
Imports CrystalDecisions.Shared Imports CrystalDecisions.CrystalReports.Engine Imports System.Data.SqlClient Partial Class DailyMeterList Inherits System.Web.UI.Page Dim R1 As New ReportDocument Protected Sub btnPreview_Click ... Dim xFile As String = Server.MapPath("CR1.rpt") R1.Load(xFile, OpenReportMethod.OpenReportByDefault) Dim objConn As New SqlConnection(YourConnectString) Dim DA As SqlDataAdapter Dim ds As New DataSet Dim dt As DataTable Dim strCmd As String strCmd = "SELECT * FROM WorkTable " objConn.Open() DA = New SqlDataAdapter(strCmd, objConn) DA.Fill(ds, "DataTable1") dt = ds.Tables("DataTable1") R1.Database.Tables(0).SetDataSource(ds.Tables(0)) V1.ReportSource = R1 End Sub End Class 'แต่เกิดปัญหาว่าเวลากด Next เพื่อดูหน้าต่อไปปรากฎว่า 'รายงานไม่แสดงผลเลยจึงแก้ด้วย Code ดังนี้ Protected Sub Page_Load ... If Page.IsPostBack Then btnPreview_Click(sender, e) End If End Sub
ความหมายของ Dim R1 As New ReportDocument คืออะไรครับตีความหมายไม่ออกนครับ ( ผมตีไปว่า ตัวแปล R1 เป็นที่เก็บ เอกสาร )
ReplyDeleteถูกต้องครับ
Deleteเราต้องประกาศ Dim R1 As New ReportDocument
เพื่อใช้ตัวแปร R1 เป็นตัวแทนของ ออปเจค ReportDocument
สอบถามหน่อยนะคะ ถ้าตรง
ReplyDeleteImports CrystalDecisions.Shared
Imports CrystalDecisions.CrystalReports.Engine
Dim R1 As New ReportDocument
เกิดขึ้น error วิธีแก้ไขอย่างไรบ้างคะ รบกวนด้วยนะคะ