129 lines
6.1 KiB
VB.net
129 lines
6.1 KiB
VB.net
Public Class clsString
|
|
Public Sub fsValidKeyPress(ByVal KeyAscii As Integer, ByVal sTipo As String, ByVal pbActiveCtrl As Object)
|
|
'Validar caracteres de captura.
|
|
'Sintaxis : fsValidKeyPress(KeyAscii, sTipo, bActiveCtrl)
|
|
'KeyAscii - Valor Ascii del evento KeyPress del control.
|
|
'sTipo - Tipo de campo que se valida.
|
|
'bActiveCtrl - Determina la validación sobre el control activo en pantalla,
|
|
' es True por omisión.
|
|
'Nota: El tipo de dato que se debe dar, se describe a continuación:
|
|
' A = Alfabetico (Solo Alfabetos).
|
|
' AN = Alfanumérico (Números y Alfabetos).
|
|
' N = Númerico con Punto flotante y signo negativo.
|
|
' I = Númerico enteros.
|
|
' D = Fecha.
|
|
' F = Fecha.
|
|
' C = Caracter (Todos los caracteres permisibles ecepto el salto de linea).
|
|
' S = String (Todos los caracteres permisibles incluyendo el salto de linea).
|
|
' M = Memo (Todos los caracteres permisibles incluyendo el salto de linea).
|
|
' H = Horas.
|
|
' T = Telefonico (Númerico con guiones, espacios y parentesis)
|
|
' V = Varchar (Todos los caracteres permisibles incluyendo el salto de linea).
|
|
' R = Campo de Solo Lectura (Read [Only]).
|
|
' E = E-MAIL (Todos los caracteres permisibles ecepto el salto de linea).
|
|
'*******************************************
|
|
' Fecha de Creación: 01-Jun-1997
|
|
' Autor .NET: Juan Garcia Nava.
|
|
'*******************************************
|
|
If KeyAscii < 32 And KeyAscii <> 8 And KeyAscii <> 13 Then Exit Sub
|
|
'Caracteres No Validos.
|
|
Select Case KeyAscii
|
|
Case 34 '=[Doble comilla]
|
|
KeyAscii = 0 '
|
|
Case 39 '=[Apostrofe]
|
|
KeyAscii = 0 '
|
|
Case 94 '=[Barra]
|
|
KeyAscii = 0 '
|
|
Case 96 '=[Apostrofe invertido]
|
|
KeyAscii = 0 '
|
|
Case 123 To 190 '=[Especiales]
|
|
KeyAscii = 0 '
|
|
Case 192 '=À
|
|
KeyAscii = 0 '
|
|
Case 194 To 200 '=[Especiales]
|
|
KeyAscii = 0 '
|
|
Case 202 To 204 '=[Especiales]
|
|
KeyAscii = 0 '
|
|
Case 206 To 208 '=[Especiales]
|
|
KeyAscii = 0 '
|
|
Case 210 '=Ò
|
|
KeyAscii = 0 '
|
|
Case 212 To 217 '=[Especiales]
|
|
KeyAscii = 0 '
|
|
Case 219 To 224 '=[Especiales]
|
|
KeyAscii = 0 '
|
|
Case 226 To 232 '=[Especiales]
|
|
KeyAscii = 0 '
|
|
Case 234 To 236 '=[Especiales]
|
|
KeyAscii = 0 '
|
|
Case 238 To 240 '=[Especiales]
|
|
KeyAscii = 0 '
|
|
Case 242 '=[Especiales]
|
|
KeyAscii = 0 '
|
|
Case 244 To 249 '=[Especiales]
|
|
KeyAscii = 0 '
|
|
Case Is > 250 '=[Especiales]
|
|
KeyAscii = 0 '
|
|
Case Else
|
|
'Caracteres Validos según el tipo.
|
|
sTipo = UCase(sTipo)
|
|
Select Case sTipo
|
|
Case "A" 'Alfabeto.
|
|
' If KeyAscii = 13 Then KeyAscii = 0 '
|
|
If KeyAscii = 13 Then SendKeys.Send("{tab}")
|
|
If (KeyAscii < 65 Or KeyAscii > 90) And KeyAscii <> 63 Then
|
|
If (KeyAscii <> 8 And KeyAscii < 97) Or KeyAscii > 122 Then KeyAscii = 0 '
|
|
End If
|
|
Case "AN" 'AlfaNumérico.
|
|
' If KeyAscii = 13 Then KeyAscii = 0 '
|
|
If KeyAscii = 13 Then SendKeys.Send("{tab}")
|
|
If ((KeyAscii <> 8 And KeyAscii < 48) Or (KeyAscii > 57 And KeyAscii < 65) Or (KeyAscii > 90 And KeyAscii < 97) Or KeyAscii > 122) And KeyAscii <> 63 Then KeyAscii = 0 '
|
|
Case "C" 'Caráctere.
|
|
If KeyAscii = 13 Then SendKeys.Send("{tab}") '
|
|
Case "R" 'Solo Lectura.
|
|
KeyAscii = 0 '
|
|
Case "I" 'Entero
|
|
' If KeyAscii = 13 Then Exit Sub
|
|
If KeyAscii = 13 Then SendKeys.Send("{tab}")
|
|
If KeyAscii = 8 Then Exit Sub
|
|
' 0123456789
|
|
If Not (KeyAscii < 58 And KeyAscii > 47) Then KeyAscii = 0
|
|
Case "N" 'Númerico con punto flotante.
|
|
' If KeyAscii = 13 Then Exit Sub
|
|
If KeyAscii = 13 Then SendKeys.Send("{tab}")
|
|
|
|
If KeyAscii = 8 Then Exit Sub
|
|
' .0123456789-
|
|
If Not (KeyAscii < 58 And KeyAscii > 44 And KeyAscii <> 47) Then KeyAscii = 0
|
|
If InStr(pbActiveCtrl, ".") And KeyAscii = 46 Then KeyAscii = 0
|
|
|
|
If KeyAscii = 45 Then
|
|
If InStr(pbActiveCtrl, "-") = 0 Then
|
|
If Len(pbActiveCtrl) > 0 Then
|
|
pbActiveCtrl = "-" & pbActiveCtrl
|
|
KeyAscii = 0
|
|
End If
|
|
Else
|
|
KeyAscii = 0
|
|
End If
|
|
End If
|
|
|
|
If InStr(pbActiveCtrl, ".") And KeyAscii = 46 Then KeyAscii = 0
|
|
|
|
If KeyAscii = 45 Then
|
|
If InStr(pbActiveCtrl, "-") = 0 Then
|
|
If Len(pbActiveCtrl) > 0 Then
|
|
pbActiveCtrl = "-" & pbActiveCtrl
|
|
KeyAscii = 0
|
|
End If
|
|
Else
|
|
KeyAscii = 0
|
|
End If
|
|
End If
|
|
Case Else
|
|
' If KeyAscii = 13 Then SendKeys "{Tab}"
|
|
End Select
|
|
End Select
|
|
End Sub
|
|
End Class
|