Dashboard, Gráficos Estadísticos, Sumario de Sistema/Aplicación con C#, WinForm, SQL Server, Arquitectura en Capas, POO- Nivel Intermedio

Hola, ahora modificaremos el proyecto dashboard a la arquitectura en capas y programación orientada a objetos. Te recomiendo ver el primer tutorial, donde se explica todo los códigos, procedimientos almacenados y base de datos de este tutorial.

Base de datos + Procedimientos almacenados

CREATE DATABASE PRACTICA_DASHBOARD
GO
USE PRACTICA_DASHBOARD
go
--------------------------------------------------
--                 TABLAS  
----------------------------------------------------------------
-------------------//PRODUCTO//---------------------------------
CREATE TABLE CATEGORIAS
(
ID INT IDENTITY (1,1) PRIMARY KEY,
CATEGORIA  NVARCHAR (150)
)
go
CREATE TABLE MARCAS
(
ID INT IDENTITY (1,1) PRIMARY KEY,
MARCA  NVARCHAR (150)
)
go
CREATE TABLE PRODUCTOS
(
ID INT IDENTITY (1,1) PRIMARY KEY, 
ID_CATEGORIA INT,
ID_MARCA INT,
DESCRIPCION NVARCHAR (200),
PRECIO_COMPRA FLOAT,
PRECIO_VENTA FLOAT,
STOCK INT,
ESTADO NVARCHAR (15),
CONSTRAINT FK_CATEGORIA FOREIGN KEY (ID_CATEGORIA) REFERENCES CATEGORIAS(ID),
CONSTRAINT FK_MARCA FOREIGN KEY (ID_MARCA) REFERENCES MARCAS(ID),
)  
go
-------------------//PERSONAS//------------------------------------------------------------------------------
go
CREATE TABLE EMPLEADOS 
(
ID INT IDENTITY (1,1) PRIMARY KEY, 
DNI NVARCHAR (10),
CONTRASEÑA NVARCHAR (100),
ID_ROL INT,
NOMBRES NVARCHAR (150),
APELLIDOS NVARCHAR (150),
TELEFONO NVARCHAR (15),
DIRECCION NVARCHAR (150),
)
go
CREATE TABLE CLIENTES 
(
---

Capa de Entidades

using System.Collections;

namespace CapaEntidades
{
    public class E_Dashboard
    {
        ArrayList Categoria = new ArrayList();
        ArrayList CantProd = new ArrayList();
        ArrayList Producto = new ArrayList();
        ArrayList Cant = new ArrayList();
        string totalVentas;
        string CantCategorias;
        string CantMarcas;
        string CantProductos;
        string CantClientes;
        string CantEmpleados;
        string CantProveedores;

        public ArrayList Categoria1
        {
            get
            {
                return Categoria;
            }

            set
            {
                Categoria = value;
            }
        }

        public ArrayList CantProd1
        {
            get
            {
                return CantProd;
            }

            set
            {
                CantProd = value;
            }
        }

        public ArrayList Producto1
        {
            get
            {
                return Producto;
            }

            set
            {
                Producto = value;
            }
        }

        public ArrayList Cant1
        {
            get
            {
                return Cant;
            }

            set
            {
                Cant = value;
            }
        }

        public string TotalVentas
        {
            get
            {
                return totalVentas;
            }

            set
            {
                totalVentas = value;
            }
        }

        public string CantCategorias1
        {
            get
            {
                return CantCategorias;
            }

            set
            {
                CantCategorias = value;
            }
        }

        public string CantMarcas1
        {
            get
            {
                return CantMarcas;
            }

            set
            {
                CantMarcas = value;
            }
        }

        public string CantProductos1
        {
            get
            {
                return CantProductos;
            }

            set
            {
                CantProductos = value;
            }
        }

        public string CantClientes1
        {
            get
            {
                return CantClientes;
            }

            set
            {
                CantClientes = value;
            }
        }

        public string CantEmpleados1
        {
            get
            {
                return CantEmpleados;
            }

            set
            {
                CantEmpleados = value;
            }
        }

        public string CantProveedores1
        {
            get
            {
                return CantProveedores;
            }

            set
            {
                CantProveedores = value;
            }
        }
    }
}

Capa de Acceso a Datos

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

namespace CapaDatos
{
    public class D_Dashboard
    {
        SqlConnection Conexion = new SqlConnection("Server=DESKTOP-4FVONF2\\SQLEXPRESS;DataBase=JUGUETERIA_HM;Integrated Security=true");
        SqlCommand cmd;
        SqlDataReader dr;

        public void ProdPorCategoria(E_Dashboard obj)
        {
            cmd = new SqlCommand("ProdPorCategoria2", Conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            Conexion.Open();
            dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                obj.Categoria1.Add(dr.GetString(0));
                obj.CantProd1.Add(dr.GetInt32(1));
            }
            dr.Close();
            Conexion.Close();
        }

        public void ProdPreferidos(E_Dashboard obj)
        {
            cmd = new SqlCommand("ProdPreferidos", Conexion);
            cmd.CommandType = CommandType.StoredProcedure;
            Conexion.Open();
            dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                obj.Producto1.Add(dr.GetString(0));
                obj.Cant1.Add(dr.GetInt32(1));
            }

            dr.Close();
            Conexion.Close();
        }

        public void SumarioDatos(E_Dashboard obj)
        {

            cmd = new SqlCommand("DashboardDatos", Conexion);
            cmd.CommandType = CommandType.StoredProcedure;

            SqlParameter total = new SqlParameter("@totVentas", 0); total.Direction = ParameterDirection.Output;
            SqlParameter nprod = new SqlParameter("@nprod", 0); nprod.Direction = ParameterDirection.Output;
            SqlParameter nmarca = new SqlParameter("@nmarc", 0); nmarca.Direction = ParameterDirection.Output;
            SqlParameter ncategora = new SqlParameter("@ncateg", 0); ncategora.Direction = ParameterDirection.Output;
            SqlParameter ncliente = new SqlParameter("@nclient", 0); ncliente.Direction = ParameterDirection.Output;
            SqlParameter nproveedores = new SqlParameter("@nprove", 0); nproveedores.Direction = ParameterDirection.Output;
            SqlParameter nempleados = new SqlParameter("@nemple", 0); nempleados.Direction = ParameterDirection.Output;

            cmd.Parameters.Add(total);
            cmd.Parameters.Add(nprod);
            cmd.Parameters.Add(nmarca);
            cmd.Parameters.Add(ncategora);
            cmd.Parameters.Add(ncliente);
            cmd.Parameters.Add(nproveedores);
            cmd.Parameters.Add(nempleados);

            Conexion.Open();
            cmd.ExecuteNonQuery();
            obj.TotalVentas = cmd.Parameters["@totVentas"].Value.ToString();
            obj.CantCategorias1 = cmd.Parameters["@ncateg"].Value.ToString();
            obj.CantMarcas1 = cmd.Parameters["@nmarc"].Value.ToString();
            obj.CantProductos1 = cmd.Parameters["@nprod"].Value.ToString();
            obj.CantClientes1 = cmd.Parameters["@nclient"].Value.ToString();
            obj.CantEmpleados1 = cmd.Parameters["@nemple"].Value.ToString();
            obj.CantProveedores1 = cmd.Parameters["@nprove"].Value.ToString();

            Conexion.Close();
        }
    }
}

