コード例 #1
0
        private void btnFiltro_Click(object sender, EventArgs e)
        {
            try
            {
                //POR DATA
                if (cmbCliente.Text == "" && txtDataDe.Text != "01/01/2001" && txtDataAte.Text != "01/01/2001" && cmbStatusFiltro.Text == "")
                {
                    Filtro.dataDe  = txtDataDe.Text;
                    Filtro.dataAte = txtDataAte.Text;


                    SortableBindingList <Pedido> _lst = new SortableBindingList <Pedido>();
                    var lst = Filtro.pedidoFiltrarPorData();
                    foreach (var item in lst)
                    {
                        _lst.Add(item);
                    }

                    grdDadosPedido.AutoGenerateColumns = false;
                    grdDadosPedido.DataSource          = null;
                    grdDadosPedido.DataSource          = _lst;
                    grdDadosPedido.Show();
                    decimal valorTotal = 0;
                    foreach (DataGridViewRow col in grdDadosPedido.Rows)
                    {
                        valorTotal = valorTotal + Convert.ToDecimal(col.Cells[2].Value);
                    }
                    lblCustoTotal.Text = $"Valor Total dos Pedidos: R$ {valorTotal.ToString("N2")}";
                }
                //POR DATA E NOME
                else if (cmbCliente.Text != "" && txtDataDe.Text != "01/01/2001" && txtDataAte.Text != "01/01/2001" && cmbStatusFiltro.Text == "")
                {
                    Filtro.dataDe    = txtDataDe.Text;
                    Filtro.dataAte   = txtDataAte.Text;
                    Filtro.IdCliente = cmbCliente.SelectedValue.ToString();

                    SortableBindingList <Pedido> _lst = new SortableBindingList <Pedido>();
                    var lst = Filtro.pedidoFiltrarPorNomeData();
                    foreach (var item in lst)
                    {
                        _lst.Add(item);
                    }

                    grdDadosPedido.AutoGenerateColumns = false;
                    grdDadosPedido.DataSource          = null;
                    grdDadosPedido.DataSource          = _lst;
                    grdDadosPedido.Show();

                    decimal valorTotal = 0;
                    foreach (DataGridViewRow col in grdDadosPedido.Rows)
                    {
                        valorTotal = valorTotal + Convert.ToDecimal(col.Cells[2].Value);
                    }
                    lblCustoTotal.Text = $"Valor Total dos Pedidos: R$ {valorTotal.ToString("N2")}";
                }
                //POR NOME
                else if (cmbCliente.Text != "" && txtDataDe.Text == "01/01/2001" && txtDataAte.Text == "01/01/2001" && cmbStatusFiltro.Text == "")
                {
                    Filtro.IdCliente = cmbCliente.SelectedValue.ToString();

                    SortableBindingList <Pedido> _lst = new SortableBindingList <Pedido>();
                    var lst = Filtro.pedidoFiltrarPorNome();
                    foreach (var item in lst)
                    {
                        _lst.Add(item);
                    }

                    grdDadosPedido.AutoGenerateColumns = false;
                    grdDadosPedido.DataSource          = null;
                    grdDadosPedido.DataSource          = _lst;
                    grdDadosPedido.Show();


                    decimal valorTotal = 0;
                    foreach (DataGridViewRow col in grdDadosPedido.Rows)
                    {
                        valorTotal = valorTotal + Convert.ToDecimal(col.Cells[2].Value);
                    }
                    lblCustoTotal.Text = $"Valor Total dos Pedidos: R$ {valorTotal.ToString("N2")}";
                }
                //POR NOME E STATUS
                else if (cmbCliente.Text != "" && txtDataDe.Text == "01/01/2001" && txtDataAte.Text == "01/01/2001" && cmbStatusFiltro.Text != "")
                {
                    Filtro.IdCliente    = cmbCliente.SelectedValue.ToString();
                    Filtro.statusPedido = cmbStatusFiltro.SelectedItem.ToString();

                    SortableBindingList <Pedido> _lst = new SortableBindingList <Pedido>();
                    var lst = Filtro.pedidoFiltrarPorNomeStatus();
                    foreach (var item in lst)
                    {
                        _lst.Add(item);
                    }

                    grdDadosPedido.AutoGenerateColumns = false;
                    grdDadosPedido.DataSource          = null;
                    grdDadosPedido.DataSource          = _lst;
                    grdDadosPedido.Show();


                    decimal valorTotal = 0;
                    foreach (DataGridViewRow col in grdDadosPedido.Rows)
                    {
                        valorTotal = valorTotal + Convert.ToDecimal(col.Cells[2].Value);
                    }
                    lblCustoTotal.Text = $"Valor Total dos Pedidos: R$ {valorTotal.ToString("N2")}";
                }
                //POR DATA E STATUS
                else if (cmbCliente.Text == "" && txtDataDe.Text != "01/01/2001" && txtDataAte.Text != "01/01/2001" && cmbStatusFiltro.Text != "")
                {
                    Filtro.statusPedido = cmbStatusFiltro.SelectedItem.ToString();
                    Filtro.dataDe       = txtDataDe.Text;
                    Filtro.dataAte      = txtDataAte.Text;

                    SortableBindingList <Pedido> _lst = new SortableBindingList <Pedido>();
                    var lst = Filtro.pedidoFiltrarPorDataStatus();
                    foreach (var item in lst)
                    {
                        _lst.Add(item);
                    }

                    grdDadosPedido.AutoGenerateColumns = false;
                    grdDadosPedido.DataSource          = null;
                    grdDadosPedido.DataSource          = _lst;
                    grdDadosPedido.Show();


                    decimal valorTotal = 0;
                    foreach (DataGridViewRow col in grdDadosPedido.Rows)
                    {
                        valorTotal = valorTotal + Convert.ToDecimal(col.Cells[2].Value);
                    }
                    lblCustoTotal.Text = $"Valor Total dos Pedidos: R$ {valorTotal.ToString("N2")}";
                }
                //POR DATA, NOME E STATUS
                else if (cmbCliente.Text != "" && txtDataDe.Text != "01/01/2001" && txtDataAte.Text != "01/01/2001" && cmbStatusFiltro.Text != "")
                {
                    Filtro.IdCliente    = cmbCliente.SelectedValue.ToString();
                    Filtro.dataDe       = txtDataDe.Text;
                    Filtro.dataAte      = txtDataAte.Text;
                    Filtro.statusPedido = cmbStatusFiltro.SelectedItem.ToString();

                    SortableBindingList <Pedido> _lst = new SortableBindingList <Pedido>();
                    var lst = Filtro.pedidoFiltrarPorNomeDataStatus();
                    foreach (var item in lst)
                    {
                        _lst.Add(item);
                    }

                    grdDadosPedido.AutoGenerateColumns = false;
                    grdDadosPedido.DataSource          = null;
                    grdDadosPedido.DataSource          = _lst;
                    grdDadosPedido.Show();


                    decimal valorTotal = 0;
                    foreach (DataGridViewRow col in grdDadosPedido.Rows)
                    {
                        valorTotal = valorTotal + Convert.ToDecimal(col.Cells[2].Value);
                    }
                    lblCustoTotal.Text = $"Valor Total dos Pedidos: R$ {valorTotal.ToString("N2")}";
                }
                //POR STATUS
                else if (cmbCliente.Text == "" && txtDataDe.Text == "01/01/2001" && txtDataAte.Text == "01/01/2001" && cmbStatusFiltro.Text != "")
                {
                    Filtro.statusPedido = cmbStatusFiltro.SelectedItem.ToString();

                    SortableBindingList <Pedido> _lst = new SortableBindingList <Pedido>();
                    var lst = Filtro.pedidoFiltrarPorStatus();
                    foreach (var item in lst)
                    {
                        _lst.Add(item);
                    }

                    grdDadosPedido.AutoGenerateColumns = false;
                    grdDadosPedido.DataSource          = null;
                    grdDadosPedido.DataSource          = _lst;
                    grdDadosPedido.Show();


                    decimal valorTotal = 0;
                    foreach (DataGridViewRow col in grdDadosPedido.Rows)
                    {
                        valorTotal = valorTotal + Convert.ToDecimal(col.Cells[2].Value);
                    }
                    lblCustoTotal.Text = $"Valor Total dos Pedidos: R$ {valorTotal.ToString("N2")}";
                }

                else if (cmbCliente.Text == "" && txtDataDe.Text == "01/01/2001" && txtDataAte.Text == "01/01/2001")
                {
                    DialogResult dialogResult = MessageBox.Show("Não se pode fazer filtro de dados nulos!", "Confirmação", MessageBoxButtons.OK);
                }
                else if (txtDataDe.Text != "01/01/2001" && txtDataAte.Text == "01/01/2001")
                {
                    DialogResult dialogResult = MessageBox.Show("Não se pode fazer filtro apenas com a Data Inicial!", "Confirmação", MessageBoxButtons.OK);
                }
                else if (txtDataDe.Text == "01/01/2001" && txtDataAte.Text != "01/01/2001")
                {
                    DialogResult dialogResult = MessageBox.Show("Não se pode fazer filtro apenas com a Data Final!", "Confirmação", MessageBoxButtons.OK);
                }
                else if (txtDataDe.Text == "01/01/2001" && txtDataAte.Text == "01/01/2001")
                {
                    DialogResult dialogResult = MessageBox.Show("Não se pode fazer filtro desta Data!", "Confirmação", MessageBoxButtons.OK);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }