thongkorn โพสต์ 2017-11-11 11:23:06

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

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

มาดูหน้าจอ Design ...
http://www.g2gnet.com/webboard/images/vbnet/arnet/ARNetBasicDesign.png
ก็ใช้วิธีการมาตรฐานคือการเลือก Control ต่างๆมาวางแปะลงบน ActiveReports Designer โดยแยกเป็นส่วนๆตามชื่อ สำหรับ Detail ก็คือส่วนที่เราต้องการพิมพ์ข้อมูล

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

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

Public Class NewActiveReport1

    Private Sub NewActiveReport1_ReportStart(sender As Object, e As System.EventArgs) Handles Me.ReportStart
      '/ การตั้งค่าหน้ากระดาษ
      With PageSettings
            '/ หน่วยวัดเป็นนิ้ว (ใช้ CmToInch ด้วยการรับค่าเซนติเมตร แต่แปลงเป็นนิ้วแทน เพื่อวัดระยะได้ง่ายกว่า)
            .Margins.Left = CmToInch(1.5)
            .Margins.Right = CmToInch(0.2)
            .Margins.Top = CmToInch(1.5)
            .Margins.Bottom = CmToInch(1.5)
            '/ ตั้งค่ากระดาษแนวตั้ง
            .Orientation = PageOrientation.Portrait
            '/ กระดาษขนาด A4
            .PaperKind = Drawing.Printing.PaperKind.A4
            '/ กรณีที่กำหนดขนาดกระดาษเอง
            '/ .PaperKind = Drawing.Printing.PaperKind.Custom
      End With
      '// กำหนดค่าให้กับ Control แบบ Run Time
      With Barcode1
            .Text = "G2GNET-2017"
            .Style = BarCodeStyle.Code39
            .CaptionPosition = BarCodeCaptionPosition.Above
      End With
      TextBox1.Text = "ทดสอบการใช้งาน ActiveReports .NET"
      TextBox2.Text = "ส่วนของ Detail"
    End Sub

    Private Sub PageFooter1_Format(sender As System.Object, e As System.EventArgs) Handles PageFooter1.Format
      Label1.Text = "หน้าที่: " & Me.PageNumber
    End Sub
End Class
มาดูโค้ดในส่วนของ Viewer เพื่อผูก ActiveReports Designer มาแสดงผลลงบนฟอร์มของ VB
Public Class Form1

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

Yupaporn โพสต์ 2019-4-30 13:38:39

C:\Users\yupaporn.c\Desktop\1111\111.png

ทำโปรแกรมเปิดไม่ได้คะ

sonthaya โพสต์ 2021-3-17 09:12:02

แล้วจะเอา ข้อความด้านบน บาร์โต๊ต ออก ได้อย่างไรบ้างครับ

http://www.g2gnet.com/webboard/images/vbnet/arnet/ARNetBasicRun.png

thongkorn โพสต์ 2021-3-17 11:29:41

sonthaya ตอบกลับเมื่อ 2021-3-17 09:12
แล้วจะเอา ข้อความด้านบน บาร์โต๊ต ออก ได้อย่างไรบ้างครับ

คลิ๊กเลือกบาร์โค้ด แล้วไปดูที่ Properties ... CaptionPosition --> None คือไม่แสดงผลข้อมูลของบาร์โค้ดครับ ส่วน Above-บน และ Below-ล่าง
หน้า: [1]
ดูในรูปแบบกติ: [VB.NET] ก้าวแรกกับการพิมพ์รายงานด้วย ActiveReports .NET