Capa de Negocio / Dominio

using CapaDatos;
using CapaEntidades;

namespace CapaNegocio
{
    public class N_Dashboard
    {
        public void Dashboard(E_Dashboard obj) {
            D_Dashboard accesDB = new D_Dashboard();
            accesDB.ProdPorCategoria(obj);
            accesDB.ProdPreferidos(obj);
            accesDB.SumarioDatos(obj);
        }
    }
}

Capa de Presentación

Diseño

Codigo

using CapaNegocio;
using CapaEntidades;
namespace CapaPresentacion
{
    public partial class Form1 : Form
    {
       

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Dashboard();
        }

        private void Dashboard() {
            N_Dashboard neg = new N_Dashboard();
            E_Dashboard obj = new E_Dashboard();
            neg.Dashboard(obj);

            //RECUPERAMOS DATOS DE LA ENTIDAD PARA CARGAR LOS DATOS DEL DASHBOARD
            chartProdPreferidos.Series[0].Points.DataBindXY(obj.Producto1, obj.Cant1);
            chartProdxCategoria.Series[0].Points.DataBindXY(obj.Categoria1 ,obj.CantProd1 );
            lblCantCateg.Text = obj.CantCategorias1;
            lblCantProd.Text = obj.CantProductos1;
            lblCantClient.Text = obj.CantClientes1;
            lblCantEmple.Text = obj.CantEmpleados1;
            lblCAntMarcas.Text = obj.CantMarcas1;
            lblCantProve.Text = obj.CantProveedores1;
            lblTotalVentas.Text = obj.TotalVentas;

        }     
       
    }
}

Ver Video Tutorial

Ver Parte 1

Descargas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *