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); }
/// <summary> abre el formGrupoMateria con la materia indicada </summary> internal static void showGrupoMateria(int idMateria, int idGrupo) { grupo = new FormGrupoMateria(idMateria, idGrupo); grupo.Show(); }