Load listview with data

Asked

Viewed 176 times

0

I have a form that searches all the bills registered in the system for the client code that was registered. When you find it, list all the notes in the listview. I was able to get him to look for the client, but he’s not listing the client’s notes. I don’t know where the mistake is!

What am I doing wrong?

using Entidades.Entidades;
using Entidades.Vendas;
using Negocio.NotasNG;
using Negocio.Vendas;
using projeto.Modulos;
using projeto.Notas;
using projeto.Pesquisas;
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 projeto.Vendas
{
public partial class FrmAdmNotas : Form
{

    public List<EntidadeViewPesquisaNota> lista = new List<EntidadeViewPesquisaNota>();
    public int iRetorno = 0;
    public FrmAdmNotas()
    {
        InitializeComponent();
        MascaraCampoNumero.AplicarEventos(txt_CodigoCliente);
        MascaraCampoNumero.AplicarEventos(txt_CodigoNota);
        PrepararLista();
    }

    private void Bt_PesquisarCliente_Click(object sender, EventArgs e)
    {

        var lista = new NotasNG().ListarEntidadeViewPesquisaCliente();
        //Verifica se a lista está vazia
        if (lista.Count < 1)
        {
            MessageBox.Show("Sem dados para serem exibidos!", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
            return;
        }
        //Passa a lista para o formulário de pesquisa de cliente;

        var frmPesquisaC = new FrmPesquisaCliente("Listagem de Clientes");
        frmPesquisaC.lista = lista;
        frmPesquisaC.ShowDialog();

        var iRetorno = frmPesquisaC.iRetorno;
        //iRetorno = 0
        if (iRetorno < 1)
            return;

        txt_CodigoCliente.Text = iRetorno.ToString();

        Txt_CodigoCliente_Validating(txt_CodigoCliente, new CancelEventArgs());
        bt_PesquisarCliente.Focus();

    }

    private void Txt_CodigoCliente_Validating(object sender, CancelEventArgs e)
    {
        //Verifica se está vazio
        if (txt_CodigoCliente.Text.Trim().Equals(string.Empty))
            return;

        var oCliente = new NotasNG().BuscarCliente(Convert.ToInt32(txt_CodigoCliente.Text.Trim()));
        var oNota = new NotasNG().BuscarNotas(Convert.ToInt32(txt_CodigoCliente.Text.Trim()));
        if (oCliente == null)
            return;

        txt_NomeCliente.Text = oCliente.Nome;

        foreach (var item in oNota.NotaLista)
        {
            PreencherLista(lista);
        }
        Txt_CodigoCliente_TextChanged(txt_CodigoCliente, new EventArgs());


        MascaraCampoCodigo.RetornarMascara(txt_CodigoCliente, new EventArgs());
        MascaraCampoCodigo.RetornarMascara(txt_CodigoNota, new EventArgs());
    }

    public void PrepararLista()
    {
        lvlListagemNotas.Clear();
        lvlListagemNotas.View = View.Details;
        lvlListagemNotas.Columns.Add("Nº da Nota", 100, HorizontalAlignment.Center);
        lvlListagemNotas.Columns.Add("Nº do Funcionário", 100, HorizontalAlignment.Center);
        lvlListagemNotas.Columns.Add("Nº de Controle", 100, HorizontalAlignment.Center);
        lvlListagemNotas.Columns.Add("Data da Emissão", 150, HorizontalAlignment.Center);
        lvlListagemNotas.Columns.Add("Status", 150, HorizontalAlignment.Center);
        lvlListagemNotas.Columns.Add("Valor Pago", 100, HorizontalAlignment.Center);
        lvlListagemNotas.Columns.Add("Desconto", 100, HorizontalAlignment.Center);
        lvlListagemNotas.Columns.Add("Data Pagamento", 150, HorizontalAlignment.Center);
    }
    public void PreencherLista(List<EntidadeViewPesquisaNota> list)
    {
        foreach (var item in list)
        {
            var linha = new string[8];
            linha[0] = item.NotaID.ToString();
            linha[1] = item.FuncionarioID.ToString();
            linha[2] = item.NumeroNota;
            linha[3] = item.DataEmissao.ToString();
            linha[4] = item.Status.ToString();
            linha[5] = item.ValorPago.ToString();
            linha[6] = item.Desconto.ToString();
            linha[7] = item.DataPagamentoFinal.ToString();
            var itmx = new ListViewItem(linha);
            lvlListagemNotas.Items.Add(itmx);

            Funcoes.ListviewColor(lvlListagemNotas);
        }
    }
    private void Txt_CodigoCliente_TextChanged(object sender, EventArgs e)
    {
        if (txt_CodigoCliente.Text.Trim().Equals(String.Empty))
        {
            PreencherLista(lista);
            return;
        }
        else
        {

            int ClienteID;
            bool success = Int32.TryParse(txt_CodigoCliente.Text.Trim(), out ClienteID);

            if (success)
            {
                var listResult = new List<EntidadeViewPesquisaNota>(from p in lista where p.ClienteID == ClienteID select p);
                PreencherLista(listResult);
            }
            else
            {
                Console.WriteLine("O texto digitado não é um número inteiro.");
            }
        }
    }
}
}
  • How did you debug? You entered the method BuscarNotas and checked if you are not deleting any exceptions or if the query is correct?

  • Yes, it does the notes search, but does not display in listview

  • But where are you making the bind?

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.