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

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

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

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

311

กระทู้

502

โพสต์

6050

เครดิต

ผู้ดูแลระบบ

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

Rank: 9Rank: 9Rank: 9

เครดิต
6050


เท่าที่แอดมินรู้จักกับคนทำงานสาย IT Support ส่วนมากหากเก่ง Hardware แต่มักจะอ่อนเรื่อง Software หรือบางทีก็จะตรงข้ามกัน มันอาจจะเป็นเพราะความชอบ หรือความถนัดมากกว่า คำว่า Software ที่แอดมินหมายถึง คือ การพัฒนางานด้วยการเขียนโปรแกรมขึ้นมาเอง ไม่ได้หมายถึงการนำเอาโปรแกรมของคนอื่นเขามาใช้นะครับ การเริ่มต้นด้วยงานเขียนโปรแกรมเล็กๆน้อยๆ เพื่อหาจุดเริ่มต้น จะนำทางให้ก้าวเดินต่อไป ในการพัฒนาขีดความสามารถของตัวเองให้สูงขึ้น เช่น  เพิ่มเติมการปรับฟอนต์หรือขนาดตัวอักษร จัดระยะการพิมพ์ทั้งจากซ้ายและด้านบน รวมไปถึงระบุชื่อผู้ส่ง ฯลฯ ต่อจากนั้นก็ใส่ฐานข้อมูลลูกค้าลงไป โอ้ย!!! เยอะแยะไปหมดล่ะครับ หากเรารู้จักการพัฒนาตัวเองแบบก้าวไปทีละขั้น ...

ดาวน์โหลดชุดติดตั้ง ActiveReports 2.0 ได้ที่นี่ (เฉพาะสมาชิกเท่านั้น)


หน้าจอ Design Time ของ VB6


การเพิ่มรายงาน ActiveReports 2.0 Designer


หน้าจอสำหรับ ActiveReports Designer

เนื่องจากแอดมินได้สาธยายกล่าวถึงการทำงานของ VB6 + ActiveReports 2.0 ไปเยอะแล้ว จะไม่ขอพูดถึงหลักการให้ซ้ำซากล่ะกันครับ

มาดูโค้ดในส่วนของฟอร์ม VB6 ...
  1. Option Explicit

  2. Private Sub cmdPreview_Click()
  3.     '/ ประกาศตัวแปรแบบ Object เพื่อรับงานไปพิมพ์
  4.     Dim rptPrint As Object
  5.     '/ ส่วนสำคัญในการทำรายงานด้วย Active Report คือการตั้งค่า หรือ การผูกรายงานเข้ากับ Object
  6.     Set rptPrint = New arPrintEnvelope   ' มาจากชื่อไฟล์รายงาน (Designer)
  7.     '/ ARViewPrintEnvelope ตัวนี้คือ Control ที่วางไว้อยู่บนฟอร์ม frmAR2PrintEnvelope
  8.     Set Me.ARViewPrintEnvelope.object = rptPrint
  9.    
  10. End Sub

  11. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  12.     '/ ก่อนจะใช้ Sub Program นี้ได้ ... พี่น้องต้องกำหนดค่าของ Form ให้คุณสมบัติ KeyPreview = True ก่อน
  13.     Select Case KeyCode
  14.         Case vbKeyF1: MsgBox "No help now."
  15.         Case vbKeyF7:
  16.                     Call cmdPreview_Click
  17.         Case vbKeyF10:
  18.                     cmdExit_Click
  19.    End Select
  20. End Sub

  21. Private Sub Form_Load()
  22. On Error GoTo ErrorHandler
  23.    
  24.     '/ ตั้งตำหน่งกึ่งกลางจอภาพ ... การใช้ \ หรือ การหารตัดเศษ จะทำงานได้เร็วกว่าการหาร /
  25.     Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
  26.    
  27.     With ARViewPrintEnvelope
  28.         .Zoom = 80   ' ค่า % การแสดงผล
  29.         '/ และอื่นๆอีก ...
  30.     End With
  31.    
  32.     txtAddress.Text = "กรุณาส่ง" & vbCrLf & _
  33.                             "คุณทองก้อน ทับทิมกรอบ" & vbCrLf & _
  34.                             "Thongkorn Service Co., Ltd." & vbCrLf & _
  35.                             "123/456 ถ.วิภาวดีรังสิต" & vbCrLf & _
  36.                             "แขวงสนามบิน เขตดอนเมือง" & vbCrLf & _
  37.                             "กรุงเทพฯ 10210"
  38.     txtNote.Text = "(เรารักภาษาเบสิค)"
  39.    
  40. ExitProc:
  41.     Exit Sub
  42.    
  43. ErrorHandler:
  44.     MsgBox "Error : " & Err.Number & vbCrLf & Err.Description, vbOKOnly + vbExclamation, "รายงานความผิดพลาด"
  45.     Resume ExitProc
  46. End Sub

  47. Private Sub Form_Resize()
  48.     On Error Resume Next
  49.     If Me.Width < 10530 Then Me.Width = 10530
  50.     If Me.Height < 8865 Then Me.Height = 8865
  51.     '/ จัดระเบียบสังคม เอ๊ย หน้าตาการแสดงผล ...
  52.     fraPreview.Move 15, 2280, Me.ScaleWidth - 30, Me.ScaleHeight - fraPreview.Top - 330
  53.     ARViewPrintEnvelope.Width = fraPreview.Width - 90
  54.     ARViewPrintEnvelope.Height = fraPreview.Height - 230
  55.     '/
  56.     cmdPreview.Move Me.ScaleWidth - cmdPreview.Width - 60
  57.     cmdExit.Left = cmdPreview.Left
  58. End Sub

  59. Private Sub Form_Unload(Cancel As Integer)
  60.     On Error Resume Next
  61.     '/ ก่อนจบโปรแกรม ควรลบไฟล์ขยะออกไปให้หมด (Temporary File)
  62.     If Dir$(App.Path & "\*.tmp") <> "" Then Kill App.Path & "\*.tmp"
  63.     End
  64. End Sub

  65. Private Sub cmdExit_Click()
  66.     Unload Me
  67. End Sub
