หากมีคำถาม ขอให้ไปโพสต์ลง เว็บบอร์ดจีทูจีเน็ตดอตคอม ตัวใหม่แทนน่ะครับ

หรือติดต่อเข้ามาทาง Inbox ที่ เฟซบุ๊ค ผมครับ

หน้าหลัก
ข่าวสาร - บทความ ทั้งหมด
VB 6/VB.Net
ASP/ASP.Net
จับฉ่ายคอมพิวเตอร์
เรียนรู้ผ่าน Flash Movie
บทความที่มีผู้ตอบล่าสุด  
 RSS Feeds
 ดาวน์โหลดโปรแกรม RSS Reader ได้ที่นี่ ...   Download โปรแกรม RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 5 5 9 1 7 6 5

7 ธันวาคม พ.ศ.2549
126 Users On-Line.
Visitors - Page views
 8 9 4 6 8 1 5
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  

การแทรกปุ่มคำสั่ง ToolBar ใน ARViewer ของ Active Report 2.0

Category »  VB 6/VB.Net
โดย : Webmaster เมื่อ 23/4/2551 14:24:00
(อ่าน : 19894) 
ปัจจุบันนี้ ActiveX ที่ทำงานอยู่บน VB6 หรือ Class ต่างๆที่อยู่ในตระกูล .Net ก็ล้วนแล้วต้องเขียนโปรแกรมในรูปแบบที่เรียกว่า Run-Time ... ก็คือการเขียนโค้ดเข้าไปก่อน แล้วค่อยสั่งรัน มันถึงจะเห็นผลลัพธ์ออกมาได้ แหละนี่ก็จะเป็นตัวอย่างที่ผมจะสื่อให้พี่น้องได้เห็นกันว่า เหล่าบรรดา ActiveX นั้น (หรือ Component) มันไม่ได้ถูกจำกัดอยู่แค่การกำหนด Properties ในรูปแบบ Design-Time เพียงเท่านั้น แต่ยังรวมไปถึงวิธีการ (Method) ที่เราจะควบคุมการทำงานให้ได้อย่างมีประสิทธิภาพ ... งานนี้จะเป็นการเล่นกับ ToolBar ที่อยู่ในตัวของ ARViewer ครับพี่น้อง เพื่อเสริมแต่งให้โปรแกรมมันดูดี มีชาติตระกูล และปั่นราคาขึ้นได้อีกโข ... โหประมาณนั้นเนอะ เหอๆๆๆๆ
 ดาวน์โหลด Active Report 2.0 จากค่าย DataDynamics ... ได้ที่นี่ (กรณี .Net มาถึง Version 3 แล้วน่ะครับ)


สั่งให้โปรแกรมทำงาน

ดาวน์โหลด Source Code สำหรับ MS Visual Basic 6.0 - Service Pack 6
 ดาวน์โหลด Visual Basic 6.0 SP5: Run-Time Redistribution Pack
 ดาวน์โหลด Microsoft Data Access Object (MDAC) และ Jet 4.0 Update
 ดาวน์โหลด Microsoft Visual Basic Service Pack 6


Option Explicit

Private Sub Form_Load()
    Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
    
    With ARViewSample
        .Zoom = 80   ' ค่า % ที่ใช้ในการแสดงผลบน Active Report Viewer
        
        ' ทดสอบการแทรกไอเทม (Insert) ไปที่ index = 5
        ' หรือตัวที่ 6 เพราะว่ามันเริ่มต้นนับจาก 0 น่ะครับ
        .ToolBar.Tools.Insert 5, "แสดงก่อนพิมพ์" ' ในเครื่องหมาย Double Quote "" มันคือ Caption น่ะครับ
        .ToolBar.Tools.Item(5).AddIcon LoadPicture(App.Path & "\Preview.ico")
        ' หรือ กำหนดค่า ID (Identifier) ให้กับ Item นี้ เป็นค่าตัวเลขจำนวนเต็มแบบ Integer  น่ะครับ
        ' เรากำหนดเอาเอง แต่จะมีบางค่าในระดับหลักหมื่นขึ้นไป จะเป็นค่าที่สงวนเอาไว้ใช้งานของตัวมันเองครับ
        ' ก็กำหนดค่าต่ำๆเอาไว้ก็ได้ หากมันซ้ำประเดี๋ยวมันก็ฟ้องออกมาเองแหละ
        ' ประโยชน์เพื่อนำไปใช้ทดสอบว่าผู้ใช้งานเขา (หรือเธอ) กดปุ่มอะไรไงล่ะครับ ... พี่น้อง
        .ToolBar.Tools(5).ID = 5
        
        
        .ToolBar.Tools.Insert (6), "Export Excel"
        .ToolBar.Tools.Item(6).AddIcon LoadPicture(App.Path & "\Excel.ico")
        ' กำหนดค่า ID (Identifier) ให้กับ Item นี้
        .ToolBar.Tools(6).ID = 6
        
        
        ' เพิ่ม Item ที่ตำแหน่งท้ายสุดของจำนวน Item ทั้งหมดที่มีอยู่
        .ToolBar.Tools.Add "ตั้งค่าเครื่องพิมพ์"
        ' หากอยากรู้ว่ามี Item ทั้งหมดแล้วกี่ตัว ก็นับจำนวนของ Item ด้วย Count
        ' MsgBox .ToolBar.Tools.Count
        ' อย่าลืมว่าการนับค่า Index ในคอมพิวเตอร์ มักจะเริ่มต้นที่ค่า 0 น่ะครับ
        ' ลองดูคำสั่งนี้ได้ MsgBox .ToolBar.Tools(0).Caption
        ' ใส่ไอคอนให้กะมันซ่ะ
        .ToolBar.Tools.Item(23).AddIcon LoadPicture(App.Path & "\printer.ico")
        .ToolBar.Tools(23).ID = 7
    End With
