Top Ad unit 728 × 90

Recientes

recent

Diseño Sistema de Ventas C# - Visual Studio 2013 y Sql Server 2014 (8-41) Capa Presentación frmCategoria

Buen día amigos, En este artículo implementaremos ya la capa Presentación, diseñaremos el formulario FrmCategoria dibujaremos todos los controles específicos datagridview para mostrar el listado de todas las categorías 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.

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.

Capa Presentación
Es la que ve el usuario (también se la denomina "capa de Usuario"), presenta el sistema al usuario, le comunica la información y captura la información del usuario en un mínimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato). Esta capa se comunica únicamente con la capa de Negocio. También es conocida como interfaz gráfica y debe tener la característica de ser "amigable" (entendible y fácil de usar) para el usuario.

Formulario FrmCategoría

TabPage Listado


TabPage Mantenimiento


Código Fuente - Procedimientos
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;
//Comunicarse con la Capa de Negocios
using CapaNegocio;

namespace CapaPresentacion
{
    public partial class frmCategoria : 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 frmCategoria()
        {
            InitializeComponent();
            this.ttMensaje.SetToolTip(this.txtNombre, "Ingrese el Nombre de la categoría");

        }

       
        //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.txtNombre.Text = string.Empty;
            this.txtDescripcion.Text=string.Empty;
            this.txtIdcategoria.Text = string.Empty;
        }

        //Habilita los controles de los formularios
        private void Habilitar(bool Valor)
        {
            this.txtNombre.ReadOnly = !Valor;
            this.txtDescripcion.ReadOnly = !Valor;
           this.txtIdcategoria.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.btnModificar.Enabled = false;
                this.btnCancelar.Enabled = true;
            }
            else
            {
                this.Habilitar(false);
                this.btnNuevo.Enabled = true;
                this.btnGuardar.Enabled = false;
                this.btnModificar.Enabled = true;
                this.btnCancelar.Enabled = false;
            }
        }
        private void OcultarColumnas()
        {
            this.datalistado.Columns[0].Visible = false;
            this.datalistado.Columns[1].Visible = false;
        }

        //Método Mostrar()
       
private void Mostrar()
        {
            this.datalistado.DataSource = nCategoria.Mostrar();
            this.OcultarColumnas();
            LblTotal.Text ="Total Registros: " + Convert.ToString(datalistado.Rows.Count);
        }

      //Método BuscarNombre

        private void BuscarNombre()
        {
 this.datalistado.DataSource = nCategoria.BuscarNombre(this.txtBuscar.Text);
            this.OcultarColumnas();
            LblTotal.Text ="Total Registros: " + Convert.ToString(datalistado.Rows.Count);
        }


      //Método Constructor

        private void frmCategoria_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
            //Llenamos el DataGridView con la información
            //de todos nuestras categorías
            this.Mostrar();
            //Deshabilita los controles
            this.Habilitar(false);
            //Establece los botones
            this.Botones();
        }

       //Llamamos al Método Buscar

        private void btnbuscar_Click(object sender, EventArgs e)
        {
             this.BuscarNombre();
         }

        private void txtBuscar_TextChanged(object sender, EventArgs e)
        {
            this.BuscarNombre();
        }
    }
}

Video 8: Sistema de Ventas C# - Visual Studio 2013 - Sql Server 2014 (8-34) Capa Presentación Windows Forms 


Saludos Imperio, un abrazo a la distancia!!!.
Diseño Sistema de Ventas C# - Visual Studio 2013 y Sql Server 2014 (8-41) Capa Presentación frmCategoria Reviewed by IncanatoIt-ad on 18:49 Rating: 5

