Diseño Sistema de Ventas C# - Visual Studio 2013 y Sql Server 2014 (20-41) Clase NCliente, Formulario frmCliente
Buen día amigos de IncanatoIt, en este artículo diseñaremos el formulario FrmCliente dibujaremos todos los controles específicos datagridview para mostrar el listado de todos los clientes de la base de datos en SQL Server 2014 directamente desde Visual Studio 2013, los textbox respectivos, los Buttons, checkbox, ErrorProvider para mostrar los mensajes de validaciones, tooltip para mostrar lo mensajes de ayuda; implementaremos los métodos para mostrar registros de una base de datos en sql server desde Visual Studio, implementaremos los procedimientos para habilitar botones, limpiar las cajas de texto, ocultar columnas en el lenguaje de programación Csharp.
Código de la clase NCliente
Video 20: Sistema de Ventas C# - Visual Studio 2013 - Sql Server 2014 (20-34) Formulario frmCliente
Pueden descargar el paquete del proyecto desarrollado en el curso, la base de datos, los procedimientos almacenados y el sistema completo hasta el Video 41 desde:
Puedes descargar la versión completa del proyecto con todas las funcionalidades terminadas desde:
Pueden seguir el curso completo y aprender a desarrollar un Sistema de Ventas en Csharp.Net utilizando como IDE de desarrollo Visual Studio 2013 y como gestor de Base de datos SQL Server 2014 desde:
No se olviden siempre de Visitar mi canal www.youtube.com/jcarlosad7 para ver los nuevos cursos.
Formulario frmCliente - Listado
Formulario frmCliente - Mantenimiento
Código de la clase NCliente
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using CapaDatos; namespace CapaNegocio { public class NCliente { //Método Insertar que llama al método Insertar de la clase DCliente //de la CapaDatos public static string Insertar(string nombre, string apellidos,string sexo, DateTime fecha_nacimiento,string tipo_documento,string num_documento,string direccion,string telefono,string email) { DCliente Obj = new DCliente(); Obj.Nombre = nombre; Obj.Apellidos = apellidos; Obj.Sexo = sexo; Obj.Fecha_Nacimiento = fecha_nacimiento; Obj.Tipo_Documento = tipo_documento; Obj.Num_Documento = num_documento; Obj.Direccion = direccion; Obj.Telefono = telefono; Obj.Email = email; return Obj.Insertar(Obj); } //Método Editar que llama al método Editar de la clase DCliente //de la CapaDatos public static string Editar(int idcliente, string nombre, string apellidos, string sexo, DateTime fecha_nacimiento, string tipo_documento, string num_documento, string direccion, string telefono, string email) { DCliente Obj = new DCliente(); Obj.Idcliente = idcliente; Obj.Nombre = nombre; Obj.Apellidos = apellidos; Obj.Sexo = sexo; Obj.Fecha_Nacimiento = fecha_nacimiento; Obj.Tipo_Documento = tipo_documento; Obj.Num_Documento = num_documento; Obj.Direccion = direccion; Obj.Telefono = telefono; Obj.Email = email; return Obj.Editar(Obj); } //Método Eliminar que llama al método Eliminar de la clase DCliente //de la CapaDatos public static string Eliminar(int idcliente) { DCliente Obj = new DCliente(); Obj.Idcliente = idcliente; return Obj.Eliminar(Obj); } //Método Mostrar que llama al método Mostrar de la clase DCliente //de la CapaDatos public static DataTable Mostrar() { return new DCliente().Mostrar(); } //Método BuscarApellidos que llama al método BuscarApellidos //de la clase DCliente de la CapaDatos public static DataTable BuscarApellidos(string textobuscar) { DCliente Obj = new DCliente(); Obj.TextoBuscar = textobuscar; return Obj.BuscarApellidos(Obj); } //Método BuscarNum_Documento que llama al método BuscarNum_Documento //de la clase DCliente de la CapaDatos public static DataTable BuscarNum_Documento(string textobuscar) { DCliente Obj = new DCliente(); Obj.TextoBuscar = textobuscar; return Obj.BuscarNum_Documento(Obj); } } }
Código del formulario frmCliente
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using CapaNegocio; namespace CapaPresentacion { public partial class frmCliente : Form { //Variable que nos indica si vamos a insertar un nuevo producto private bool IsNuevo = false; //Variable que nos indica si vamos a modificar un producto private bool IsModificar = false; //Constructor del formulario public frmCliente() { InitializeComponent(); this.ttMensaje.SetToolTip(this.txtNombre, "Ingrese el Nombre del Cliente"); this.ttMensaje.SetToolTip(this.txtApellidos, "Ingrese Los Apellidos del Cliente"); this.ttMensaje.SetToolTip(this.txtNum_Documento, "Ingrese el Documento del Cliente"); this.ttMensaje.SetToolTip(this.txtDireccion, "Ingrese la Dirección del Cliente"); } //Para mostrar mensaje de confirmación private void MensajeOK(string Mensaje) { MessageBox.Show(Mensaje, "Sistema Ventas", MessageBoxButtons.OK, MessageBoxIcon.Information); } //Para mostrar mensaje de error private void MensajeError(string Mensaje) { MessageBox.Show(Mensaje, "Sistema Ventas", MessageBoxButtons.OK, MessageBoxIcon.Error); } //Limpia los controles del formulario private void Limpiar() { this.txtIdcliente.Text = string.Empty; this.txtNombre.Text = string.Empty; this.txtApellidos.Text = string.Empty; this.txtNum_Documento.Text = string.Empty; this.txtDireccion.Text = string.Empty; this.txtTelefono.Text = string.Empty; this.txtEmail.Text = string.Empty; } //Habilita los controles de los formularios private void Habilitar(bool Valor) { this.txtIdcliente.ReadOnly = !Valor; this.txtNombre.ReadOnly = !Valor; this.txtApellidos.ReadOnly = !Valor; this.txtDireccion.ReadOnly = !Valor; this.cbSexo.Enabled = Valor; this.dtFecha_Nacimiento.Enabled = Valor; this.cbTipo_Documento.Enabled = Valor; this.txtNum_Documento.Enabled = Valor; this.txtDireccion.ReadOnly = !Valor; this.txtTelefono.ReadOnly = !Valor; this.txtEmail.ReadOnly = !Valor; } //Habilita los botones private void Botones() { if (this.IsNuevo || this.IsModificar) { this.Habilitar(true); this.btnNuevo.Enabled = false; this.btnGuardar.Enabled = true; this.btnEditar.Enabled = false; this.btnCancelar.Enabled = true; } else { this.Habilitar(false); this.btnNuevo.Enabled = true; this.btnGuardar.Enabled = false; this.btnEditar.Enabled = true; this.btnCancelar.Enabled = false; } } private void OcultarColumnas() { this.dataListado.Columns[0].Visible = false; this.dataListado.Columns[1].Visible = false; } private void Mostrar() { this.dataListado.DataSource = NCliente.Mostrar(); this.OcultarColumnas(); lblTotal.Text = "Total Registros: " + Convert.ToString(dataListado.Rows.Count); } private void BuscarApellidos() { this.dataListado.DataSource = NCliente.BuscarApellidos(this.txtBuscar.Text); this.OcultarColumnas(); lblTotal.Text = "Total Registros: " + Convert.ToString(dataListado.Rows.Count); } private void BuscarNum_Documento() { this.dataListado.DataSource = NCliente.BuscarNum_Documento(this.txtBuscar.Text); this.OcultarColumnas(); lblTotal.Text = "Total Registros: " + Convert.ToString(dataListado.Rows.Count); } private void frmCliente_Load(object sender, EventArgs e) { //Para ubicar al formulario en la parte superior del contenedor this.Top = 0; this.Left = 0; //Le decimos al DataGridView que no auto genere las columnas //this.datalistado.AutoGenerateColumns = false; //Llenamos el DataGridView con la informacion //de todos nuestros Clientes this.Mostrar(); //Deshabilita los controles this.Habilitar(false); //Establece los botones this.Botones(); } private void btnBuscar_Click_1(object sender, EventArgs e) { if (cbBuscar.Text.Equals("Apellidos")) { this.BuscarApellidos(); } else if (cbBuscar.Text.Equals("Documento")) { this.BuscarNum_Documento(); } } private void btnEliminar_Click(object sender, EventArgs e) { try { DialogResult Opcion; Opcion = MessageBox.Show("Realmente Desea Eliminar los Registros", "Sistema de Ventas", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (Opcion == DialogResult.OK) { string Codigo; string Rpta = ""; foreach (DataGridViewRow row in dataListado.Rows) { if (Convert.ToBoolean(row.Cells[0].Value)) { Codigo = Convert.ToString(row.Cells[1].Value); Rpta = NCliente.Eliminar(Convert.ToInt32(Codigo)); if (Rpta.Equals("OK")) { this.MensajeOK("Se Eliminó Correctamente el registro"); } else { this.MensajeError(Rpta); } } } this.Mostrar(); } } catch (Exception ex) { MessageBox.Show(ex.Message + ex.StackTrace); } } private void btnNuevo_Click(object sender, EventArgs e) { this.IsNuevo = true; this.IsModificar = false; this.Botones(); this.Limpiar(); this.Habilitar(true); this.txtNombre.Focus(); } private void btnGuardar_Click(object sender, EventArgs e) { try { //La variable que almacena si se inserto //o se modifico la tabla string Rpta = ""; if (this.txtNombre.Text == string.Empty || this.txtApellidos.Text == string.Empty || txtNum_Documento.Text == string.Empty) { MensajeError("Falta ingresar algunos datos, serán remarcados"); errorIcono.SetError(txtNombre, "Ingrese un Valor"); errorIcono.SetError(txtApellidos, "Ingrese un Valor"); errorIcono.SetError(txtNum_Documento, "Ingrese un Valor"); } else { if (this.IsNuevo) { //Vamos a insertar un cliente Rpta = NCliente.Insertar(this.txtNombre.Text.Trim().ToUpper(), this.txtApellidos.Text.Trim().ToUpper(),cbSexo.Text, dtFecha_Nacimiento.Value,cbTipo_Documento.Text, txtNum_Documento.Text,txtDireccion.Text, txtTelefono.Text,txtEmail.Text); } else { //Vamos a modificar un Cliente Rpta = NCliente.Editar(Convert.ToInt32(this.txtIdcliente.Text), this.txtNombre.Text.Trim().ToUpper(), this.txtApellidos.Text.Trim().ToUpper(), cbSexo.Text, dtFecha_Nacimiento.Value, cbTipo_Documento.Text, txtNum_Documento.Text, txtDireccion.Text, txtTelefono.Text, txtEmail.Text); } //Si la respuesta fue OK, fue porque se modifico //o inserto el Cliente //de forma correcta if (Rpta.Equals("OK")) { if (this.IsNuevo) { this.MensajeOK("Se insertó de forma correcta el registro"); } else { this.MensajeOK("Se actualizó de forma correcta el registro"); } } else { //Mostramos el mensaje de error this.MensajeError(Rpta); } this.IsNuevo = false; this.IsModificar = false; this.Botones(); this.Limpiar(); this.Mostrar(); this.txtIdcliente.Text = ""; } } catch (Exception ex) { MessageBox.Show(ex.Message + ex.StackTrace); } } private void btnEditar_Click(object sender, EventArgs e) { //Si no ha seleccionado un Cliente no puede modificar if (!this.txtIdcliente.Text.Equals("")) { this.IsModificar = true; this.Botones(); } else { this.MensajeError("Debe de buscar un registro para Modificar"); } } private void btnCancelar_Click(object sender, EventArgs e) { this.IsNuevo = false; this.IsModificar = false; this.Botones(); this.Limpiar(); this.txtIdcliente.Text = string.Empty; } private void dataListado_DoubleClick(object sender, EventArgs e) { this.txtIdcliente.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["idcliente"].Value); this.txtNombre.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["nombre"].Value); this.txtApellidos.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["apellidos"].Value); this.cbSexo.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["sexo"].Value); this.dtFecha_Nacimiento.Value = Convert.ToDateTime(this.dataListado.CurrentRow.Cells["fecha_nacimiento"].Value); this.cbTipo_Documento.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["tipo_documento"].Value); this.txtNum_Documento.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["num_documento"].Value); this.txtDireccion.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["direccion"].Value); this.txtTelefono.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["telefono"].Value); this.txtEmail.Text = Convert.ToString(this.dataListado.CurrentRow.Cells["email"].Value); this.tabControl1.SelectedIndex = 1; } private void dataListado_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == dataListado.Columns["Eliminar"].Index) { DataGridViewCheckBoxCell ChkEliminar = (DataGridViewCheckBoxCell)dataListado.Rows[e.RowIndex].Cells["Eliminar"]; ChkEliminar.Value = !Convert.ToBoolean(ChkEliminar.Value); } } private void chkEliminar_CheckedChanged(object sender, EventArgs e) { if (chkEliminar.Checked) { this.dataListado.Columns[0].Visible = true; } else { this.dataListado.Columns[0].Visible = false; } } } }
Video 20: Sistema de Ventas C# - Visual Studio 2013 - Sql Server 2014 (20-34) Formulario frmCliente
Saludos Imperio, un abrazo a la distancia!
Diseño Sistema de Ventas C# - Visual Studio 2013 y Sql Server 2014 (20-41) Clase NCliente, Formulario frmCliente
Reviewed by IncanatoIt-ad
on
10:38
Rating:
Juan Carlos, buen día el topico de lo mismo pero trabajadores la tienes incluida para una proxima entrega?
ResponderEliminarGracias
buenas juan carlos esta muy bueno el proyecto cuando vas a publicar los que faltan
ResponderEliminaramigo por favor ayudame, necesito los videos de 34-34 estoy realizando un proyecto de la universidad sobre un sistemas de ventas y he visto todos solo me falta terminar. me puedes ayudar completando los videos
ResponderEliminarhola juancarlos podrias publicar los videos q faltan del sistema de ventas es q estoy siguioendo tu videos y me quede en el video 20 estaria muy agradecido contigo gracias mi correo es planeta 50@hotmail.com
ResponderEliminarEstimado Juan carlos necesito me puedas ayudar con un programa para Punto de venta online en visual studio C# por ejemplo codigo fuente base para comenzar a programar por favor, mi correo es max-poma@hotmail.com
ResponderEliminar