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

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

[VB.NET] โค้ดการพิมพ์ชื่อที่อยู่ผู้รับออกซองจดหมายขนาด 23x11 ซม. ด้วย ActiveReports .NET

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

308

กระทู้

498

โพสต์

5971

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
5971




สำหรับสาย VB6 + ActiveReports 2.0 สามารถอ่านรายละเอียดและดาวน์โหลดโค้ดได้ที่หัวข้อ โค้ดการพิมพ์ชื่อที่อยู่ผู้รับออกซองจดหมายขนาด 23x11 ซม. ด้วย ActiveReports 2.0 ... ในส่วนของรายละเอียดวิธีการขั้นตอนต่างๆ แอดมินจะขอข้ามไปเพราะได้เคยกล่าวนำไปหลายครั้งแล้ว สำหรับมิตรรักแฟนคลับสายพันธุ์ Visual Basic ที่เผลอพลัดหลงเข้ามาเห็นเว็บไซต์แห่งนี้ จงใช้ความพยายามในการค้นหาข้อมูลพื้นฐาน หรือการใช้งานเบื้องต้นของ ActiveReports เอาเองด้วยเถิดครับผม ...
การใช้งาน ActiveReports Designer ...

l


มาดูโค้ดในส่วนของฟอร์มหลัก ...
  1. ' / --------------------------------------------------------------------
  2. ' / Developer : Mr.Surapon Yodsanga (Thongkorn Tubtimkrob)
  3. ' / eMail : thongkorn@hotmail.com
  4. ' / URL: http://www.g2gnet.com (Khon Kaen - Thailand)
  5. ' / Facebook: https://www.facebook.com/g2gnet (For Thailand)
  6. ' / Facebook: https://www.facebook.com/commonindy (Worldwide)
  7. ' / Purpose : Print out standard envelope 23x11 cm. with ActiveReports.NET 6.0
  8. ' / Microsoft Visual Basic .NET (2010) SP1

  9. ' / This is open source code under @CopyLeft by Thongkorn Tubtimkrob.
  10. ' / You can modify and/or distribute without to inform the developer.
  11. ' / --------------------------------------------------------------------
  12. Imports DataDynamics.ActiveReports

  13. Public Class frmPrintEnvelope

  14.     ' / --------------------------------------------------------------------
  15.     Private Sub frmPrintEnvelope_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  16.         txtAddress.Text = _
  17.                 "กรุณาส่ง" & vbCrLf & _
  18.                 "นายทองก้อน ทับทิมกรอบ" & vbCrLf & _
  19.                 "555 ม.555 ซ.ห้าห้าห้า ถ.กลางเมือง" & vbCrLf & _
  20.                 "ต.เมืองเก่า อ.เมือง" & vbCrLf & _
  21.                 "จ.ขอนแก่น 40000"
  22.         '// ตั้งค่า ActiveReports
  23.         Viewer1.ReportViewer.Zoom = 0.75F   ' Zoom = 75%
  24.         Viewer1.ReportViewer.DisplayUnits = Viewer.DisplayUnits.Metric
  25.         '// Form Minimum Size
  26.         Me.MinimumSize = New Size(781, 631)

  27.         '// ตั้งค่าการพิมพ์จากขอบซ้ายของซองจดหมาย
  28.         txtLeftMargin.Text = "80"
  29.         '// ตั้งค่าการพิมพ์จากด้านบน
  30.         txtTopMargin.Text = "25"

  31.         '// Initialize Font
  32.         lblDataFont.Font = New Font("BrowalliaUPC", "16")
  33.         lblDataFont.Text = lblDataFont.Font.Name & " " & lblDataFont.Font.Size
  34.     End Sub

  35.     ' / --------------------------------------------------------------------
  36.     Private Sub btnPrintPreview_Click(sender As System.Object, e As System.EventArgs) Handles btnPrintPreview.Click
  37.         If txtLeftMargin.Text = "" Then txtLeftMargin.Text = "80"
  38.         If txtTopMargin.Text = "" Then txtTopMargin.Text = "25"

  39.         '/ Instance name ARDesigner มันจะชี้ไปที่ไฟล์ arPrintEnvelope.vb
  40.         Dim rpt As New arPrintEnvelope()
  41.         '/ โหลดรายงาน document (arPrintEnvelope) เข้าสู่ ActiveReports Viewer
  42.         Me.Viewer1.Document = rpt.Document
  43.         '/ Run Report
  44.         rpt.Run()
  45.     End Sub

  46.     ' / --------------------------------------------------------------------
  47.     Private Sub btnFont_Click(sender As System.Object, e As System.EventArgs) Handles btnFont.Click

  48.         Dim FontDialog As FontDialog = New FontDialog
  49.         '// FontDialog รับค่าปัจจุบันจาก lblDataFont
  50.         FontDialog.Font = New Font(lblDataFont.Font.Name, lblDataFont.Font.Size, lblDataFont.Font.Style)

  51.         If FontDialog.ShowDialog <> Windows.Forms.DialogResult.Cancel Then
  52.             lblDataFont.Font = FontDialog.Font
  53.             lblDataFont.Text = lblDataFont.Font.Name & " " & lblDataFont.Font.Size
  54.         End If
  55.     End Sub

  56.     ' / --------------------------------------------------------------------
  57.     ' / ก่อนใช้งาน Form_KeyDown ได้ ต้องกำหนดค่าให้ KeyPreview = True ก่อน
  58.     Private Sub frmPrintEnvelope_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
  59.         Select Case e.KeyCode
  60.             Case Keys.F7
  61.                 Call btnPrintPreview_Click(sender, e)
  62.             Case Keys.F10
  63.                 Call btnExit_Click(sender, e)
  64.         End Select
  65.     End Sub

  66.     ' / --------------------------------------------------------------------
  67.     Private Sub txtLeftMargin_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtLeftMargin.KeyPress
  68.         '// หากกด Enter
  69.         If e.KeyChar = Chr(13) Then
  70.             e.Handled = True
  71.             '// เลื่อนไป Control ถัดไป
  72.             SendKeys.Send("{TAB}")
  73.         Else
  74.             '// เช็คการกดคีย์ให้รับเฉพาะ 0 - 9 เท่านั้น
  75.             e.Handled = CheckDigitOnly(Asc(e.KeyChar))
  76.         End If
  77.     End Sub

  78.     ' / --------------------------------------------------------------------
  79.     Private Sub txtTopMargin_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtTopMargin.KeyPress
  80.         '// หากกด Enter
  81.         If e.KeyChar = Chr(13) Then
  82.             e.Handled = True
  83.             '// เลื่อนไป Control ถัดไป
  84.             SendKeys.Send("{TAB}")
  85.         Else
  86.             '// เช็คการกดคีย์ให้รับเฉพาะ 0 - 9 เท่านั้น
  87.             e.Handled = CheckDigitOnly(Asc(e.KeyChar))
  88.         End If
  89.     End Sub

  90.     ' / --------------------------------------------------------------------
  91.     ' / ฟังค์ชั่นในการป้อนเฉพาะค่าตัวเลขได้เท่านั้น
  92.     Function CheckDigitOnly(ByVal index As Byte) As Boolean
  93.         Select Case index
  94.             Case 48 To 57 ' เลข 0 - 9
  95.                 CheckDigitOnly = False
  96.             Case 8, 13 ' Backspace = 8, Enter = 13
  97.                 CheckDigitOnly = False
  98.             Case Else
  99.                 CheckDigitOnly = True
  100.         End Select
  101.     End Function

  102.     Private Sub frmPrintEnvelope_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
  103.         Me.Dispose()
  104.         Application.Exit()
  105.     End Sub

  106.     Private Sub btnExit_Click(sender As System.Object, e As System.EventArgs) Handles btnExit.Click
  107.         Me.Close()
  108.     End Sub

  109.     Private Sub ToolStripStatusLabel2_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripStatusLabel2.Click
  110.         Process.Start("http://www.facebook.com/g2gnet")
  111.     End Sub
  112. End Class