22 comentarios:

  1. Muchas gracias por el curso de c# segui todas las instrucciones y me funciona casi todo
    solo que cuando intento Buscar y le pongo una letra al TextBox Buscar se para el sistema y me manda a este codigo
    //Metodo para ocultar columnas

    private void OcultarColumnas()
    {
    this.dataListado.Columns[0].Visible = false;
    this.dataListado.Columns[1].Visible = false; //ESTE ES EL ERROR en false NO ME PERMITE BUSCAR

    }

    ResponderEliminar
    Respuestas
    1. La solución esta desde la clase de Conexión a la base de datos
      Dos formas....

      1:- Le antepones @ así como esta el ejemplo:
      public static string Cn = @"Data Source=IGLOSO\SQLEXPRESS; Initial Catalog=Ahorros; Integrated Security=True";

      2.- Le aumentas un \ así como esta el ejemplo:
      public static string Cn = "Data Source=IGLOSO\\SQLEXPRESS; Initial Catalog=Ahorros; Integrated Security=True";

      Espero y haya sido de utilidad y resuelva tu problema..

      Saludos y buena tarde

      Eliminar
    2. La solución esta desde la clase de Conexión a la base de datos
      Dos formas....

      1:- Le antepones @ así como esta el ejemplo:
      public static string Cn = @"Data Source=IGLOSO\SQLEXPRESS; Initial Catalog=Ahorros; Integrated Security=True";

      2.- Le aumentas un \ así como esta el ejemplo:
      public static string Cn = "Data Source=IGLOSO\\SQLEXPRESS; Initial Catalog=Ahorros; Integrated Security=True";

      Espero y haya sido de utilidad y resuelva tu problema..

      Saludos y buena tarde

      Eliminar
  2. tengo problemas cuando pruebo me sale el datagri en blanco y el label de la cantidad me sale con el nombre del label normal creo que no me esta conectado a la base de datos que debo hacer

    ResponderEliminar
  3. Saludos mi cadena de conexion es esta:

    public static string Cn = @"Data Source=WIN-PA9HIEP6MCO; Initial Catalog=dbventas; Integrated Security =True";

    probé lo que dices de ambas formas y no funciono que puedo hacer?

    ResponderEliminar
    Respuestas
    1. tardes compañero ud encontro el problema que tuvo en el tuturial 8 sobre la conexion a la base de datos sobre los datos en blanco q tambien tengo el mismo problema para ver si me ayudas gracias

      Eliminar
  4. Hola Juan Carlos primero que todo quería agradecerte por estos vídeo cursos, son fáciles de comprender y muy interesantes.

    He estado teniendo el siguiente problema y quería ver si me puedes ayudar:


    this.dataListado.DataSource = NCategoria.BuscarNombre(this.txtbuscar.Text); La clase NCategoria no la reconoce, y me aparece como un error.

    Al principio del formulario si agregue using CapaNegocio; pero aparece como si el formulario no lo estuviera usando, también mire las referencias y si están, que puede estar mal?

    Estaré atenta a tu respuesta,

    Muchas Gracias

    Att Viviana Bedoya

    ResponderEliminar
  5. Juan ya encontré el problemita, no había puesto public en la clase NCategoria,

    Seguiré viendo tus vídeos y aprendiendo de ellos, muchas gracias

    Att Viviana Bedoya

    ResponderEliminar
  6. hola q tal muchas gracias por tus tutoriales me ayudan mucho el problema que tengo es q me sale error en la parte cuando ejecuto categoria y presentacion ya q solo me permite guardar un sola ves ala segunda ves me sale el error"la cadena de entrada no tiene formato correcto"

    ResponderEliminar
  7. todo iba bien hasta que no pude crear una conexión a la base de datos, ya intente con el @ y las dos \\ y no logro nada, ya hasta le cambie el nombre a mi pc y nada ayuda porfavor

    ResponderEliminar
    Respuestas
    1. Revise este video https://www.youtube.com/watch?v=tlrfqF0Zcp0&list=PLZPrWDz1Molqn16IORKg8nFYTejgYCHJp&index=40 le ayudará bastante.

      Eliminar
  8. HOLA, excelente tutorial, lo estoy siguiendo, pero tengo un problema cuando hago la busqueda por nombre, me manda el siguiente error, espero que puedan guiarme...

    Excepción no controlada del tipo 'System.ArgumentOutOfRangeException' en mscorlib.dll

    Información adicional: Index was out of range. Must be non-negative and less than the size of the collection.



    saludos..!!!

    ResponderEliminar
    Respuestas
    1. Revise si el método buscar consulta a la función que hace referencia al procedimiento respectivo en la base de datos.
      Saludos.

      Eliminar
  9. HOLA, excelente el tutorial, lo estoy siguiendo, pero tengo el mismo problema de todos los anteriores amigos cuando hago la busqueda por nombre, me manda el siguiente error, espero que puedan guiarme...

    Excepción no controlada del tipo 'System.ArgumentOutOfRangeException' en mscorlib.dll

    Información adicional: Index was out of range. Must be non-negative and less than the size of the collection.

    Ya intente de todo, revise los procedimientos, los metodos de Ncategoria y Dcategoria, vi el video 41, pero al colocar el cursor en el txtBuscar me sale el error, despues todo carga perfecto. espero me puedas ayudar amigo.
    gracias por todo

    ResponderEliminar
    Respuestas
    1. Seguro estas llamando al método mostrar y este no obtiene ningún dato de la base.

      Eliminar
  10. Hola Juan Carlos
    Mi admiración por el trabajo que has presentado que nos sirve a los profanos como yo apreciar tu excelente trabajo.
    El problema que me encuentro despues de visionar hasta el video 7 es que me sale este error: Se detectó una excepción que puede estar causada por una extensión.
    Para obtener mas información, examine el archivo 'C:\Users\manolo1\AppData\Roadming\Microsoft\VisualStudio\14.0\ActivbityLog.xml'.
    ¿Que es lo que puede estar causando dicho eror?
    Un Saludo desde Gran Canaria España.

    ResponderEliminar
    Respuestas
    1. HOla.
      En el archivo que le muestra esta almacenado el error.
      con lo que me escribe no podría determinar cual es su falla.

      Saludos.

      Eliminar
  11. Hola! buenas tardes, antes que nada quiero agradecerte por el curso, está bastante completo y he aprendido mucho a lo largo de él, ovy por ahí del video 9, y tengo un problema con mi formulario de FrmCategorias, ya que al ejecutar no me muestra ninguna información, no se qué es lo que está pasando, bajé el codigo y está exactamente igual y no me manda error de conexión ni nada por el estilo asi que no se me ocurre que hacer al respecto, espeor puedas orientarm un poco. Sin más por el momento me despido y quedo de ti. Saludos cordiales

    ResponderEliminar
    Respuestas
    1. Revise este video le será de mucha ayuda: https://www.youtube.com/watch?v=tlrfqF0Zcp0&list=PLZPrWDz1Molqn16IORKg8nFYTejgYCHJp&index=40

      Eliminar
  12. Hola Juan Carlos, gracias por compartir tus cursos, te queria comentar que no puedo filtrar el datalistado desde el txtBuscar, no se cual es el error, porque en realidad no me arroja ninguno, simplemente no filtra nada, te pongo mi codigo

    en la clase datos:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    using System.Data;
    using System.Data.SqlClient;


    namespace fjdDatos
    {
    public class fjdDRubros
    {
    private int _Idrubro;
    private string _Denominacion;
    private string _Estado;

    public string TextoBuscar;

    public int Idrubro
    {
    get { return _Idrubro; }
    set { _Idrubro = value; }
    }

    public string Denominacion
    {
    get { return _Denominacion; }
    set { _Denominacion = value; }
    }

    public string Estado
    {
    get { return _Estado; }
    set { _Estado = value; }
    }

    public fjdDRubros()
    {

    }

    public fjdDRubros(int idrubro,string denominacion,string estado)
    {
    this.Idrubro = idrubro;
    this.Denominacion = denominacion;
    this.Estado = estado;
    }

    public DataTable BuscarDenominacion(fjdDRubros Rubros)
    {
    DataTable DtResultado = new DataTable("rubros");
    SqlConnection SqlCon = new SqlConnection();
    try
    {
    SqlCon.ConnectionString = fjdConexion.Cn;
    SqlCommand SqlCmd = new SqlCommand();
    SqlCmd.Connection = SqlCon;
    SqlCmd.CommandText = "spbuscar_rubros";
    SqlCmd.CommandType = CommandType.StoredProcedure;

    SqlParameter ParTextoBuscar = new SqlParameter();
    ParTextoBuscar.ParameterName = "@textobuscar";
    ParTextoBuscar.SqlDbType = SqlDbType.VarChar;
    ParTextoBuscar.Size = 50;
    ParTextoBuscar.Value = Rubros.TextoBuscar;
    SqlCmd.Parameters.Add(ParTextoBuscar);

    SqlDataAdapter SqlDat = new SqlDataAdapter(SqlCmd);
    SqlDat.Fill(DtResultado);
    }
    catch (Exception ex)
    {
    DtResultado = null;
    }
    return DtResultado;
    }
    }
    }

    en la clase logica:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    using fjdDatos;
    using System.Data;

    namespace fjdLogica
    {
    public class fjdLRubros
    {

    public static DataTable BuscarDenominacion(string TextoBuscar)
    {
    fjdDRubros Obj = new fjdDRubros();
    Obj.TextoBuscar = TextoBuscar;
    return Obj.BuscarDenominacion(Obj);
    }
    }
    }

    y en el formulario:

    private void Mostrar()
    {
    this.dataListado.DataSource = fjdLRubros.Mostrar();
    this.Columnas();
    lblTotal.Text = "Total Registros: " + Convert.ToString(dataListado.Rows.Count);
    }

    private void BuscarDenominacion()
    {
    this.dataListado.DataSource = fjdLRubros.BuscarDenominacion(this.txtBuscar.Text);

    lblTotal.Text = "Total Registros: " + Convert.ToString(dataListado.Rows.Count);
    }

    private void btnBuscar_Click(object sender, EventArgs e)
    {
    if (string.IsNullOrEmpty(txtBuscar.Text))
    {
    this.Mostrar();
    }
    else
    {
    this.BuscarDenominacion();
    }
    }

    Te agradeceria que me digas donde tengo el error asi puedo terminar el formulario, el resto funciona todo OK, muchas gracias

    ResponderEliminar
  13. hola juan carlos un gusto primeor que nada mucha gracis por tu curso la verdad estu muy bueno lo estoy siguiendo al pie de la letra pero pues tengo problemas espero me piuedas ayudar en el metodo mostrar de FrmCategoria te muestro
    private void Mostrar()
    {

    this.dataListado.DataSource = NCategoria.Mostrar(); //aqui es donde tengo el rrror no me mandanda a la llamar NCategoria como a ti algo pude hacer mal?

    this.OcultarColumnas();
    }

    ResponderEliminar

Todos los derechos reservados www.IncanatoIT.com - Desarrollando Software © 2014 - 2019
Desarrollado por Blogger, Designed by Sweetheme
IncanatoIt.com. Con la tecnología de Blogger.
y>