La función juntar
Con este post quiero agradecer a Alberto Salas su comentario y apoyo en relación al curso "Como hacer mi propio programa de decodificación DMR" expuesto en este sitio web y en el canal de YouTube.
En el mismo comentario me plantea un problema que ha tenido con el código de la función juntar por no poderla ver en su totalidad. A fin de solucionar este problema he decidido poner aquí ese código completo para que todo aquel que tenga ese mismo problema pueda solucionarlo.
Muchas gracias a todos por haber seguido este curso y por vuestro apoyo.
private void Juntar()
{
try
{
for (int i = 0; i < dataGridView1.RowCount - 1; i++) // Recorrre uno a uno todos los registros de la tabla dataGridView1
{
string existe = ""; // existe es iguala nada
string mirid = dataGridView1.Rows[i].Cells[2].Value.ToString(); // mirid es igual al valor de la columna 3 de la tabla dataGridView1
TbxTextoTemporal.Text = mirid; // El texto de TbxTextoTemporal es igaul al valor de mirid
string lineatemp = TbxTextoTemporal.Text; // lineatemp es igual al texto de TbxTextoTemporal
int cantfilas = dataGridView1.Rows.Count - 1; // Busca la última fila de la tabla dataGridView1
int cantfilas2 = dataGridView2.Rows.Count - 1; // Busca la última fila de la tabla dataGridView2
try
{
for (int y = 0; y < dataGridView2.RowCount - 1; y++) // Recorre uno a uno los registros de dataGridView2
{
string mirid2 = dataGridView2.Rows[y].Cells[2].Value.ToString(); // Iguala las string a las columnas de la tabla dataGridView2
if (mirid2 == lineatemp) // Si mirid2 es igual a lineatemp
{
existe = mirid2; // existe es igual a mirid2
int micuenta = Convert.ToInt32(dataGridView2.Rows[y].Cells[0].Value) + Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value); // micuenta es igual al valor de la columna 0 de la tabla dataGridView2 más el valor de la columna 0 de la tabla dataGridView1
dataGridView2.Rows[y].Cells[0].Value = micuenta; // El valor de la columna 0 de la tabla dataGridView2 es igual a micuenta
if (dataGridView1.Rows[i].Cells[1].Value.ToString() != "---") // Si el valor de la columna 1 de la tabla dataGridView1 es diferente a nada enotnces
{
if (dataGridView2.Rows[y].Cells[1].Value.ToString() != "---") // Si el valor de la columna 1 de la tabla dataGridView2 es diferente a nada
{
if (dataGridView2.Rows[y].Cells[1].Value.ToString().Contains(dataGridView1.Rows[i].Cells[1].Value.ToString())) { } // Si la columna 1 de la tabla dataGridView2 contiene el valor de la columna 1 de la tabla dataGridView1
else
{
dataGridView2.Rows[y].Cells[1].Value += " - " + dataGridView1.Rows[i].Cells[1].Value; // El valor de la columna 1 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 1 de la tabla dataGridView1
}
}
else
{
dataGridView2.Rows[y].Cells[1].Value = dataGridView1.Rows[i].Cells[1].Value; // El valor de la columna 1 de la tabla dataGridView2 es igual al valor de la columna 1 de la tabla dataGridView1
}
}
string mrid3e = dataGridView2.Rows[y].Cells[2].Value.ToString(); // Iguala las string a las columnas de la tabla dataGridView2
if (dataGridView1.Rows[i].Cells[3].Value.ToString() != "-") // Si el valor de la columna 3 de la tabla dataGridView1 es diferente a nada enotnces
{
if (dataGridView2.Rows[y].Cells[3].Value.ToString() != "-") // Si el valor de la columna 3 de la tabla dataGridView2 es diferente a nada
{
if (dataGridView2.Rows[y].Cells[3].Value.ToString().Contains(dataGridView1.Rows[i].Cells[3].Value.ToString())) { } // Si la columna 3 de la tabla dataGridView2 contiene el valor de la columna 3 de la tabla dataGridView1
else
{
dataGridView2.Rows[y].Cells[3].Value += " - " + dataGridView1.Rows[i].Cells[3].Value; // El valor de la columna 3 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 3 de la tabla dataGridView1
}
}
else
{
dataGridView2.Rows[y].Cells[3].Value = dataGridView1.Rows[i].Cells[3].Value; // El valor de la columna 3 de la tabla dataGridView2 es igual al valor de la columna 3 de la tabla dataGridView1
}
}
if (dataGridView1.Rows[i].Cells[4].Value.ToString() != "-") // Si el valor de la columna 4 de la tabla dataGridView1 es diferente a nada enotnces
{
if (dataGridView2.Rows[y].Cells[4].Value.ToString() != "-") // Si el valor de la columna 4 de la tabla dataGridView2 es diferente a nada
{
if (dataGridView2.Rows[y].Cells[4].Value.ToString().Contains(dataGridView1.Rows[i].Cells[4].Value.ToString())) { } // Si la columna 4 de la tabla dataGridView2 contiene el valor de la columna 4 de la tabla dataGridView1
else
{
dataGridView2.Rows[y].Cells[4].Value += " - " + dataGridView1.Rows[i].Cells[4].Value; // El valor de la columna 4 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 4 de la tabla dataGridView1
}
}
else
{
dataGridView2.Rows[y].Cells[4].Value = dataGridView1.Rows[i].Cells[4].Value; // El valor de la columna 4 de la tabla dataGridView2 es igual al valor de la columna 4 de la tabla dataGridView1
}
}
if (dataGridView1.Rows[i].Cells[5].Value.ToString() != "-") // Si el valor de la columna 5 de la tabla dataGridView1 es diferente a nada enotnces
{
if (dataGridView2.Rows[y].Cells[5].Value.ToString() != "-") // Si el valor de la columna 5 de la tabla dataGridView2 es diferente a nada
{
if (dataGridView2.Rows[y].Cells[5].Value.ToString().Contains(dataGridView1.Rows[i].Cells[5].Value.ToString())) { } // Si la columna 5 de la tabla dataGridView2 contiene el valor de la columna 5 de la tabla dataGridView1
else
{
dataGridView2.Rows[y].Cells[5].Value += " - " + dataGridView1.Rows[i].Cells[5].Value; // El valor de la columna 5 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 5 de la tabla dataGridView1
}
}
else
{
dataGridView2.Rows[y].Cells[5].Value = dataGridView1.Rows[i].Cells[5].Value; // El valor de la columna 5 de la tabla dataGridView2 es igual al valor de la columna 5 de la tabla dataGridView1
}
}
if (dataGridView1.Rows[i].Cells[6].Value.ToString() != "-") // Si el valor de la columna 6 de la tabla dataGridView1 es diferente a nada enotnces
{
if (dataGridView2.Rows[y].Cells[6].Value.ToString() != "-") // Si el valor de la columna 6 de la tabla dataGridView2 es diferente a nada
{
if (dataGridView2.Rows[y].Cells[6].Value.ToString().Contains(dataGridView1.Rows[i].Cells[6].Value.ToString())) { } // Si la columna 6 de la tabla dataGridView2 contiene el valor de la columna 6 de la tabla dataGridView1
else
{
dataGridView2.Rows[y].Cells[6].Value += " - " + dataGridView1.Rows[i].Cells[6].Value; // El valor de la columna 6 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 6 de la tabla dataGridView1
}
}
else
{
dataGridView2.Rows[y].Cells[6].Value = dataGridView1.Rows[i].Cells[6].Value; // El valor de la columna 6 de la tabla dataGridView2 es igual al valor de la columna 6 de la tabla dataGridView1
}
}
if (dataGridView1.Rows[i].Cells[7].Value.ToString() != "-") // Si el valor de la columna 7 de la tabla dataGridView1 es diferente a nada enotnces
{
if (dataGridView2.Rows[y].Cells[7].Value.ToString() != "-") // Si el valor de la columna 7 de la tabla dataGridView2 es diferente a nada
{
if (dataGridView2.Rows[y].Cells[7].Value.ToString().Contains(dataGridView1.Rows[i].Cells[7].Value.ToString())) { } // Si la columna 7 de la tabla dataGridView2 contiene el valor de la columna 7 de la tabla dataGridView1
else
{
dataGridView2.Rows[y].Cells[7].Value += " - " + dataGridView1.Rows[i].Cells[7].Value; // El valor de la columna 7 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 7 de la tabla dataGridView1
}
}
else
{
dataGridView2.Rows[y].Cells[7].Value = dataGridView1.Rows[i].Cells[7].Value; // El valor de la columna 7 de la tabla dataGridView2 es igual al valor de la columna 7 de la tabla dataGridView1
}
}
if (dataGridView1.Rows[i].Cells[8].Value.ToString() != "-") // Si el valor de la columna 8 de la tabla dataGridView1 es diferente a nada enotnces
{
if (dataGridView2.Rows[y].Cells[8].Value.ToString() != "-") // Si el valor de la columna 8 de la tabla dataGridView2 es diferente a nada
{
if (dataGridView2.Rows[y].Cells[8].Value.ToString().Contains(dataGridView1.Rows[i].Cells[8].Value.ToString())) { } // Si la columna 8 de la tabla dataGridView2 contiene el valor de la columna 8 de la tabla dataGridView1
else
{
dataGridView2.Rows[y].Cells[8].Value += " - " + dataGridView1.Rows[i].Cells[8].Value; // El valor de la columna 8 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 8 de la tabla dataGridView1
}
}
else
{
dataGridView2.Rows[y].Cells[8].Value = dataGridView1.Rows[i].Cells[8].Value; // El valor de la columna 8 de la tabla dataGridView2 es igual al valor de la columna 8 de la tabla dataGridView1
}
}
if (dataGridView1.Rows[i].Cells[9].Value.ToString() != "-") // Si el valor de la columna 9 de la tabla dataGridView1 es diferente a nada enotnces
{
if (dataGridView2.Rows[y].Cells[9].Value.ToString() != "-") // Si el valor de la columna 9 de la tabla dataGridView2 es diferente a nada
{
if (dataGridView2.Rows[y].Cells[9].Value.ToString().Contains(dataGridView1.Rows[i].Cells[9].Value.ToString())) { } // Si la columna 9 de la tabla dataGridView2 contiene el valor de la columna 9 de la tabla dataGridView1
else
{
dataGridView2.Rows[y].Cells[9].Value += " - " + dataGridView1.Rows[i].Cells[9].Value; // El valor de la columna 9 de la tabla dataGridView2 es igual a el mismo más el valor de la columna 9 de la tabla dataGridView1
}
}
else
{
dataGridView2.Rows[y].Cells[9].Value = dataGridView1.Rows[i].Cells[9].Value; // El valor de la columna 9 de la tabla dataGridView2 es igual al valor de la columna 9 de la tabla dataGridView1
}
}
}
}
if (lineatemp != existe)
{
dataGridView2.Rows.Add();
dataGridView2[0, cantfilas2].Value = dataGridView1.Rows[i].Cells[0].Value;
dataGridView2[1, cantfilas2].Value = dataGridView1.Rows[i].Cells[1].Value;
dataGridView2[2, cantfilas2].Value = dataGridView1.Rows[i].Cells[2].Value;
dataGridView2[3, cantfilas2].Value = dataGridView1.Rows[i].Cells[3].Value;
dataGridView2[4, cantfilas2].Value = dataGridView1.Rows[i].Cells[4].Value;
dataGridView2[5, cantfilas2].Value = dataGridView1.Rows[i].Cells[5].Value;
dataGridView2[6, cantfilas2].Value = dataGridView1.Rows[i].Cells[6].Value;
dataGridView2[7, cantfilas2].Value = dataGridView1.Rows[i].Cells[7].Value;
dataGridView2[8, cantfilas2].Value = dataGridView1.Rows[i].Cells[8].Value;
dataGridView2[9, cantfilas2].Value = dataGridView1.Rows[i].Cells[9].Value;
}
}
catch { }
}
}
catch { }
int cantfilas3 = dataGridView2.Rows.Count - 1; // Busca la última fila de la tabla dataGridView2
try
{
for (int h = 0; h < dataGridView2.RowCount - 1; h++)
{
for (int j = 0; j < dataGridView2.ColumnCount - 1; j++)
{
if (dataGridView2.Rows[h].Cells[j].Value.ToString() == "---")
{
dataGridView2.Rows[h].Cells[j].Value = " ";
}
}
}
}
catch { }
}
Sustituye la función juntar de tu proyecto por este otro código fuente.