Reporte de Ventas

Buenos en este modulo lo unico que vamos a explotar las ventas del día pero tu puedes jugar con las tablas de acuerdo a tus necesidades.

Agregamos un Windows Forms y vamos a llamar Reportes.cs y lo nombramos frmReportes
Comenzamos agregando un MenuStrip en el encabezado escribimos Opciones y agregamos una unica opción llamada Menú para regresar al menú principal.
punto de venta
Seleccionamos un Label y en el texto colocamos Ventas Por Día
punto de venta
Copiamos y pegamos el Label y en el texto Seleccionar Fecha:
punto de venta
Para seleccionar la fecha seleccionamos el componente DataTimePicker
punto de venta
Lo nombramos dtpFecha
punto de venta
Añadimos Button en texto colocamos Consultar y lo nombramos btnConsultar
punto de venta
Copiamos y pegamos otro Label el texto lo ponemos vació y lo nombramos lblVenta aquí es donde vamos poner la sumatoria de las ventas.
punto de venta
Hacemos dodble click en botón Consultar y escribimos
        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;

namespace GatoAbarrotero
{
    public partial class frmReportes : Form
    {
        MySqlConnection conexion = new MySqlConnection("server=localhost;User id=admin;password=adminlara;database=puntodeventadb");
        public frmReportes()
        {
            InitializeComponent();
        }

        private void BtnConsultar_Click(object sender, EventArgs e)
        {
            try
            {
                conexion.Open();

                string selectQuery = "SELECT SUM(total) as ventatotal FROM ventastotales " +
                    "WHERE CAST(fecha as date) = @dia ";
                MySqlCommand cmd = new MySqlCommand(selectQuery, conexion);
                cmd.Parameters.AddWithValue("@dia", dtpFecha.Value.Date);
                MySqlDataAdapter selecionnar = new MySqlDataAdapter();
                selecionnar.SelectCommand = cmd;
                DataTable datosVentas = new DataTable();
                selecionnar.Fill(datosVentas);
                if (datosVentas.Rows.Count == 0)
                {
                    MessageBox.Show("No tuviste ventas");

                    conexion.Close();
                }
                else
                {
                    DataRow row = datosVentas.Rows[0];
                    decimal ventasPorDia = Convert.ToDecimal(row["ventatotal"] is DBNull ? 0 : row["ventatotal"]);
                    lblventa.Text = "Las ventas totales fueron de: $" + ventasPorDia;
                    conexion.Close();
                }
            }
            catch (MySqlException E)
            {
                MessageBox.Show(E.ToString());
            }
        }
    }
}
        
        

Del menú opciones presionamos dos veces la opción Menú
  
    
    
    using MySql.Data.MySqlClient;
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;

namespace GatoAbarrotero
{
    public partial class frmReportes : Form
    {
        MySqlConnection conexion = new MySqlConnection("server=localhost;User id=admin;password=adminlara;database=puntodeventadb");
        public frmReportes()
        {
            InitializeComponent();
        }

        private void BtnConsultar_Click(object sender, EventArgs e)
        {
            try
            {
                conexion.Open();

                string selectQuery = "SELECT SUM(total) as ventatotal FROM ventastotales " +
                    "WHERE CAST(fecha as date) = @dia ";
                MySqlCommand cmd = new MySqlCommand(selectQuery, conexion);
                cmd.Parameters.AddWithValue("@dia", dtpFecha.Value.Date);
                MySqlDataAdapter selecionnar = new MySqlDataAdapter();
                selecionnar.SelectCommand = cmd;
                DataTable datosVentas = new DataTable();
                selecionnar.Fill(datosVentas);
                if (datosVentas.Rows.Count == 0)
                {
                    MessageBox.Show("No tuviste ventas");

                    conexion.Close();
                }
                else
                {
                    DataRow row = datosVentas.Rows[0];
                    decimal ventasPorDia = Convert.ToDecimal(row["ventatotal"] is DBNull ? 0 : row["ventatotal"]);
                    lblventa.Text = "Las ventas totales fueron de: $" + ventasPorDia;
                    conexion.Close();
                }
            }
            catch (MySqlException E)
            {
                MessageBox.Show(E.ToString());
            }
        }

        private void MenúToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmMenu menu = new frmMenu();
            menu.Show();
        }
        
    }
}
    
  

Nos vamos al formulario Menu.cs y copiamos un Button en el texto escrbimos Reportes de Ventas y lo nombramos btnReportes
punto de venta
Hacemos doble click en el botón Reporte de ventas
  
   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;

namespace GatoAbarrotero
{
    public partial class frmMenu : Form
    {
        public frmMenu()
        {
            InitializeComponent();
        }

        private void BtnProductos_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmAgregarProducto agregarProdcuto = new frmAgregarProducto();
            agregarProdcuto.Show();

        }

        private void BtnCodigo_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmCodigoBarras codigo = new frmCodigoBarras();
            codigo.Show();
        }

        private void BtnPunto_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmPuntoVenta punto = new frmPuntoVenta();
            punto.Show();
        }

        private void BtnReportes_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmReportes reportes = new frmReportes();
            reportes.Show();
        }
        
    }
}
       
    
   

Prueba Final

Probamos la aplicación
Seleccionamos fecha
punto de venta
Presionamos Consultar
punto de venta

Conclusión

Lo que puede observar atrevés de este ejemplo el IDE Visual Studio es una muy buena herramienta para el desarrollo agil de productos de software.

Código