End Sub

' เหตุการณ์ที่เกิดขึ้นตอนเราคลิ๊กเมาส์เลือกจาก ToolBar ที่อยู่ใน ARViewer
Private Sub ARViewSample_ToolbarClick(ByVal Tool As DDActiveReportsViewer2Ctl.IDDTool)
    ' การใช้งาน IDDTool อันนี้ให้ดูเพิ่มเติมจาก Help ได้ครับ

    ' การทดสอบเงื่อนไขได้ 2 แบบ คือ
    ' 1. ด้วย Caption ประจำตัวของ Item
    ' 2. ด้วย ID ที่เรากำหนดให้กับ Item แต่ละตัวเอง

    ' การทดสอบด้วย Caption
    Select Case Tool.Caption
        Case "แสดงก่อนพิมพ์"
            MsgBox "คุณกดปุ่ม แสดงก่อนพิมพ์", vbOKOnly + vbInformation, "รายงาน"
        Case "Export Excel"
            MsgBox "คุณกดปุ่ม Export Excel", vbOKOnly + vbInformation, "รายงาน"
        Case "ตั้งค่าเครื่องพิมพ์"
            ' เรียกใช้งานฟังค์ชั่นการตั้งค่าเครื่องพิมพ์ ...
            ' ก็คือ AR มันไปเรียกใช้ API ที่มีอยู่ใน "เล็กนิ่ม - Microsoft" นั่นเอง
            ARViewSample.Printer.SetupDialog
    End Select
    
    ' หรือ ทดสอบด้วยค่า ID (Identifier) ที่เรากำหนด
    Select Case Tool.ID
        Case 5
            MsgBox "คุณกดปุ่ม แสดงก่อนพิมพ์", vbOKOnly + vbInformation, "รายงานสถานะ"
        Case 6
            MsgBox "คุณกดปุ่ม Export Excel", vbOKOnly + vbInformation, "รายงานสถานะ"
        Case 7
            MsgBox "คุณกดปุ่ม ตั้งค่าเครื่องพิมพ์", vbOKOnly + vbInformation, "รายงานสถานะ"
    End Select
End Sub

Private Sub cmdExit_Click()
    Unload Me
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    ' จะใช้งานได้ต้องกำหนดคุณสมบัติของฟอร์ม KeyPreview = True ก่อนน่ะครับ
    Select Case KeyCode
        Case vbKeyF1: MsgBox "No help now."
        Case vbKeyF10:
                    cmdExit_Click
   End Select
End Sub

Private Sub Form_Resize()
    fraData.Width = Me.ScaleWidth - 30
    fraData.Height = Me.ScaleHeight - fraCommand.Height
    ARViewSample.Move 15, 120, fraData.Width - 60, fraData.Height - 180
    fraCommand.Move 15, fraData.Top + fraData.Height, Me.ScaleWidth - 30
    cmdExit.Move fraCommand.Width - cmdExit.Width - 60
End Sub

Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
    ' การสร้างรายงานมักจะมีไฟล์ Temporary เกิดขึ้นมา เพื่อไม่ให้เกิดความรกรุงรังในโฟลเดอร์
    ' เราจึงต้องสั่งลบไฟล์เหล่านี้ด้วยคำสั่ง Kill ออกไปครับ ... พี่น้อง
    If Dir$(App.Path & "\*.tmp") <> "" Then
        Kill App.Path & "\*.tmp"
    End If
    End
End Sub

จี ทู จี เน็ต ดอต คอม - g2gNet Dot Com
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์ 0407314800231
CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
Email: [email protected] หรือ โทร. 08-6862-6560