คัดลอกไปที่คลิปบอร์ด


มาดูโค้ดในส่วนของ ActiveReports Designer ...
  1. ' / --------------------------------------------------------------------
  2. ' / Developer : Mr.Surapon Yodsanga (Thongkorn Tubtimkrob)
  3. ' / eMail : thongkorn@hotmail.com
  4. ' / URL: http://www.g2gnet.com (Khon Kaen - Thailand)
  5. ' / Facebook: https://www.facebook.com/g2gnet (For Thailand)
  6. ' / Facebook: https://www.facebook.com/commonindy (Worldwide)
  7. ' / Purpose : Print out standard envelope 23x11 cm. with ActiveReports.NET 6.0
  8. ' / Microsoft Visual Basic .NET (2010) SP1

  9. ' / This is open source code under @CopyLeft by Thongkorn Tubtimkrob.
  10. ' / You can modify and/or distribute without to inform the developer.
  11. ' / --------------------------------------------------------------------
  12. Imports DataDynamics.ActiveReports
  13. Imports DataDynamics.ActiveReports.Document

  14. Public Class arPrintEnvelope

  15.     Private Sub Detail1_Format(sender As System.Object, e As System.EventArgs) Handles Detail1.Format
  16.         txtRecipient.Text = frmPrintEnvelope.txtAddress.Text
  17.     End Sub

  18.     Private Sub arPrintEnvelope_ReportStart(sender As Object, e As System.EventArgs) Handles Me.ReportStart
  19.         ' จะเริ่มต้นการทำงานที่โปรแกรมย่อยตัวนี้

  20.         ' การตั้งค่าแบบ Run Time (มีหน่วยวัดเป็นนิ้ว)
  21.         With PageSettings
  22.             .Margins.Left = 0.25
  23.             .Margins.Right = 0.25
  24.             .Margins.Top = 0.5
  25.             .Margins.Bottom = 0.5
  26.             ' ตั้งค่ากระดาษแนวตั้ง
  27.             .Orientation = PageOrientation.Landscape
  28.             ' ซองจดหมาย หรือ Envelope #10, ขนาด 4 1/8 x 9 1/2 in
  29.             .PaperKind = Drawing.Printing.PaperKind.Number10Envelope

  30.             ' กรณีที่กำหนดขนาดกระดาษเอง
  31.             ' .PaperKind = Drawing.Printing.PaperKind.Custom
  32.         End With
  33.         ' ความสูงของการพิมพ์ Detail
  34.         Detail1.Height = CmToInch(7.5) ' วัดระยะโดยประมาณ 7.5 ซม แต่แปลงเป็นนิ้ว)
  35.         ' กำหนดระยะการพิมพ์ที่อยู่ (รับค่าเป็นมิลลิเมตรเข้ามาหาร 10 เป็น ซม. แล้วแปลงเป็นนิ้ว)
  36.         txtRecipient.Top = ActiveReport.CmToInch(Val(frmPrintEnvelope.txtTopMargin.Text) / 10)
  37.         txtRecipient.Left = ActiveReport.CmToInch(Val(frmPrintEnvelope.txtLeftMargin.Text) / 10)

  38.         ' กำหนดฟอนต์
  39.         txtRecipient.Font = frmPrintEnvelope.lblDataFont.Font

  40.     End Sub
  41. End Class
คัดลอกไปที่คลิปบอร์ด
สาระสำคัญในส่วนของ AR Designer คือ ReportStart จะเป็นการเริ่มต้นตั้งค่าการพิมพ์ และนำข้อมูลมาพิมพ์ที่โปรแกรมย่อย Detail1_Format ...


ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) และ AR6 ได้ที่นี่ ...



ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

0

กระทู้

58

โพสต์

10

เครดิต

Member

Rank: 2

เครดิต
10
โพสต์ 2022-10-25 19:30:04 | ดูโพสต์ทั้งหมด

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

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

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

GMT+7, 2024-3-29 02:43 , Processed in 0.193540 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

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