internal static void decorarPanelesCalificaciones(List <Alumno> alumnos, int idMateria, decimal valorTareas, decimal valorProyectos, decimal valorExa, ref FlowLayoutPanel panelCalificaciones, FormGrupoMateria padre)
        {
            int tareasTotales = dbConection.getNumeroEntregablesTotales(idMateria, 1);

            //Si no se tiene ninguna tarea no podemos dividir entre 0
            if (tareasTotales == 0)
            {
                tareasTotales++;
            }
            //Columas: Tareas, proyectos, exámenes y promedio
            //Filas: Una por cada alumno del grupo
            decimal[,] matrizCalif = new decimal[alumnos.Count, 4];

            int fila = 0;

            foreach (Alumno alumno in alumnos)
            {
                matrizCalif[fila, 0] = (dbConection.getNumeroTareas(alumno.getId(), idMateria) * valorTareas) / tareasTotales;
                matrizCalif[fila, 1] = (dbConection.getPromCalifProyectosOExam(alumno.getId(), idMateria, 3) * valorProyectos);
                matrizCalif[fila, 2] = (dbConection.getPromCalifProyectosOExam(alumno.getId(), idMateria, 2) * valorExa);
                matrizCalif[fila, 3] = matrizCalif[fila, 0] + matrizCalif[fila, 1] + matrizCalif[fila, 2];

                /*Control, para verificar que está bien
                 * Console.WriteLine("Promedio: " + matrizCalif[fila, 3]);
                 * Console.WriteLine("tareas: " + matrizCalif[fila, 0]);
                 * Console.WriteLine("proyectos: " + matrizCalif[fila, 1]);
                 * Console.WriteLine("exámenes: " + matrizCalif[fila, 2]);*/

                FlowLayoutPanel panelCalifAlum = new FlowLayoutPanel();
                panelCalifAlum.Margin = new Padding(0);
                panelCalifAlum.Name   = alumno.getId().ToString();

                panelCalifAlum.Controls.Add(getLabelCalificacion(matrizCalif[fila, 0], "Tareas", padre));

                panelCalifAlum.Controls.Add(getLabelCalificacion(matrizCalif[fila, 1], "Proyectos", padre));

                panelCalifAlum.Controls.Add(getLabelCalificacion(matrizCalif[fila, 2], "Exámenes", padre));

                Label lblPromedio = getLabelCalificacion(matrizCalif[fila, 3], "Promedio", padre);
                if (matrizCalif[fila, 3] < 8)
                {
                    lblPromedio.ForeColor = Color.Red;
                }
                panelCalifAlum.Controls.Add(lblPromedio);

                panelCalifAlum.Size = panelCalifAlum.PreferredSize;

                panelCalificaciones.Controls.Add(panelCalifAlum);

                fila++;
            }
        }
        //Labels de calificacion para la ventana Grupo Materia-Calificaciones
        public static Label getLabelCalificacion(decimal calificacion, string nombre, FormGrupoMateria padre)
        {
            Label lblCalif = new Label();

            lblCalif.AutoSize    = false;
            lblCalif.Font        = miFuentelblAlumno;
            lblCalif.Text        = Decimal.Round(calificacion, 2).ToString();
            lblCalif.ForeColor   = Color.FromArgb(11, 115, 115);
            lblCalif.Name        = nombre;
            lblCalif.TextAlign   = ContentAlignment.TopCenter;
            lblCalif.BorderStyle = BorderStyle.FixedSingle;

            lblCalif.Size   = new Size(88, 26);
            lblCalif.Margin = new Padding(0);

            lblCalif.MouseEnter += padre.lblCalificacionEnter;
            lblCalif.MouseLeave += padre.lblCalificacionLeave;

            return(lblCalif);
        }
예제 #3
0
 /// <summary> abre el formGrupoMateria con la materia indicada </summary>
 internal static void showGrupoMateria(int idMateria, int idGrupo)
 {
     grupo = new FormGrupoMateria(idMateria, idGrupo);
     grupo.Show();
 }