ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 995|ตอบกลับ: -1

[VB.NET] ก้าวแรกกับการพิมพ์รายงานด้วย ActiveReports .NET

[คัดลอกลิงก์]

174

กระทู้

221

โพสต์

1680

เครดิต

ผู้ดูแลระบบ

Rank: 9Rank: 9Rank: 9

เครดิต
1680


ก็ต้องเรียกได้ว่าเป็นก้าวแรกจริงๆแหละครับทั่นผู้ชม แต่แอดมินจะเน้นไปที่การเขียนโค้ดแล้วสั่งให้ทำงานจึงจะเห็นผลลัพธ์ หรือที่เราเรียกว่า Run Time มากกว่าการใช้วิธีจับ Control ลากมาวางแปะลงบนฟอร์ม หรือที่เราเรียกว่า Design Time เพราะวิธีการนี้พอถึงจุดๆหนึ่งมันจะตันจนหาทางออกไม่ได้ ... แต่เกือบจะทุกงานนั่นแหละ มันก็ต้องมีทั้ง Design Time และ Run Time มาผสมปนเปกันไป ซึ่งก็ขึ้นอยู่กับทักษะ และประสบการณ์ของแต่ละบุคคล ก็พยายามหมั่นลองศึกษากันไปนะข่ะรับกระผม

มาดูหน้าจอ Design ...

ก็ใช้วิธีการมาตรฐานคือการเลือก Control ต่างๆมาวางแปะลงบน ActiveReports Designer โดยแยกเป็นส่วนๆตามชื่อ สำหรับ Detail ก็คือส่วนที่เราต้องการพิมพ์ข้อมูล

เราสามารถกำหนดค่าคุณสมบัติ (Properties) ต่างๆให้กับ Control ของตัว ActiveReports ในแบบ Design Time และดูผลด้วยการ Preview ได้เลยทันที นี่ก็จะเป็นการทดสอบเบื้องต้น เพราะอย่าลืมว่าข้อมูลที่ถูกส่งมาพิมพ์จริงๆ มันไม่ได้เป็นแบบนิ่งๆไม่ไหวติงหรือ Static แต่จะแปรเปลี่ยนผันไปตลอด หรือ Dynamic ...

โค้ดในส่วนของ ActiveReports ...
  1. Imports DataDynamics.ActiveReports
  2. Imports DataDynamics.ActiveReports.Document

  3. Public Class NewActiveReport1

  4.     Private Sub NewActiveReport1_ReportStart(sender As Object, e As System.EventArgs) Handles Me.ReportStart
  5.         '/ การตั้งค่าหน้ากระดาษ
  6.         With PageSettings
  7.             '/ หน่วยวัดเป็นนิ้ว (ใช้ CmToInch ด้วยการรับค่าเซนติเมตร แต่แปลงเป็นนิ้วแทน เพื่อวัดระยะได้ง่ายกว่า)
  8.             .Margins.Left = CmToInch(1.5)
  9.             .Margins.Right = CmToInch(0.2)
  10.             .Margins.Top = CmToInch(1.5)
  11.             .Margins.Bottom = CmToInch(1.5)
  12.             '/ ตั้งค่ากระดาษแนวตั้ง
  13.             .Orientation = PageOrientation.Portrait
  14.             '/ กระดาษขนาด A4
  15.             .PaperKind = Drawing.Printing.PaperKind.A4
  16.             '/ กรณีที่กำหนดขนาดกระดาษเอง
  17.             '/ .PaperKind = Drawing.Printing.PaperKind.Custom
  18.         End With
  19.         '// กำหนดค่าให้กับ Control แบบ Run Time
  20.         With Barcode1
  21.             .Text = "G2GNET-2017"
  22.             .Style = BarCodeStyle.Code39
  23.             .CaptionPosition = BarCodeCaptionPosition.Above
  24.         End With
  25.         TextBox1.Text = "ทดสอบการใช้งาน ActiveReports .NET"
  26.         TextBox2.Text = "ส่วนของ Detail"
  27.     End Sub

  28.     Private Sub PageFooter1_Format(sender As System.Object, e As System.EventArgs) Handles PageFooter1.Format
  29.         Label1.Text = "หน้าที่: " & Me.PageNumber
  30.     End Sub
  31. End Class
คัดลอกไปที่คลิปบอร์ด

มาดูโค้ดในส่วนของ Viewer เพื่อผูก ActiveReports Designer มาแสดงผลลงบนฟอร์มของ VB
  1. Public Class Form1

  2.     Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
  3.         Dim rpt As New NewActiveReport1
  4.         ' / --------------------------------------------------------------------------------
  5.         ' / ส่วนที่สำคัญในการผูก ARDesigner เข้ากับรายงาน
  6.         ' / Instance name ARDesigner มันจะชี้ไปที่ไฟล์ NewActiveReport1.vb
  7.         ' / โหลดรายงาน Document (NewActiveReport1) เข้าสู่ ActiveReports Viewer
  8.         Me.Viewer1.Document = rpt.Document
  9.         ' / --------------------------------------------------------------------------------
  10.         ' / ปรับการย่อขยาย (Zoom) ของหน้ารายงาน
  11.         Viewer1.ReportViewer.Zoom = 0.95 ' 95%
  12.         ' / Run Report
  13.         rpt.Run()
  14.     End Sub
  15. End Class
คัดลอกไปที่คลิปบอร์ด
เพียงเท่านี้ก็เป็นการสิ้นสุดกระบวนการ
ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้ที่นี่

ARNetBasic.zip

22.96 KB, ดาวน์โหลดแล้ว: 0

สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2019-4-20 19:49 , Processed in 0.351099 second(s), 6 queries , File On.

Powered by Discuz! X3.3 R20170401, Rev.54

© 2001-2017 Comsenz Inc.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้