CHINMOY MANI
The 3 necessary reasons behind such industrial development were: (i) Young in knowledgeable entrepreneurs,
1. Pollution With the event of the industrialisation and urbanization, each of the developed and therefore the developing countries began to exploit the natural resources For instance,
Se recomienda que las personas destinadas al uso de este sistema previamente reciban la capacitación necesaria, para que puedan manejar el mismo de una manera adecuada y no cometan errores en su utilización.
62
____________________________________________________________________
Si en un futuro se desea mejorar o complementar el proyecto desarrollado, es importante que se analice toda la documentación disponible del mismo, antes de empezar a modificar o acoplar otro módulo al sistema.
En lo referente a la parte académica es recomendable que se evalúe todas las asignaturas, con el fin de determinar la posibilidad de aumentar horas de clase a las asignaturas que forman parte del desarrollo del perfil profesional.
Es recomendable que a partir de este proyecto la empresa pueda implementar capacitaciones sobre las nuevas tecnologías, porque como sabemos éstas se mantienen en constante progreso, de igual manera es importante señalar que el conocimiento adquirido debe ir siempre ligado a la investigación, para poder desarrollar cualquier proyecto que se plantee.63
____________________________________________________________________
64
____________________________________________________________________
CARRERA DE ANÁLISIS DE SISTEMAS
SISTEMATIZACIÓN DE LOS PROCESOS DE FACTURACIÓN Y CONTROL DE INVENTARIOS, MEDIANTE UNA APLICACIÓN WEB PARA CREACIONES BELÉN UBICADO EN LA PARROQUIA DE POMASQUI DEL
DISTRITO METROPOLITANO
Manual de usuario
Autor: Jairo Paúl Cumbal Paucar
Tutor: Ing. Jaime Basantes
65 ____________________________________________________________________ ÍNDICE DE CONTENIDO Título Página 1. Introducción………66 2. Objetivos……….………66 3. Requerimientos mínimos………66 4. Guía de usuario………...………66 4.1 Ingreso al sistema……….67 4.2 Menú mantenimientos………..………...……….68 4.3 Registro de datos generales………..……...……….69 4.4 Actualizar datos de cliente………..……...………..72 4.5 Menú facturación………..…..……...………..74 4.6 Registrar venta………...………..…..……...………..75
66
____________________________________________________________________
1. Introducción
El presente manual está diseñado para facilitar el manejo del aplicativo web de sistematización de los procesos de facturación y control de inventarios. Está dirigido a todos los usuarios del sistema.
2. Objetivos
Proporcionar al usuario la información necesaria para que utilice el sistema sin contratiempos.
Contar con documentación oportuna para que sirva de apoyo a los usuarios del sistema. 3. Requerimientos mínimos Tabla 47 Requerimientos mínimos Requerimientos de hardware Memoria RAM 4GB Procesador 1GHz o superior
Disco Duro Disponible al menos 100GB
Requerimientos de software
Sistema Operativo Windows 7 o superior
.NET Framework Versión 4
Visual Studio Versión 2010
SQL Server Versión 2012
Crystal Report Versión para Visual Studio 2010
67
____________________________________________________________________
4. Guía de Usuario 4.1 Ingreso al sistema
1. Una vez que se haya abierto el sistema, se deberá ingresar las credenciales de acceso (usuario y contraseña) para poder acceder al mismo.
Figura 33. Ingreso al sistema
2. En caso de haber ingresado mal alguna de las credenciales se mostrará un
mensaje notificando que no se encontraron coincidencias y no se podrá tener acceso al sistema.
68
____________________________________________________________________
Figura 35. Acceso al sistema denegado.
3. Si las credenciales del usuario son correctas se accederá al sistema y se mostrará el menú según el rol que tenga cada uno.
Figura 36. Pantalla de bienvenida al sistema con el menú correspondiente.
4.2 Menú Mantenimientos
1. En el Menú Mantenimientos tenemos los submenús para ingresar o actualizar datos en los diferentes formularios.
69
____________________________________________________________________
Figura 37. Menú Mantenimientos.
4.3 Registro de datos generales
1. Dentro del menú Mantenimientos seleccionar el submenú Datos Generales.
Figura 38. Formulario Datos Generales
2. Para ingresar un nuevo registro primero se debe dar clic en el botón nuevo y aparecerán las cajas de texto para ingresar los datos.
70
____________________________________________________________________
Figura 39. Pantalla luego de haber seleccionado nuevo.
3. Se debe llenar todos los campos, y seleccionar la opción guardar. Se mostrará un mensaje notificando que el registro fue exitoso y se actualizará el formulario con el registro recién ingresado.
71
____________________________________________________________________
Figura 41. Formulario Datos Generales luego de ingresar un nuevo registro.
4. Si no se llenan todos los campos, se mostrará un mensaje de notificación y no se guardará el registro hasta que todos estén llenos.
72
____________________________________________________________________
4.4 Actualizar datos de clientes
1. Dentro del Menú Mantenimientos seleccionar el submenú Clientes.
Figura 43. Formulario Clientes.
2. Si no se muestran clientes seleccionar la opción de Mostrar todos.
Figura 44. Listado de clientes.
3. Seleccionar el cliente a ser modificado, se mostrarán las cajas de textos con los datos del registro seleccionado.
73
____________________________________________________________________
Figura 45. Cliente seleccionado.
4. Cuando se intente ingresar caracteres no permitidos en las diferentes cajas de texto, se mostrará un mensaje de error.
74
____________________________________________________________________
5. Luego de haber actualizado la información de uno o más campos se deberá dar clic en el botón guardar para que los cambios se guarden.
Figura 47. Información actualizada del cliente.
4.5 Menú Facturación
1. Una vez que se haya ingresado al sistema y de acuerdo a los permisos que tenga el usuario se mostrará el menú Facturación, luego dando clic en dicho menú accedemos al formulario correspondiente.
75
____________________________________________________________________
Figura 48. Formulario de Facturación.
4.5 Registrar venta
1. Para registrar una nueva venta se dará clic en el botón respectivo.
76
____________________________________________________________________
2. Se ingresa el DNI del cliente pudiendo ser la cédula o el RUC y se presionará la tecla enter. Si el cliente no está registrado en el sistema, se desplegará automáticamente las cajas de texto para registrarlo.
Figura 50. Formulario de Facturación en caso de no tener al cliente registrado.
3. Si el cliente ya se encuentra registrado en el sistema se desplegarán las opciones de registrar venta y cancelar venta.
77
____________________________________________________________________
4. Se elige la opción registrar venta. Aparecerán las opciones para agregar productos a la venta.
Figura 52. Formulario de Facturación en caso de tener al cliente ya registrado.
5. Se selecciona un producto y se habilitará la caja de texto para ingresar la cantidad y descuento. Se ingresará la cantidad y presionará enter, de igual forma para el descuento.
78
____________________________________________________________________
6. Una vez que se haya llenado el total del producto, se dará clic en la opción agregar producto.
Figura 53. Producto agregado.
7. Para calcular el total de la factura se dará clic en finalizar venta. Aparecerán los cálculos de la factura y las opciones de registrar pago y cancelar venta
79
____________________________________________________________________
8. Al elegir registrar pago aparecerán las cajas de texto, en las cuales se ingresará la cantidad en dólares, especificando la cantidad en enteros y fracción. Luego de guardar el pago se mostrará la opción para imprimir la factura
80
____________________________________________________________________
CARRERA DE ANÁLISIS DE SISTEMAS
SISTEMATIZACIÓN DE LOS PROCESOS DE FACTURACIÓN Y CONTROL DE INVENTARIOS, MEDIANTE UNA APLICACIÓN WEB PARA CREACIONES BELÉN UBICADO EN LA PARROQUIA DE POMASQUI DEL
DISTRITO METROPOLITANO
Manual técnico
Autor: Jairo Paúl Cumbal Paucar
Tutor: Ing. Jaime Basantes
81 ____________________________________________________________________ ÍNDICE DE CONTENIDO Título Página 1. Introducción………82 2. Objetivos……….………82 3. Contenido………...………82
3.1 Clases de la Capa de Datos………..…82 3.2 Clases de la Capa de Negocio……….86 3.3 Formularios de la Capa de Presentación……….
82
____________________________________________________________________
1. Introducción
El presente manual está diseñado para mostrar una parte del código fuente del proyecto y que sirva de orientación para quienes estén interesados en el mismo. 2. Objetivos
Presentar una muestra de cómo está desarrollado el aplicativo. Servir de soporte en caso de ser necesario.
3. Guía de Usuario
3.1 Clases de la Capa de Datos Clase Conexion.cs: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace DATOS { class Conexion {
public string conexionC()
{
StreamReader leerArchivo = new
StreamReader("C:\\Conexiones\\CONEC_FACINV.txt"); string verLectura = leerArchivo.ReadToEnd().ToString(); return verLectura.ToString(); } } }
83 ____________________________________________________________________ Clase facturaDALC.cs: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; namespace DATOS {
public class facturaDALC
{
//GENERAMOS LA INSTANCIA A LA CLASE CONEXIÓN
Conexion cnn = new Conexion(); //PROGRAMAMOS EL MÉTODO DE BÚSQUEDA
public DataSet traerCabecera(string[] datos) {
SqlConnection conec = new SqlConnection(cnn.conexionC()); conec.Open();
SqlCommand cmd = null;
cmd = new SqlCommand("EXEC SPSB_CABECERA '" + datos[0] + "','" + datos[1] + "'", conec);
SqlDataAdapter sqlDA = new SqlDataAdapter(cmd); DataSet dsCabecera = new DataSet();
sqlDA.Fill(dsCabecera); return dsCabecera; }
public DataSet traerDetalle(string[] datos) {
SqlConnection conec = new SqlConnection(cnn.conexionC()); conec.Open();
SqlCommand cmd = null;
cmd = new SqlCommand("EXEC SPSB_DETALLE '" + datos[0] + "','" + datos[1] + "'", conec);
SqlDataAdapter sqlDA = new SqlDataAdapter(cmd); DataSet dsDetalle = new DataSet();
sqlDA.Fill(dsDetalle); return dsDetalle; }
public bool spsa_Cabecera(string[] datos) {
SqlConnection conn = new SqlConnection(cnn.conexionC()); conn.Open();
SqlCommand cmd = new SqlCommand("SPSA_CABECERA", conn);
cmd.Parameters.Add("@NUMFAC", SqlDbType.VarChar, 20).Value = datos[0];
84
____________________________________________________________________
cmd.Parameters.Add("@CODCLI", SqlDbType.Int).Value = Convert.ToInt32(datos[1]);
cmd.Parameters.Add("@CODEMP", SqlDbType.Int).Value = Convert.ToInt32(datos[2]); cmd.CommandType = CommandType.StoredProcedure; int ok = cmd.ExecuteNonQuery(); if (ok == 0) return false; else return true; }
public bool spsd_Cabecera(string[] datos) {
SqlConnection conn = new SqlConnection(cnn.conexionC()); conn.Open();
SqlCommand cmd = new SqlCommand("SPSD_CABECERA", conn);
cmd.Parameters.Add("@NUMFAC_CAB", SqlDbType.VarChar, 20).Value = datos[0]; cmd.CommandType = CommandType.StoredProcedure; int ok = cmd.ExecuteNonQuery(); if (ok == 0) return false; else return true; }
public bool spsa_Detalle(string[] datos) {
SqlConnection conn = new SqlConnection(cnn.conexionC()); conn.Open();
SqlCommand cmd = new SqlCommand("SPSA_DETALLE", conn);
cmd.Parameters.Add("@COD_CAB", SqlDbType.Int).Value = Convert.ToInt32(datos[0]);
cmd.Parameters.Add("@COD_PRO", SqlDbType.Int).Value = Convert.ToInt32(datos[1]);
cmd.Parameters.Add("@CANT_DET", SqlDbType.Int).Value = Convert.ToInt32(datos[2]);
cmd.Parameters.Add("@SUBTOTAL_DET", SqlDbType.Decimal).Value = Convert.ToDecimal(datos[3]);
cmd.Parameters.Add("@TOTAL_IVA", SqlDbType.Decimal).Value = Convert.ToDecimal(datos[4]);
cmd.Parameters.Add("@DESCUENTO_DET", SqlDbType.Decimal).Value = Convert.ToDecimal(datos[5]);
cmd.Parameters.Add("@TOTAL_DET", SqlDbType.Decimal).Value = Convert.ToDecimal(datos[6]); cmd.CommandType = CommandType.StoredProcedure; int ok = cmd.ExecuteNonQuery(); if (ok == 0) return false; else
85
____________________________________________________________________
return true;
}
public bool spsi_Cabecera(string[] datos) {
SqlConnection conn = new SqlConnection(cnn.conexionC()); conn.Open();
SqlCommand cmd = new SqlCommand("SPSI_CABECERA", conn);
cmd.Parameters.Add("@SUBTOTAL", SqlDbType.Decimal).Value = Convert.ToDecimal(datos[0]);
cmd.Parameters.Add("@IVA", SqlDbType.Decimal).Value = Convert.ToDecimal(datos[1]);
cmd.Parameters.Add("@DESC", SqlDbType.Decimal).Value = Convert.ToDecimal(datos[2]);
cmd.Parameters.Add("@TOTAL_CAB", SqlDbType.Decimal).Value = Convert.ToDecimal(datos[3]); cmd.CommandType = CommandType.StoredProcedure; int ok = cmd.ExecuteNonQuery(); if (ok == 0) return false; else return true; }
public bool spsd_Detalle(string[] datos) {
SqlConnection conn = new SqlConnection(cnn.conexionC()); conn.Open();
SqlCommand cmd = new SqlCommand("SPSD_DETALLE", conn);
cmd.Parameters.Add("@CODCAB", SqlDbType.Int).Value =Convert.ToInt32(datos[0]); cmd.CommandType = CommandType.StoredProcedure; int ok = cmd.ExecuteNonQuery(); if (ok == 0) return false; else return true; }
public bool spsd_Producto(string[] datos) {
SqlConnection conn = new SqlConnection(cnn.conexionC()); conn.Open();
SqlCommand cmd = new SqlCommand("SPSD_PROXDET", conn);
cmd.Parameters.Add("@CODDET", SqlDbType.Int).Value =Convert.ToInt32(datos[0]);
cmd.CommandType = CommandType.StoredProcedure; int ok = cmd.ExecuteNonQuery();
86 ____________________________________________________________________ if (ok == 0) return false; else return true; }
public bool spsa_Stock(string[] datos) {
SqlConnection conn = new SqlConnection(cnn.conexionC()); conn.Open();
SqlCommand cmd = new SqlCommand("SPSA_STOCK", conn);
cmd.Parameters.Add("@CODPRO", SqlDbType.Int).Value = Convert.ToInt32(datos[0]);
cmd.Parameters.Add("@CANTIDAD", SqlDbType.Int).Value = Convert.ToInt32(datos[1]); cmd.CommandType = CommandType.StoredProcedure; int ok = cmd.ExecuteNonQuery(); if (ok == 0) return false; else return true; }
public bool spsa_EstadoFactura(string[] datos) {
SqlConnection conn = new SqlConnection(cnn.conexionC()); conn.Open();
SqlCommand cmd = new SqlCommand("SPSA_ESTADOFAC", conn);
cmd.Parameters.Add("@NUMFAC", SqlDbType.VarChar,20).Value =datos[0];
cmd.Parameters.Add("@ESTADO", SqlDbType.VarChar,2).Value = datos[1]; cmd.CommandType = CommandType.StoredProcedure; int ok = cmd.ExecuteNonQuery(); if (ok == 0) return false; else return true; } } }
3.2 Clases de la Capa de Negocio Clase manejadorFactura.cs:
using System;
using System.Collections.Generic;
using System.Linq;
87 ____________________________________________________________________ using System.Data; using DATOS; namespace NEGOCIO {
public class manejadorFactura
{
facturaDALC facM = new facturaDALC();
public DataSet traerCabecera(String[] datos) {
return facM.traerCabecera(datos); }
public DataSet traerDetalle(String[] datos) {
return facM.traerDetalle(datos); }
public bool spsa_Cabecera(string[] datos) {
return facM.spsa_Cabecera(datos); }
public bool spsd_Cabecera(string[] datos) {
return facM.spsd_Cabecera(datos); }
public bool spsa_Detalle(string[] datos) {
return facM.spsa_Detalle(datos); }
public bool spsi_Cabecera(string[] datos) {
return facM.spsi_Cabecera(datos); }
public bool spsd_Detalle(string[] datos) {
return facM.spsd_Detalle(datos); }
public bool spsd_Producto(string[] datos) {
return facM.spsd_Producto(datos); }
public bool spsa_Stock(string[] datos) {
return facM.spsa_Stock(datos); }
public bool spsa_EstadoFactura(string[] datos) {
return facM.spsa_EstadoFactura(datos); }
88
____________________________________________________________________
3.3 Formularios de la Capa de Presentación Formulario frmPersona.aspx – Código de Diseño:
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master"
AutoEventWireup="true" CodeBehind="frmPersona.aspx.cs"
Inherits="WebFacturacion.Formularios.frmPersona" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> <title>Mostrar Mensajes</title>
<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js"
type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-
ui.min.js" type="text/javascript"></script>
<link rel="stylesheet"
href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.3/themes/base/jquery-
ui.css" type="text/css" media="all" /> <script type="text/javascript">
function validarN(e) {
tecla = (document.all) ? e.keyCode : e.which; if (tecla == 8) return true;
patron =
/[qwertyuiopasdfghjklñzxcvbnmQWERTYUIOPÑLKJHGFDSAZXCVBNM]/; te = String.fromCharCode(tecla);
if (patron.test(te)) {
alert('SOLO SE ACEPTAN NÚMEROS'); return false;
} }
function validarL(e) {
tecla = (document.all) ? e.keyCode : e.which; if (tecla == 8) return true;
patron = /[0123456789]/;
te = String.fromCharCode(tecla); if (patron.test(te)) {
alert('SOLO SE ACEPTAN LETRAS'); return false;
} }
</script>
<style type="text/css">
.style1 { width: 100%; font-size: medium; font-family: Cambria; color: #000000; } .style2 { width: 100%; } .style3 { width: 135px; } .style5
89 ____________________________________________________________________ { width: 206px; } .style6 { text-align: center; } .style7 { width: 155px; } .style8 { width: 180px; } .style10 { text-align: right; width: 200px; } .style11 { text-align: right; width: 180px; } </style> </asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<table class="style1">
<tr>
<td style="text-align: center; font-weight: 700; font-size: x- large">
PERSONA</td>
</tr>
<tr>
<td>
<table class="style2">
<tr>
<td class="style5">
<asp:RadioButton ID="rdbTodos" runat="server"
AutoPostBack="True"
oncheckedchanged="rdbTodos_CheckedChanged"
Text="Mostrar todos" />
</td>
<td>
<asp:Label ID="Label1" runat="server" Text="Ingrese nombre, apellido, cédula,
teléfono, celular o email"
Visible="False"></asp:Label>
</td>
</tr>
<tr>
<td class="style5">
<asp:RadioButton ID="rdbOpciones" runat="server"
AutoPostBack="True"
oncheckedchanged="rdbOpciones_CheckedChanged"
Text="Opciones de búsqueda" />
</td>
90
____________________________________________________________________
<asp:TextBox ID="txtBuscar" runat="server"
AutoPostBack="True"
ontextchanged="txtBuscar_TextChanged"
Visible="False" Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style5">
<asp:RadioButton ID="rdbGenero" runat="server"
AutoPostBack="True"
oncheckedchanged="rdbGenero_CheckedChanged"
Text="Ver por sexo" />
</td>
<td>
<asp:DropDownList ID="cbmGenero" runat="server"
AutoPostBack="True"
Height="22px" Visible="False" Width="128px"
onselectedindexchanged="cbmGenero_SelectedIndexChanged">
</asp:DropDownList>
<asp:Label ID="Label2" runat="server" Text="ELIJA SEXO" Visible="False"></asp:Label>
</td>
</tr>
<tr>
<td class="style5">
<asp:RadioButton ID="rdbNacionalidad"
runat="server" AutoPostBack="True"
oncheckedchanged="rdbNacionalidad_CheckedChanged" Text="Ver por nacionalidad"
/>
</td>
<td>
<asp:DropDownList ID="cbmNacionalidad"
runat="server" AutoPostBack="True"
Height="22px" Visible="False" Width="128px"
onselectedindexchanged="cbmNacionalidad_SelectedIndexChanged">
</asp:DropDownList>
<asp:Label ID="Label3" runat="server" Text="ELIJA
NACIONALIDAD" Visible="False"></asp:Label>
</td> </tr> </table> </td> </tr> <tr> <td> </td> </tr> <tr> <td>
<table class="style2">
<tr>
<td class="style3">
<asp:ImageButton ID="btnNuevo" runat="server"
Height="80px"
ImageUrl="~/Imagenes/nuevo.png" Width="80px"
onclick="btnNuevo_Click" />
91
____________________________________________________________________
<td class="style3">
<asp:ImageButton ID="btnGuardar" runat="server"
Height="80px"
ImageUrl="~/Imagenes/guardar.jpg" Width="80px" onclick="btnGuardar_Click" />
</td>
<td>
<asp:ImageButton ID="btnEliminar" runat="server"
Height="80px" ImageUrl="~/Imagenes/eliminar.png" Width="80px" onclick="btnEliminar_Click" /> </td> </tr> <tr> <td class="style3">
<asp:Label ID="Label4" runat="server"
Text="NUEVO"></asp:Label>
</td>
<td class="style3">
<asp:Label ID="Label5" runat="server"
Text="GUARDAR"></asp:Label>
</td>
<td>
<asp:Label ID="Label6" runat="server"
Text="ELIMINAR"></asp:Label>
</td> </tr> </table> </td> </tr> <tr> <td> </td> </tr> <tr> <td>
<asp:Panel ID="Panel1" runat="server" Visible="False">
<table class="style2">
<tr>
<td class="style11">
<b>
<asp:Label ID="Label7" runat="server"
Text="CÓDIGO:"></asp:Label>
</b>
</td>
<td class="style7">
<asp:TextBox ID="txtCodigo" runat="server"
Enabled="False"></asp:TextBox>
</td>
<td class="style8">
</td>
<td>
<asp:TextBox ID="txtFoto" runat="server"
Visible="False"></asp:TextBox>
</td>
<td class="style6">
<strong>FOTO</strong></td>
92 ____________________________________________________________________ <tr> <td class="style11"> <b>
<asp:Label ID="Label9" runat="server"
Text="CÉDULA:"></asp:Label>
</b>
</td>
<td class="style7">
<asp:TextBox ID="txtCedula"
placeHolder="Ingrese cédula" onkeypress="return validarN(event)"
runat="server" MaxLength="10" AutoPostBack="True"
ontextchanged="txtCedula_TextChanged"></asp:TextBox>
</td>
<td class="style11">
<b>
<asp:Label ID="Label21" runat="server"
Text="CELULAR:"></asp:Label>
</b>
</td>
<td>
<asp:TextBox ID="txtCelular"
placeHolder="Ingrese celular" onkeypress="return validarN(event)"
runat="server" MaxLength="10"></asp:TextBox>
</td>
<td rowspan="4" style="text-align: center">
<asp:Image ID="Image1" runat="server"
Height="85px" Width="85px" /> </td> </tr> <tr> <td class="style11"> <b>
<asp:Label ID="Label10" runat="server"
Text="NOMBRES:"></asp:Label>
</b>
</td>
<td class="style7">
<asp:TextBox ID="txtNombres"
placeHolder="Ingrese nombres" onkeypress="return validarL(event)"
runat="server"></asp:TextBox>
</td>
<td class="style11">
<b>
<asp:Label ID="Label20" runat="server"
Text="EMAIL:"></asp:Label>
</b>
</td>
<td>
<asp:TextBox ID="txtEmail"
placeHolder="Ingrese email" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style11">
<b>
<asp:Label ID="Label11" runat="server"
Text="APELLIDOS:"></asp:Label>
</b>
93
____________________________________________________________________
<td class="style7">
<asp:TextBox ID="txtApellidos"
placeHolder="Ingrese apellidos" onkeypress="return validarL(event)"
runat="server"></asp:TextBox>
</td>
<td class="style11">
<b>
<asp:Label ID="Label19" runat="server"
Text="FECHA DE NACIMIENTO:"></asp:Label>
</b>
</td>
<td>
<asp:TextBox ID="txtFecha"
placeHolder="dd/mm/aaaa" onkeypress="return validarN(event)"
runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style11">
<b>
<asp:Label ID="Label12" runat="server"
Text="DIRECCIÓN:"></asp:Label>
</b>
</td>
<td class="style7">
<asp:TextBox ID="txtDireccion"
placeHolder="Ingrese dirección" runat="server"></asp:TextBox>
</td>
<td class="style11">
<b>
<asp:Label ID="Label17" runat="server"
Text="SEXO:"></asp:Label>
</b>
</td>
<td>
<asp:DropDownList ID="cbmSexo" runat="server"
AutoPostBack="True" Height="22px"
Width="128px">