คัดลอกไปที่คลิปบอร์ด

โค้ดในส่วนของ ActiveReports 2.0 ซึ่งเสมือนฟอร์มๆหนึ่งบน VB6
  1. Option Explicit

  2. ' / -----------------------------------------------------------------------------------------------
  3. ' โปรแกรมย่อยในการตั้งค่าเริ่มต้น (Initialize) ต่างๆ ก่อนที่จะทำการพิมพ์ออกไป
  4. ' / -----------------------------------------------------------------------------------------------
  5. Private Sub ActiveReport_Initialize()
  6.    
  7.     '/ ตั้งค่ากระดาษในแนวนอน
  8.     PageSettings.Orientation = ddOLandscape
  9.    
  10.     '/ ซองจดหมาย หรือ Envelope #10, ขนาด 4 1/8 x 9 1/2 in
  11.     PageSettings.PaperSize = 20
  12.    
  13.     '/ ปรับระยะขอบต่างๆ (หน่วย Twip เด้อครับ)
  14.     PageSettings.LeftMargin = 300
  15.     PageSettings.RightMargin = 300
  16.     PageSettings.BottomMargin = 100
  17.     PageSettings.TopMargin = 1300
  18.    
  19.     '/ เคลียร์ค่าการพิมพ์รายชื่อ ที่อยู่ลูกค้า
  20.     txtRecipient.Text = ""
  21.     txtNote.Text = ""
  22.    
  23. End Sub

  24. ' / -----------------------------------------------------------------------------------------------
  25. ' / Detail คือส่วนที่พิมพ์ข้อมูล รายละเอียดต่างๆ ของการทำรายงานด้วย Active Report
  26. ' / -----------------------------------------------------------------------------------------------
  27. Private Sub Detail_Format()
  28.     On Error Resume Next
  29.    
  30.     '/ ใช้ TextBox ตัวเดียวก็พอในการพิมพ์ที่อยู่ผู้รับ ... แต่อย่าลืมตั้งค่า Properties ให้ MultiLine = True
  31.     txtRecipient.Text = frmAR2PrintEnvelope.txtAddress
  32.     txtNote.Text = frmAR2PrintEnvelope.txtNote
  33.    
  34. End Sub

  35. Private Sub ActiveReport_ReportEnd()
  36.     Unload Me
  37. End Sub
คัดลอกไปที่คลิปบอร์ด

ดาวน์โหลดโค้ดต้นฉบับแบบเต็ม VB6 ได้ที่นี่


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

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

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

0

กระทู้

5

โพสต์

30

เครดิต

Newbie

Rank: 1

เครดิต
30
โพสต์ 2019-6-25 15:11:59 | ดูโพสต์ทั้งหมด

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

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

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

GMT+7, 2024-4-25 05:20 , Processed in 0.149387 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

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