Option Explicit
Dim rptPrint As Object
' Êèǹ¢Í§¿ÍÃìÁ
' ===================================================================
Private Sub Form_Load()
On Error GoTo ErrHandler
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
Me.KeyPreview = True ' µéͧä»ãªé¡Ñºà˵ءÒóì Form_KeyDown
' à¤ÅÕÂÃì¤èÒ
txtBarCode.Text = ""
txtQuantity.Text = ""
' ¡Ó˹´ãËéàÁ¹Ù¡ÒþÔÁ¾ìÃٻẺºÒÃìâ¤é´à»ç¹áºº Code128B äÇé¡è͹
mnuCodeFormat(1).Checked = True
' BarcodeFormat à»ç¹µÑÇá»ÃẺ Global ·Õè¼ÁàÍÒä»äÇé·Õè gBarCode Module
' à¾×è͵éͧ¡ÒÃãËé·Ø¡æ¿ÍÃìÁ ÃÇÁ·Ñé§ Actyive Report - arBarcode ÁͧàËç¹´éÇÂ
BarcodeFormat = "Code 128B"
ExitProc:
Exit Sub
ErrHandler:
MsgBox Err.Number & " : " & Err.Description
Resume ExitProc
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyF7: cmdPreview_Click
Case vbKeyF10: cmdExit_Click
End Select
End Sub
' ===================================================================
' Êèǹ¢Í§¡Òûé͹¢éÍÁÙÅÃËÑʺÒÃìâ¤é´ (ÃѺ¤èÒ 0 - 9 áÅеÑÇÍÑ¡ÉÃÍѧ¡ÄɵÑÇãËèà·èÒ¹Ñé¹)
Private Sub txtBarCode_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
SendKeys "{TAB}"
Else
' ÊÒÁÒö¡´µÑÇÍÑ¡¢ÃÐ 0 - 9, A - Z áÅÐ a - z ¡çä´é... ä»´Ùã¹ gBarCode.Bas ¤ÃѺ¼Á
' áµè KeyAscii µéͧÃѺ¤èÒ¡ÅѺÁÒà»ç¹ Integer àÊÁ͹èФÃѺ ... ¾Õè¹éͧ
KeyAscii = Asc(UCase(Chr(CheckAlphaNumericUCase(KeyAscii))))
' ¡Ã³Õ¢Í§µÑÇÍÑ¡ÉõÑÇàÅç¡ a - z ·Õè¼Á¹ÓÁÒãªé§Ò¹´éÇÂ
' ËÒ¡µéͧ¡ÒÃãªéµÑÇÍÑ¡ÉõÑÇàÅç¡ Code 128B ¨ÐÃѺä´éà·èÒ¹Ñé¹ Êèǹ Code 39/128A ¨ÐäÁèä´é
' áµè¼ÁÁÕÇÔ¸Õ¡ÒÃá¡é»ÑËÒ â´Â¡´¤ÕÂìµÑÇàÅç¡áÅéÇãËéá»Å§à»ç¹µÑÇãËèá·¹ä§ÅèФÃѺ
' ¡¯à¡³±ì¸ÃÃÁªÒµÔ ... äÅè¨Ò¡¢ÇÒÁÒ«éÒ¹èФÃѺ
' ¨Ò¡à˵ءÒóì txtBarCode_KeyPress
' ÊÁÁصԡ´ a ÁÒ ¹Ñ蹤×ͨзÓãËé (Ascii Code ¢Í§ a ¤×Í 97)
' CheckAlphaNumericUCase(97))
' à»ÅÕè¹ Ascii Code ãËé¡ÅÒÂà»ç¹µÑÇÍÑ¡¢ÃдéÇ¿ѧ¤ìªÑè¹ Chr (Character)
' Chr(CheckAlphaNumericUCase(97)) = a
' á»Å§à»ç¹µÑÇÉõÑÇãËè ... ´éÇ¿ѧ¤ìªÑè¹ UCase (Upper Case)
' UCase(Chr(CheckAlphaNumericUCase(97))) = A
' á»Å§µÑÇÍÑ¡¢ÃÐãËéà»ç¹ Ascii Code ´éÇ¿ѧ¤ìªÑè¹ Asc
' Asc(UCase(Chr(CheckAlphaNumericUCase(97)))) = 65
' à¾ÃÒÐÇèÒ KeyAscii à»ç¹µÑÇá»Ãª¹Ô´àÅ¢¨Ó¹Ç¹àµçÁ (Integer)
' ËÃ×Í KeyAscii = 65 ... ËÃ×Í µÑÇÍÑÉà A ... ÁÐáËÅèÁÁÑé¤ÃѺ¾Õè¹éͧ
End If
End Sub
' ===================================================================
' ÍÂÙèã¹ gBarCode.bas ¹èФÃѺ ¼ÁµÑ´ÁÒãËéàËç¹¶Ö§¡Ò÷ӧҹ
Function CheckAlphaNumericUCase(Index As Integer) As Integer
Select Case Index
' 0 - 9 (ASCII 48 - 57), A - B (ASCII 65 - 90), a - z (ASCII 97 - 122)
Case 48 To 57, 65 To 90, 97 To 122
CheckAlphaNumericUCase = Index
' ËÃ×Í äÁèµéͧÁÕ Statement 㹡Òä׹¤èÒµÒÁ¢éÒ§º¹¡çä´é à¾ÃÒÐÊÑè§·Õà´ÕÂǵÒÁ´éÒ¹ÅèÒ§ÊØ´
Case 8 ' Back Space
Case 13 ' Enter
Case Else
Index = 0
End Select
' Return - ¤×¹¤èÒ¡ÅѺ
CheckAlphaNumericUCase = Index
End Function
' ===================================================================
' Êèǹ¢Í§¡Òûé͹¨Ó¹Ç¹ºÒÃìâ¤é´ (ÃѺµÑÇàÅ¢à·èÒ¹Ñé¹)
Private Sub txtQuantity_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
cmdPreview_Click
Else
' Íѹ¹ÕéãËéÃѺ੾ÒФèÒµÑÇàÅ¢ 0 - 9 à·èÒ¹Ñé¹
KeyAscii = CheckDigitOnly(KeyAscii)
End If
End Sub
' Êèǹ¢Í§¡ÒÃÊÑè§¾ÔÁ¾ìÃËÑʺÒÃìâ¤é´
Private Sub cmdPreview_Click()
If Trim(txtBarCode.Text) = "" Or Trim(txtBarCode.Text) = "0" Or Len(Trim(txtBarCode.Text)) = 0 Then
MsgBox "¡Ãسһé͹¤èÒÃËÑʺÒÃìâ¤é´ãËéàÃÕºÃéÍ¡è͹´éÇÂ.", vbOKOnly + vbInformation, "ÃÒ§ҹʶҹÐ"
txtBarCode.SetFocus
Exit Sub
ElseIf Trim(txtQuantity.Text) = "" Or Trim(txtQuantity.Text) = "0" Or Len(Trim(txtQuantity.Text)) = 0 Then
MsgBox "¡Ãسһé͹¨Ó¹Ç¹ÃËÑʺÒÃìâ¤é´ãËéàÃÕºÃéÍ¡è͹´éÇÂ.", vbOKOnly + vbInformation, "ÃÒ§ҹʶҹÐ"
txtQuantity.SetFocus
Exit Sub
End If
'
' Set ARViewer
Set rptPrint = New arBarcode ' ª×èÍ Active Report Designer
Set Me.ARViewBarCode.object = rptPrint ' ¼Ù¡à¢éҡѺ ARViewer
End Sub
|