client/conexion/Catalogos/clsString.vb

129 lines
6.1 KiB
VB.net
Raw Normal View History

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<63>n sobre el control activo en pantalla,
' es True por omisi<73>n.
'Nota: El tipo de dato que se debe dar, se describe a continuaci<63>n:
' A = Alfabetico (Solo Alfabetos).
' AN = Alfanum<75>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<63>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 '=<3D>
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 '=<3D>
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<65>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<75>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<61>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