none
Error RRS feed

Respuestas

  • hola

    realiza un rebuild del codigo para forzar la compilacion, a veces el VS requiere realizar un rebuild, ojo no un simple play sino usa el Rebuild de la solucion

    >>dejo el código por si alguien puede analizar y ayudarme a encontrar mas fácil el error

    pero no cambio el mensaje de error ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina



    lunes, 16 de mayo de 2016 15:36

Todas las respuestas

  • Supongo que está usando BackgroundWorker o algo similar.  Si es así, debe usar dataGridView1.Invoke() o .BeginInvoke() para acceder a las propiedades del DGV y cualquier otro control de interfaz gráfica.

    Jose R. MCP
    Code Samples

    lunes, 16 de mayo de 2016 14:52
    Moderador
  • hola

    deberias mostrar en que contexto defines este codigo, pero por el mensaje se relaciona con la otra pregunta que has realizado

    Error en backgroundWorker1


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 16 de mayo de 2016 15:04
  • HOla jose dices 

    asi

    dataGridView1.Invoke(dt);


    ruben

    lunes, 16 de mayo de 2016 15:10
  • No, Invoke() recibe un argumento que representa una función o delegado, que es el que contendría la asignación del DataTable.  Puede ver un ejemplo aquí y puede buscar más en la web.

    Jose R. MCP
    Code Samples

    lunes, 16 de mayo de 2016 15:17
    Moderador
  • Jose

    mira este es el código que tenía, he comentado casi todo otraves

    lo he dejado, no encuentro la solucón he mirado los articulos que me han facilitado pero nada, no soy capaz.

    en fin mi amigo

    dejo el código por si alguien puede analizar y ayudarme a encontrar mas fácil el error

    /*
            public void display(string text)
            {
                MessageBox.Show(text);
    
            }
    
            private void simulate()
            {
                System.Threading.Thread.Sleep(99);
            }
            */
            private void btnconsultar_Click(object sender, EventArgs e)
            {
    
                groupBox1.Visible = true;
                comboBox2.Visible = true;
                familia_añaderepresentante.Visible = true;
    
    
                cargarfamilia();
                //backgroundWorker1.WorkerReportsProgress = true;
                //backgroundWorker1.WorkerSupportsCancellation = true;
                // backgroundWorker1.RunWorkerAsync();
    
            }
    
            private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
            {
                //for (int i = 1; i < Convert.ToInt32(TextBox2.Text); i++)
                //{
                //    if (backgroundWorker1.CancellationPending)
                //    {
                //       e.Cancel = true;
                //    }
                //    else
                //    {
                //        backgroundWorker1.ReportProgress(i);
    
                //      //  cargarfamilia();
                        
                //    }
                //}
    
                
    
    
            }
            private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
            {
               // // Change the value of the ProgressBar to the BackgroundWorker progress.
               // progressBar1.Value = e.ProgressPercentage ;
               // // Set the text.
               //label3.Text = e.ProgressPercentage.ToString() + " %" ;
    
    
               // //    progressBar1.Value = e.ProgressPercentage;
               // //    label3.Text = progressBar1.Value.ToString() + " %"; 
            }
            private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
            {
               // display("finalizado");
               //  progressBar1.Value = 0;
               //backgroundWorker1.Dispose();
            }
    
            private void cargarfamilia()
            {
                DataTable dDetalle = new DataTable(); //Declaramos un Data table que rellenamos para la consulta
                using (MySqlConnection cn = new MySqlConnection(sqlconnection))
                {
                    DateTime desde = dateTimePicker1.Value.Date;
                    DateTime hasta = dateTimePicker2.Value.Date;
    
                    using (MySqlCommand cmd = new MySqlCommand())
                    {
                        cmd.Connection = cn;
                        cn.Open();
    
                        string query1 = @"Select f.muluid, f.name, sum(t.cantidad) As cantidad, sum(t.total) As total
                                            From 
                                            (
    	                                        select d.codigo, sum(d.zongshuliang) as cantidad, sum(d.zongshuliang * d.precio) as total   
    	                                         from pedidolist c Inner Join 
    		                                         pedidomov d on c.pedidokey= d.pedidokey
    		                                        where c.fecha_c between @desde and  DATE_ADD( @hasta, INTERVAL 1 DAY)
    		                                         GROUP BY d.codigo
                                            ) t Inner Join 
                                                articulo a on t.codigo = a.codigo inner join 
                                                familia f on f.muluid = a.muluid 
                                             group by f.muluid, f.name
                                              order by f.muluid";
    
                        cmd.Connection = cn;
                        cmd.CommandType = System.Data.CommandType.Text;
                        cmd.CommandTimeout = 300;
                        cmd.Parameters.AddWithValue("@desde", desde);
                        cmd.Parameters.AddWithValue("@hasta", hasta);
                        cmd.CommandType = CommandType.Text;
                        cmd.CommandText = query1;
    
                        MySqlDataAdapter da = new MySqlDataAdapter(query1, sqlconnection);
    
                       
                       
    
                        da.SelectCommand = cmd;
                        da.Fill(dDetalle); //Llenamos el data Table Creado al inicio
    
                      
    
                        
    
                        #region Calculamos el Total General para Luego realizar calculos para el %
                        int calculo_cantidad = 0;
                        decimal calculo_euro = 0;
                        decimal cantidad_porcentaje = 0;
                        decimal totalporcentaje = 0;
    
                        for (int i = 0; i < dDetalle.Rows.Count; i++)
                        {
                           
    
                            DataRow dr = dDetalle.Rows[i];
                            calculo_cantidad = calculo_cantidad + Convert.ToInt32(dr["cantidad"]);
                            calculo_euro = calculo_euro + (Convert.ToDecimal(dr["total"]));
    
                    
    
                        }
    
                        txtcantidad_total_familia.Text = Convert.ToString(calculo_cantidad);
                        txttotal_familiaeuro.Text = Convert.ToString(calculo_euro);
                        #endregion
    
                        DataTable dt = GetDataTableFamilia(); //rellenamos el Datatable con las columnas correspondientes
    
                        int sumacantidad_familia = 0;
                        decimal sumatotaleuro_familia = 0;
    
                        for (int i = 0; i < dDetalle.Rows.Count; i++)
                        {
                            
    
                            DataRow dr = dDetalle.Rows[i];
                            DataRow newRow = dt.NewRow();
    
                            newRow["muluid"] = dr["muluid"];//Cargamos el codigo de Familia
                            famili = Convert.ToInt32(dr["muluid"]); //lo cargamos en una variable de forma Int para luego utilizar
    
                            newRow["name"] = dr["name"];
                            newRow["cantidad"] = dr["cantidad"];
    
    
                            sumacantidad_familia = Convert.ToInt32(dr["cantidad"]);
                            decimal ladivision = (sumacantidad_familia * 100) / Convert.ToDecimal(calculo_cantidad);
    
                            newRow["cantidad_porcentaje"] = String.Format("{0:N2}", (ladivision));
                            cantidad_porcentaje = cantidad_porcentaje + ladivision;
    
                            newRow["total"] = String.Format("{0:N2}", dr["total"]);
                            sumatotaleuro_familia = Convert.ToDecimal(dr["total"]);
    
    
                            decimal ladivisionporcentaje = sumatotaleuro_familia * 100 / calculo_euro;
                            newRow["totalporcentaje"] = String.Format("{0:N2}", (ladivisionporcentaje));
                            totalporcentaje = totalporcentaje + ladivisionporcentaje;
    
                            dt.Rows.Add(newRow);
                        }
    
                        //Sumamos las filas "{0:p0}"
    
                        DataRow row = dDetalle.Rows.Cast<DataRow>()
                         .FirstOrDefault(r => (string)r["muluid"] == "Total General");
                        if (row == null)
                        {
                            DataRow newRow = dt.NewRow();
                            newRow["name"] = "Total General";
                            newRow["cantidad"] = calculo_cantidad;
                            newRow["cantidad_porcentaje"] = Math.Round(cantidad_porcentaje);
                            newRow["total"] = Math.Round(calculo_euro,2);
                            newRow["totalporcentaje"] = Math.Round(totalporcentaje);
                            dt.Rows.Add(newRow);
                        }
                        else
                        {
    
                        }
                        //Fin sumar Filas
    
                        
                        this.dataGridView1.DataSource = dt;
                        
                        this.dataGridView1.Columns["muluid"].Frozen = true; // deja estatico la Columna
                        this.dataGridView1.Columns["name"].Frozen = true; //deja estatico la columna
    
    
                        dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells);
                        dataGridView1.Rows[dataGridView1.Rows.Count - 1].DefaultCellStyle.BackColor = Color.Silver;
    
                        dataGridView1.Columns["muluid"].Width = 60;
                        dataGridView1.Columns["name"].Width = 120;
                        dataGridView1.Columns["cantidad"].Width = 60;
                        dataGridView1.Columns["cantidad_porcentaje"].Width = 70;
                        dataGridView1.Columns["total"].Width = 80;
                        dataGridView1.Columns["total"].DefaultCellStyle.Format = "c";
                        dataGridView1.Columns["totalporcentaje"].Width = 50;
    
                        dataGridView1.Columns[0].HeaderText = "Familia";
                        dataGridView1.Columns[1].HeaderText = "Descripcion";
                        dataGridView1.Columns[2].HeaderText = "Unidad";
                        dataGridView1.Columns[3].HeaderText = " % ";
                        dataGridView1.Columns[4].HeaderText = "Total €";
                        dataGridView1.Columns[5].HeaderText = "Total % ";
    
                        // productosrecomendados();
    
                    }
                }
            }

    Saludos


    ruben

    lunes, 16 de mayo de 2016 15:24
  • hola

    realiza un rebuild del codigo para forzar la compilacion, a veces el VS requiere realizar un rebuild, ojo no un simple play sino usa el Rebuild de la solucion

    >>dejo el código por si alguien puede analizar y ayudarme a encontrar mas fácil el error

    pero no cambio el mensaje de error ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina



    lunes, 16 de mayo de 2016 15:36
  • Leandro en BTNconsulta llamo a cargar familia

    ruben

    lunes, 16 de mayo de 2016 15:46