//guarda los rubros modificados
 private void bGuardar_Click(object sender, RoutedEventArgs e)
 {
     if (lbTotal.Content.Equals("100"))
     {
         try
         {
             Rubro r = new Rubro();
             int   i = 1;
             r.modificar(grupo, txtExam.Text, i);
             i++;
             r.modificar(grupo, txtProy.Text, i);
             i++;
             r.modificar(grupo, txtTarea.Text, i);
             MessageBox.Show("Rubros guardados correctamente");
             mGrupo m = new mGrupo(grupo);
             m.Show();
             this.Close();
         }
         catch (Exception ex)
         {
             MessageBox.Show("No se pudieron modificar los rubros" + ex);
         }
     }
     else
     {
         MessageBox.Show("Los rubros no suman 100%");
     }
 }
 //recibe la clase construida con todos sus atributos genera la conección y la da de alta en la base
 public int agregarRubro(Rubro r)
 {
     try
     {
         int           res = 0;
         SqlConnection con;
         con = Conexion.agregarConexion();
         SqlCommand cmd = new SqlCommand(String.Format("insert into rubroEv values({0}, {1}, {2}, '{3}')", r.claveR, r.tipo, r.porcentaje, r.claveG), con);
         res = cmd.ExecuteNonQuery();
         con.Close();
         return(res);
     }
     catch (Exception ex)
     {
         MessageBox.Show("No se pudo dar de alta el rubro" + ex);
         return(0);
     }
 }
 //Recibe la clase con su primary key para realizar la eliminación de la base, incluyendo las entradas de las tablas que dependan de su primary key
 public int eliminarRubro(Rubro r)
 {
     try
     {
         int           res = 0;
         SqlConnection con;
         con = Conexion.agregarConexion();
         SqlCommand cmd = new SqlCommand(String.Format("delete from rubroEv where claveR = '{0}'", r.claveR), con);
         res = cmd.ExecuteNonQuery();
         con.Close();
         return(res);
     }
     catch (Exception ex)
     {
         MessageBox.Show("No se pudo eliminar el rubro" + ex);
         return(0);
     }
 }
        //crea un grupo y lo instancia con rubros de evaluación implementados en 0
        private void bCrear_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                int   res;
                Grupo g = new Grupo(txtGrado.Text, txtLetra.Text);
                res = g.agregarGrupo(g);
                if (res > 0)
                {
                    SqlConnection con = Conexion.agregarConexion();
                    SqlCommand    com = new SqlCommand("select max(claveR) as claveR from rubroEv", con);
                    SqlDataReader rd  = com.ExecuteReader();
                    int           clave;
                    if (rd.Read())
                    {
                        clave = Int32.Parse(rd["claveR"].ToString());
                    }
                    else
                    {
                        clave = 0;
                    }

                    Rubro r;
                    for (int i = 1; i < 4; i++)
                    {
                        clave = clave + 1;
                        r     = new Rubro(clave.ToString(), i.ToString(), "0", g.claveG);
                        r.agregarRubro(r);
                    }
                    MessageBox.Show("Grupo dado de alta");
                    mGrupo m = new mGrupo(g.claveG);
                    m.Show();
                    this.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("el grupo no pudo darse de alta" + ex);
            }
        }