ได้ข้อมูลมาเยอะมาก อ่านผ่านๆไม่ค่อยรู้เรื่อง ก็ลงมือลองเขียนเลยครับ ปรากฏว่าไม่ยากเท่าไหร่ ติดที่ว่าไม่ถนัดครับ แต่ก็พอถูๆไถๆไปได้ ลองเขียน Daily Report ใช้เวลาคลำประมาณครึ่งชั่วโมงก็เสร็จครับ ไว้ถ้ามีเวลาจะศึกษาเพิ่ม แล้วจะมาลงวิธีการสร้างรายงานอีกที
พอสร้างรายงานเสร็จก็เขียนโค้ดสำหรับ Preview Report ครับ ก็ใช้ ReportViewer Control นั่นแหละ ก่อนอื่นสร้าง form สำหรับ query ข้อมูลก่อน แล้วพอ user กด print ก็ไปเปิด form ที่มี ReportViewer ขึ้นมาแสดง
Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click
Dim reports As List(Of Entity.ReportDailySummary) = ReportManager.GetDailySummaryReport(Me.dtpWorkingDate.Value)
If reports Is Nothing OrElse reports.Count = 0 Then
MsgBox("ไม่พบข้อมูล", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, My.Application.Info.Description)
Else
Dim ds As New Microsoft.Reporting.WinForms.ReportDataSource("ReportDailySummary", reports)
Dim params As New List(Of Microsoft.Reporting.WinForms.ReportParameter)
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("WorkingDate", Me.dtpWorkingDate.Value.ToString("dd MMMM yyyy")))
frmPreview.ReportViewer1.LocalReport.ReportPath = "rptDailySummary.rdlc"
frmPreview.ReportViewer1.LocalReport.DataSources.Add(ds)
frmPreview.ReportViewer1.LocalReport.SetParameters(params)
frmPreview.ReportViewer1.RefreshReport()
frmPreview.Text = "รายงานสรุปยอดขายประจำวัน"
frmPreview.ShowDialog()
End If
End Sub
เนื่องจากขี้เกียจ และต้องรีบไปออกรอบ ดังนั้นลงแค่ code พอ เผื่อว่าวันหลังลืมวิธี Preview Report จะได้มาค้นดูได้
ปล. วันนี้ตอนอยู่ที่ทำงานจะเขียนคำสั่งสำหรับ sort list ว่าจะใช้ Lamda Expression แต่นึกไม่ออก ลองเขียนแล้วก็รันไม่ผ่าน ยังดีที่ได้เอาโค้ดมาลง blog ไว้ เลยมาเปิดหาดู สะดวกดีครับ ดีกว่าไปเปิดโปรเจคเก่าๆมาหามากมายก่ายกอง
1 ความคิดเห็น:
ขอถามได้มั้ยค่ะ
ทำไมเชื่อมฐานข้อมูลกับ report แล้วรัน error
แสดงความคิดเห็น