Hace unos días publiqué la manera de como poder obtener el RFC, para personas morales y físicas, para poder integrarlo en sus aplicaciones.
En esta ocasión quiero mostrarles como hacer el cálculo de la CURP, ya que seguramente algunas vez en clases han hecho tareas de las materias de Chico, Serafín o Clemente, y en sus formularios incluyen un campo que se llama CURP, pues con solo conocer los datos de nacimiento de la persona podrán hacer el cálculo de la CURP, sin verse en la molestia de tener que teclear los 18 dígitos que la integran.
Requisitos:
· Microsoft Visual Studio 2008
· Unos cuantos nombres de personas para prueba….
Iniciando
Lo primero que haremos será crear un nuevo proyecto del tipo Windows Form, en este caso lo llamaré “ObtieneCURP”, el diseño deberá quedar más o menos así:
A continuación declaramos las siguientes variables, de alcance global:
char SEXO;
string[,] estados;
“SEXO”: Esta variable almacenará un dígito según el sexo elegido por el usuario (M=Masculino, F=Femenino).
“ESTADOS”: Arreglo de dimensión 34*2 en el cual almacenaremos los estados con su respectivo código.
Luego declaramos el siguiente método:
/// <summary>
/// AL perder el foco la caja de texto, convierte el texto a
/// mayúsculas,para ello asignar este metodo al evento Leave
/// del TextBox
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Mayus(object sender, EventArgs e)
{
TextBox texto = (TextBox)sender;
texto.Text = texto.Text.ToUpper();
}
Este método nos permitirá convertir el texto contenido en los texBox a mayúsculas, para ello en el evento “Leave” de los TexBox (el del apellido paterno, del materno y del nombre) asignar el método “Mayus()”.
Después, en el evento “Load()” del formulario agregamos el siguiente código:
private void Form1_Load(object sender, EventArgs e)
{
//string[,]
estados =new string[,]
{
{"",""},
{"AGUASCALIENTES","AS"},
{"BAJA CALIFORNIA","BC"},
{"BAJA CALIFORNIA SUR","BS"},
{"CAMPECHE","CC"},
{"CHIAPAS","CS"},
{"CHIHUAHUA","CH"},
{"COAHUILA","CL"},
{"COLIMA","CM"},
{"DISTRITO FEDERAL","DF"},
{"DURANGO","DG"},
{"GUANAJUATO","GT"},
{"GUERRERO","GR"},
{"HIDALGO","HG"},
{"JALISCO","JC"},
{"MEXICO","MC"},
{"MICHOACAN","MN"},
{"MORELOS","MS"},
{"NAYARIT","NT"},
{"NUEVO LEON","NL"},
{"OAXACA","OC"},
{"PUEBLA","PL"},
{"QUERETARO","QT"},
{"QUINTANA ROO","QR"},
{"SAN LUIS POTOSI","SP"},
{"SINALOA","SL"},
{"SONORA","SR"},
{"TABASCO","TC"},
{"TAMAULIPAS","TS"},
{"TLAXCALA","TL"},
{"VERACRUZ","VZ"},
{"YUCATÁN","YN"},
{"ZACATECAS","ZS"},
{"NACIDO EXTRANJERO","NE"}
};
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "yy/MM/dd";
int contador=0;
comboBox1.Items.Add("<Seleccione Estado>");
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.SelectedIndex = 0;
while (contador != estados.Length / 2)
{
comboBox1.Items.Add(estados[contador,0]);
contador++;
}
comboBox1.Items.Remove("");
}
Lo que hacemos en estas líneas, es primeramente, llenar el arreglo con todos los estados y su respectivo código asignado para el cálculo de la CURP.
Luego asignamos el formato de cómo se muestra la fecha del “dateTimePicker” a personalizado (“año en dos cifras/mes/día”), después procedemos a llenar el “comboBox” de estados con lo que contiene el arreglo “estados”.
A continuación agregamos un nuevo método llamado “ObtieneSexo()”:
private string ObtieneSexo()
{
if (radioButton1.Checked)
{
SEXO = 'H';
}
else if (radioButton2.Checked)
{
SEXO = 'M';
}
else
{
SEXO = 'X';
}
return SEXO.ToString();
}
Este método lo que hará es retornar un digito indicando el sexo elegido.
Luego procedemos a agregar la referencia a la librería “CURPLib”, que es la que nos generará la CURP, para ello hacemos click derecho sobre el proyecto (“ObtieneCURP”), y clicamos en “agregar referencia”, y elegimos la librería (se incluye en la carpeta donde viene el código fuente, aunque en el código fuente ya viene agregada la referencia).
Luego en el evento click del botón que hará el cálculo de la CURP agregamos las siguientes líneas:
private void button1_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(estados[comboBox1.SelectedIndex, 1]) || ObtieneSexo().Equals("X") || string.IsNullOrEmpty(textBox1.Text) || string.IsNullOrEmpty(textBox3.Text))
{
MessageBox.Show("Por favor ingrese todos los datos...","Mira Bien...");
}
else
{
CURPLib.CURPLib calculocurp = new CURPLib.CURPLib();
//MessageBox.Show(SEXO.ToString());
textBox4.Text = calculocurp.CURPCompleta(textBox1.Text, textBox2.Text, textBox3.Text, dateTimePicker1.Text, ObtieneSexo(), estados[comboBox1.SelectedIndex, 1]);
//.Show(estados[comboBox1.SelectedIndex,1]);
}
}
Primero se hace una validación que no haya campos vacios (solo se acepta apellido materno vacio), después creamos una nueva instancia de CURPLib, y luego en la propiedad “Text” del campo donde se mostrará el CURP calculado, asignamos el resultado de ejecutar el método “CURPCompleta”, que recibe 6 parámetros: el apellido paterno, el apellido materno, el nombre, la fecha de nacimiento en formato de año en 2 dígitos/mes/día, el sexo y por último la clave de estado.
Para mostrar que funciona pueden probar con los siguientes datos:
Y el resultado mostrado deberá ser igual al de la imagen:.
Bueno pus parece que esto es todo por hoy, y no olviden hacer sus comentarios, se los agradeceré muchísimo….
J
El codigo fuente del ejemplo lo pueden descargar del siguiente enlace