client/conexion/Catalogos/clsString.vb

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