none
Agregar items al detalle de proforma RRS feed

  • Pregunta

  • Hola

    Estoy trabajando en una app windows forms, EF, visual studio 2013.

    En mi formulario proforma tengo un control checkedListBox donde cargo las tallas en el evento load, luego selecciono mi producto y escojo las tallas manualmente, lo que quiero es agregar el producto y las tallas.

    El código que tengo en mi botón agregar es el siguiente :

    private void btnAgregar_Click(object sender, EventArgs e)
            {
                dgvProformaDetalle.AutoGenerateColumns = false;
                dgvProformaDetalle.DataSource = FillDgv();
                dgvProformaDetalle.Columns["ColumnId"].DataPropertyName = "ProductoId";
                dgvProformaDetalle.Columns["ColumnDescripcion"].DataPropertyName = "DescripcionProducto";
            }
    
            private List<DetalleProformaExtendida> FillDgv()
            {
                List<DetalleProformaExtendida> listaArticulo = new List<DetalleProformaExtendida>();
    
                DetalleProformaExtendida model = new DetalleProformaExtendida
                {
                    ProductoId = txtIdProducto.Text,
                    DescripcionProducto = txtDescripcion.Text
                };
                listaArticulo.Add(model);
    
                for (int i = 0; i < checkedListBoxTallas.Items.Count; i++)
                {
                    Talla view = (Talla)checkedListBoxTallas.Items[i];
                    var exists = listaArticulo.Any(t => t.TallaId == view.TallaId);
                    if (exists) checkedListBoxTallas.SetItemChecked(i, true);
                    DetalleProformaExtendida talla = new DetalleProformaExtendida
                    {
                        TallaId = view.TallaId
                    };
                    listaArticulo.Add(talla);
                }
    
                return listaArticulo;
            }

    En este fragmento de código quiero conseguir el Id y la descripción

    for (int i = 0; i < checkedListBoxTallas.Items.Count; i++)
                {
                    Talla view = (Talla)checkedListBoxTallas.Items[i];
                    var exists = listaArticulo.Any(t => t.TallaId == view.TallaId);
                    if (exists) checkedListBoxTallas.SetItemChecked(i, true);
                    DetalleProformaExtendida talla = new DetalleProformaExtendida
                    {
                        TallaId = view.TallaId
                    };
                    listaArticulo.Add(talla);
                }

    Necesito mostrar la descripción de producto y la descripcion de la talla, claro que el id del producto lo tengo en la grilla pero oculto, igual puedo hacer con el id de la talla para luego guardar los ids. Pretendo que se muestre la descripción del producto y las tallas de acuerdo las que estén con el check(la palomita) en las tallas que me muestra el control en mención.

     

    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    • Cambiado Miguel.Vazquez.MSDN miércoles, 3 de diciembre de 2014 5:47 Consulta relacionada a Windows Forms.
    sábado, 29 de noviembre de 2014 2:01

Todas las respuestas

  • Ya va quedando el código, pero tengo un problema que no esta alineado las tallas con la descripción como puedo quitarle ese espacio vacío.

    El código es el siguiente

    private void btnAgregar_Click(object sender, EventArgs e)
            {
                dgvProformaDetalle.AutoGenerateColumns = false;
                dgvProformaDetalle.DataSource = FillDgv();
                dgvProformaDetalle.Columns["ColumnId"].DataPropertyName = "ProductoId";
                dgvProformaDetalle.Columns["ColumnDescripcion"].DataPropertyName = "DescripcionProducto";
                dgvProformaDetalle.Columns["ColumnTalla"].DataPropertyName = "DescripcionTalla";
            }
    
            private List<DetalleProformaExtendida> FillDgv()
            {
                List<DetalleProformaExtendida> listaArticulo = new List<DetalleProformaExtendida>();
    
                DetalleProformaExtendida model = new DetalleProformaExtendida
                {
                    ProductoId = txtIdProducto.Text,
                    DescripcionProducto = txtDescripcion.Text
                };
                listaArticulo.Add(model);
    
                foreach (Talla item in checkedListBoxTallas.CheckedItems)
                {Acá agrego la talla como restarle uno para que cuadre en la imagen
                    DetalleProformaExtendida _talla = new DetalleProformaExtendida();
                    _talla.TallaId = item.TallaId;
                    _talla.DescripcionTalla = item.Descripcion;
                    listaArticulo.Add(_talla);
                }
                
                return listaArticulo;
            }


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    sábado, 29 de noviembre de 2014 17:32
  • Hola Pedro:

     Pero, necesesariamente necestias todas las tallas dentro del DGv? veo que eso complica el diseño y por lo tanto el desarrollo.

     Porque no simplemente el DGV se encarga de mostrar los productos, y cuando desees saber las tallas correspondientes unicamente haces DobleClick/Click sobre el registro correspondiente y este toma el Id del producto lo busca dentro de la lista de Tallas y carga el control CheckedListBox seleccionando las tallas pertenecientes al producto seleccionado.


    Saludos desde Monterrey, Nuevo León, México!!!

    sábado, 29 de noviembre de 2014 21:11
  • @JoséLuisGarcia

    Pero, necesesariamente necestias todas las tallas dentro del DGv? veo que eso complica el diseño y por lo tanto el desarrollo.

    No necesito todas las tallas solo las que selecciono con el check, esas son las únicas que pasan a la grilla.

    Si tienes un mejor diseño y recomendaciones de que controles usar y como sacarle provecho para lograr el requerimiento que necesito soy todo oídos.

    Como lo harías, recuerda que tengo que escoger las tallas que el cliente desea y las cantidades de las tallas que manden a fabricar.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 30 de noviembre de 2014 0:21