Professional Documents
Culture Documents
NET
Hola aqui les presento el algoritmo para validar el numero de cédulo de ua persona, a continuación el codigo en
VisualBasic205
• El ruc de una persona natural será 13 dígitos, sin letras, sin caracteres especiales , únicamente números, de los cuales
• Los tres últimos dígitos son 001,002,003 etc., dependiendo el número de establecimientos adicionales.
• La validación de la cédula de Identidad pasa un algoritmo “Módulo 10”. Al número se lo divide en 13 partes, las 9
primeras son el número mismo, la 10 es el dígito autoverificador, y las 3 restantes indican si es principal o
establecimiento adicional.
• Las 2 primeras posiciones corresponden a la provincia donde fue expedida, por lo cual los dos primeros números no
• Los 3 últimos bytes no podrán ser 000, ya que siempre por lo menos tendrá una principal.
• Los coeficientes usados para verificar el décimo dígito de la cédula, mediante el algoritmo “Módulo 10”
2 1 2 1 2 1 2 1 2 (Coeficiente)
1 7 1 0 0 3 4 0 6 (Número de Cédula)
Dim dig1, dig2, num1, num2, num3, num4, num5, num6, num7, num8, num9 As String
Try
dig1 = numCedula.Substring(0, 2)
dig2 = numCedula.Substring(2, 1)
digProvincia = CInt(dig1)
tercerDig = CInt(dig2)
If tercerDig 9 Then
dig1 = sumaDig(dig1)
End If
dig2 = sumaDig(dig2)
End If
dig3 = sumaDig(dig3)
End If
dig4 = sumaDig(dig4)
End If
dig5 = sumaDig(dig5)
End If
dig6 = sumaDig(dig6)
End If
dig7 = sumaDig(dig7)
End If
dig8 = sumaDig(dig8)
End If
dig9 = sumaDig(dig9)
End If
valorComprovador = dig1 + dig2 + dig3 + dig4 + dig5 + dig6 + dig7 + dig8 + dig9
Catch ex As Exception
Throw
End Try
Return valorComprovador
End Function
Try
strNumero = Str(numero)
numDig = strNumero.Length
For i = 1 To numDig – 1
strDig = strNumero.Substring(i, 1)
digitos.Add(strDig)
Next
Next
Catch ex As Exception
Throw
End Try
Return valor
End Function
End Class
_______________________________--------------------_____________________------------____
VALIDACION CEDULA EN C#
Una persona cuando desea registrar sus horas de trabajo (con su cedula) la tienes
primero que registrar y antes de realizar la inserción comprueba que sea un
número de cédula válido, para así registrarlo en la BdD.
Utiliza además ADO.NET para la conexión con la base de datos y las diversas
funcionalidades están separadas en clases
}
x=suma%10;
j=Convert.ToInt32(this.num_cedula[9].ToString());
if(x==0)
{
if(x==j)
{
res=true;
}
}
else
{
x=(suma-x)+10;
if(j==(x-suma))
{
res=true;
}
else
{
res=false;
}
}
}
}
Ojo que necesitas por lo menos tener un motor de SQL Server para que funcione la
aplicación...
Un saludo a todos y espero que les resulte útil...
__________________------------------------___________________------------------____________
PRECARGA DE IMAGENES
Introducción
Muchas veces nos vemos en la obligación de lanzar algún que otro tipo de ejecución en segundo plano por
motivos varios y con la ayuda del objeto BackGroundWorker, una barrita de progreso y deshabilitando los
controles para impedir la invocación de otros eventos se realiza una solución óptima.
Pero en una ocasión mi compañero me comentaba que necesitaba algo especial y que fuese original (o por lo
menos que lo intentara).
Entonces recordé un proyecto web en el que trabajé (que si no recuerdo mal fue mi primer trabajo) y donde
usaban las archiconocidas capas con trasparencia y los "cargando... , espere por favor", hoy en día muy
usados en casi todas las web, y se me ocurrió la idea de aplicarlo en una aplicación WindowsForm surgiendo
entonces la clase frmPreload.vb que no es más que una simple clase que lanza una animación visual sobre
cualquier formulario que la invoque y donde se juega con la propiedad opacity de los controles form e
impidiendo la ejecución de otros eventos hasta que no finalice el subproceso... espero que os surjan muchas
ideas a partir de esta colaboración
Dejo como ejemplo de funcionamiento de la clase frmPreload el método que se encarga de localizar al
invocador y su vez centrar tanto el label como el gif de animación del frmPreload según los valores del size y
del location.
'Reiniciamos el diseño
Me.ResumeLayout()
End Sub
A continuación detallo alguno de los métodos y eventos encargados de instanciar y visualizar la clase
frmPreload y que habría que implementar en nuestro FormMDI.
''' Como instanciar la clase frmPreload desde el evento clik de un boton y seguidamente
''' lanzar un proceso en segundo plano con el componente BackGroundWorker
Nota:
Recordar que tenemos que añadir un objeto a nuestro FormMDI del tipo BackgroundWorker desde la
barra de herramientas, yo en mi caso lo he llamado "bwPrecarga"
Espero haberme explicado con claridad y no haber dejado ningún tipo de duda a la hora de implementar la
clase frmPreload.vb, aun así he decidido acompañarlo de un Zip con un ejemplo en funcionamiento y donde
se puede ver el código completo.
Danicuco 2009.
Sistema operativo:
o Windows XP SP2
Base de datos:
________________________----------------------_____________________
Vamos a trabajar por pasos el primero paso por supuesto es abrir VISUAL
BASIC.NET.
Justo en esa imagen pueden ver como yo estoy agregando un nuevo proyecto
seleccionen Aplicacion de Windows Form y le colocan un nombre en mi caso yo le
coloque “Accesoadatos” ustedes le pueden colocar el nombre que quieran
Ya al tener este paso cumplido vamos a observar que no queda una panalla donde
diseñar nuestro sistema con una pantalla principal llamada Form1:
al darle al boton agregar va a hacer unos procesos y va a aparecer un asistente para base
de datos al cual debes darle acepar de lo contrario ese asistente creara un Dataset Tipaso
propio y lo ideal es que tu sepas como agregarlo manualmente. Una vez que ya nuestra
base de datos esta creada procedemos a darle desde el explorador de objetos dos veces
click a la base de datos para poder visualizar del lado izquierdo el Explorador de base
de datos muy importante para crear nuestras tablas y procedimientos te fijaras que hay
una parte que dice TABLAS presionando click derecho y seleccionar agregar nueva
Tabla lo puedes ver en la siguiente imagen:
ya al precionas podemos agregar los campos que tendra nuestra tabla para hacerlo mas
sencillo vamos a agrega solo tres campos de manera que exliquemos hoy como agregar
un elemento y como mostrar los datos de la tabla. Los Campos sera Cedula que sera un
campo clave, nombre y apellido. Ningun va a permitir valos nulo la cedula sera de tipo
numerico y nombre y apellido nvarchar(50). Lo pueden ver en la imagen:
solo queda precionar salir y te pedira que guardes la tabla con el nombre que tu quieras
en mi caso le coloque alumnos,ahora procedemos a agregar unos datos de ejemplo a
nuestra tabla asi como agregamos nueva tabla: le van a dar click derecho al nombre de
la tabla que acaban de agregar y le dan a la Opcion Mostrar datos de tabla hay prodran
agregar algunos datos de ejemplo.
Solo queda presionar guardar y ahora es hora de diseñar el formulario para poder dar el
ejemplo solamente se usaran los siguientes controles: Un Datagrig para mostrar los
datos tres Botones uno para guardar otro para cargar los datos y otro para salir del
sistema, tres textbox para agregar los tres datos de la base de datos de ejemplo y tres
label para identificar a que dato corresponde cada textbox. Para ello debemos hacer uso
del cuadro de herramientas para agregar los controles al formulario se puede ver del
lado izquierdo y si no esta activo pueden ir al menu Ver y activar Cuadro de
herramientas.
Aqui como puede observar ya he agregado los controles, les recuerdo que .NET es
Orientado a objetos y todo objeto tiene sus propiedades estados y metodos.. por ellos es
importante sabes con que propiedades vamos a trabajar la mayoria de los controles
encontramos en sus propiedades valga la redundacia la proiedad TEXT y la propiedad
NAME text en el nombre que se va a visualizar y NAME el nombre como se
reconocera programaticamente ese objeto las propiedades las podemos observar del lad
Derecho al momento de seleccionar uno o varios objetos si no salen puedes ir al menu
ver y activas ventana propiedades.
si pueden observar modifique la propiedad TEXT de los label para identificar que dato
va en cada textbox y y los nombres de cada boton ahora vienen haciendo a la propiedad
name que no va a producir ningun cambio solo lo veran mas adelante como ejemplo
deben saber que cada control tiene un nombre clave para saber que tipo es por ejemplo
los Label lleval LBL los textboc llevan TXT y los botones CMD si quiero identificar
los tres notones y los tres textbox programaticamente modifico la propiedad name de
cada uno y usaria TXTcedula, TXTnombre. TXTapellido, CMDguardar, CMDsalir,
CMDcargar y aun falta el datagrig yo personalmente le coloco DGW es decir en este
caso le colocaria DGWdatos. de esta menera estaran organizados los nombres
programaticamente y mas adelante veran la importancia de hacer esto.
Ahora toca agregar un sistemas de tipos a nuestro proyecto al igual que agregamos la
base de datos vamos a presionar en el Explorardor de soluciones click derecho sobre el
nombre de nuestro proyecto y agregar un nuevo elemento, es este caso debemos agregar
un conjunto de datos que tiene extension .XSD por nombre yo le coloque DSprueba
ustedes le colocal el nombre que ustedes quieran una vez que agregamos su nombre le
damos agregar:
una vez que
agrgamos aparecera una pantalla de fondo celeste con el siguiente mensaje:
Utilice el diseñador de base de datos para trabajar con un conjunto de tablas con tipo
Solo queda arrastras la tabla que creamos a ese diseñador de datos con tipo:
Una ves agregada nos aparecera la tabla con sus campos y en la parte de abajo metodos
para buscar esos datos donde a este vamos a agregar dos consultas de las cuales una ya
la tiene por defecto y la otra es para guardar los datos es decir vamos a usar sentencias
TRANSAC SQL para insert y para select. quiza te sea un poco extraño esto pero poco
a poco te vas acostubrando solo es cosa de practicar querer aprender y no tenerle
miedo , el metodo que se agrega or defecto se llama FILL,Getdata a este metodo le
vamos presionar click derecho y le damos a la opcion agregar conculta,
Al presionar esta opcion tendremos un asistente que nos ayudara con esto del tractac
SQL que ya les voy a explicar.. la primera opcion que sale s es que si queremos crear un
sentencia SQL, un procedimiento almacenado y un procedimiento almacenado ya
existente por experiencia es mejor usar procedimientos almacenados los invito a que
investigues sobre ellos son recomendados en las buenas practicas de programacion y
acceso a datos en si todos vamos a elegir la segunda opcion y nos saldra entonces la
siguiente pantalla:
donde podran ver que la primera opcion es un select que devuelve una fila en este
caso es si quieres el valos de una o varias filas dependiento del dato que desees por
ejemplo dame el dato donde la celula sea tal, en este ejemplo solo obtendras un
resultado por que es imposible hayan dos personas con el mismo numero de cedula pero
si fuera apelldido si es posible tener mas de dos resultados esta es la que usaremos pero
ya por defecto ya esta realizado, en el segusdo caso es un Select que devuelve un solo
valor: en esta opcion podran optener resultados como cuantos registros tienen en su
tabla hacer una suma de una columna que contenga valores como sueldos entre otras
esta no la usaremos en este caso, en el tercer caso es un UPDATE se utiliza para
actualizar datos de un registri que ya existe es decir la funcion MODIFICAR, para el
cuarto se trata de un DELETE logicamente se utiliza para eliminar registros de la tabla
y por ultimo un INSERT es lo mismo que guardar datos y es el que utilizaremos para
darle funcion al boton guardar asi que este es el que vamos a seleccionary visualizaras
luego la siguiente pantalla:
esta es la consulta o TRANSAC SQL si no estas de acuerdo con lo que el asistente hizo
puedes modificarlo y personalizarlo presionando GENERADOR DE CONCULTAS.
En tra ocacion explico mas profundamente esta parte al presionar generador de conculta
le dan aceptar para mejorar esa consulta sql que debe quedar de esta forma para los
datos que trabajo y nombre de la tabla
si aparece algo mas luego de precionar aceptar sobre el generador de consulta borrenlo y
deje solo esto que les coloque normalmente se agrega algo como esto
y se utiliza para que luego de agregar los datos llamarlos de una vez pero en este caso
no lo vamos a usar.
luego de presionar en siguiente solo les pedira el nombre del procedimiento almacenado
y el nombre de la función ya listo ya tenemos nuestro diseñador de dataset con dos
funciones una que se agrego por defecto llama da fill,GET y la segunda agregada por
nosotros para guardar datos llamada en mi caso le coloque como nombre INSERALUM
ustedes pueden colocarle el que quiera pero este nombre lo utilizaremos mas adelante.
Asi nos debe quedar nuestro dataset en el diseñador.
Ahora toga agregar codigo a los botones lo primero que haremos es agregar codigo al
boton guardar le dareos dos veces click para ir al evento click de ese boton asi a lo que
presionesmo click se ejjecutara el codigo que le coloquemos, Debemos aprender como
llamar a los datos de un Dataset Tipados Basicamente hay que hacer dos instanciar
de nuevo programacion orientada a objetos ests datos estas almacenados en unas clases
que crea visual studio debemos llamar a esas clases para que nos permita trabajar con
los metodos iseralum y FILL para ellos se agrega el siguiente codigo:
Dim
ds As New DSprueba.AlumnosDataTable
Dim dt As
NewDSpruebaTableAdapters.AlumnosTableAdapter
Quiza lo puedan ver mejor desde la imagen:
dt.insertalum(TXTcedula.Text, TXTnombre.Text,
TXTapellido.Text)
en la imagen notamos como a agregar el codigo dt.inseralum( nos ayuda a ver que
valores debemos agregar pidiendonos cedula, nombre y apellido, hay es donde se
justifica el por que agregar nombre programaico a cada text box ya con solo hacer esto
el boton guardar funciona vamos a agrega el metodo fill al boton cargar debemos hacer
lo mismo si queremos lo que hacemos es sacar las primeras dos lineas de codigo para
que funcione generalmente para cualquier boton asi solo agregamos el sigiente codigo
presionando dos veces click en el boton cargar.
dt.Fill(ds.alumnos)
DGWdatos.DataSource = ds.alumnos
De esta manera al presionar sobre el boton gargar el datagrig se llenara de los datos de
la tabla alumnos solo falta el boton salir presiona dos veces click y presiones el codigo
End
Espero les haya gusta proto les coloco el codigo completo y el para que descargen el
ejemplo espero que les haya servido de mucho a quiene lo lean.
_____________________-------------------------_________________
Hola a todos.
¿Quién no se ha metido con el problema de que ya tienes terminado algun programa con introducción de
datos pero solo falta validar la introducción de datos mediante cuadros de texto? y muchas veces te
gustaría que existiera algo fácil y rapido que valide lo que tu quieres...
Pues como ya es común, Visual Basic cuenta obviamente con un sistema de cachado de cada caracter
tecleado en un cuadro de texto, el cual es obtenido antes de que el caracter sea pintado en pantalla; de
esta manera tu puedes cachar el caracter cuando es presionado, verificar si ese caracter que se esta
intentando introducir es valido para tus propósitos (por ejemplo si deseas que solo se introduzcan
números, o tal vez solo vocales) y si cumple con tus expectativas, entonces lo dejas pasar; sino entonces
"bloqueas" la impresión del caracter provocando la validación correcta de un campo de texto
Aquí te dejo un ejemplo muy sencillo pero fácilmente comprenderás como funciona...
El programa se ve así:
y el código es este:
PLAIN TEXT
VB.NET:
Explicación
Lo que tenemos aquí son dos funciones: 1 llamada buscar() que lo único que hace es recorrer una
cadena string en busca de un caracter en especifico el cual es pasado como parámetro junto con la
cadena.
La segunda función se ejecuta en el evento KeyPress del cuadro de texto, y lo que hace es cachar el
caracter precionado; aquí vemos como se cacha el caracter:
PLAIN TEXT
VB.NET:
Nota: como verás tambien estoy validando que si se pueda presionar el backspace:
PLAIN TEXT
VB.NET:
y lo que mencionaba sobre bloquear la impresion en pantalla del caracter tecleado se hace igualando a
false el manejador del cuadro de texto:
PLAIN TEXT
VB.NET:
1. e.Handled = False
Obviamente, para permitir que se imprima el caracter tecleado, entonces lo igualas a true.
Fácil no??
______________________-----------------------------------__________________________-----------------------------____
VALIDAR TEXTO
Private Sub Text1_KeyPress(ByVal sender As Object , _
ByVal e As System.Windows.Forms.KeyPressEventArgs) Handless
Text1.KeyPress
' en la siguiente línea de código se comprueba si el caracter es
dígito...
if( not e.KeyChar.IsDigit(e.KeyChar)) Then
' de igual forma se podría comprobar si es caracter:
e.KeyChar.IsLetter
' si es un caracter minusculas: e.KeyChar.IsLower ...etc
If Not (e.KeyChar = Convert.ToChar(Keys.Back)) Then
e.Handled = true ' esto invalida la tecla pulsada
End If
End If
End If
End Sub
VALIDAR TEXTO OK
If Char.IsLetter(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsSeparator(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
VALIDAR NUMEROS OK
Private Sub txtPruebaNumero_KeyPress(ByVal sender As Object, _
ByVal e As
System.Windows.Forms.KeyPressEventArgs) _
Handles TextBox2.KeyPress
If Char.IsDigit(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsSeparator(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
MsgBox("Ingrese solo numeros...", MsgBoxStyle.Exclamation,
"Alerta")
End If
End Sub
If Char.IsDigit(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsSeparator(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
PARA LIMPIAR TEXTO
Private Sub LimpiarTextBox(ByVal ofrm As Form)
Call LimpiarTextBox(Me)
End Sub
Call LimpiarTextBox(Me)
End Sub
Gracias
Código:
Sub SaveTextBoxInFile(ByVal FileName As String, ByRef Text As TextBox)
On Error Resume Next
Close
Open FileName For Output As #1
If Err > 0 Then Exit Sub
Print #1, Text.Text
Close
End Sub
Sub GetFileToTextBox(ByVal FileName As String, ByRef Text As TextBox)
On Error Resume Next
Close
Open FileName For Input As #1
If Err > 0 Then Exit Sub
Text.Text = Input(LOF(1), 1)
Close
End Sub
Private Sub Command1_Click()
GetFileToTextBox "C:\Texto.txt", Text1
End Sub
Private Sub Command2_Click()
SaveTextBoxInFile "C:\Texto.txt", Text1
End Sub
Por ayudar. Dejo el código que borra todos los TextBox, incluídos los que se encuentran
dentro de un GroupBox.
Aquí está:
PROYECTOSISTEMAS07@HOTMAIL.COM matias
jorgeluisjacomeperez1971@gmail.com
Esto iría en el botón que llama al formulario MATEMATICA (obviamente con las variables que
utilices vos)
formEjemplo.ShowDialog()
Close()
Saludos
------------------------------------------------------------
Dim