/// <summary> llena la lista de asistencias </summary> private void cargarAsistencias() { DiaClase[] diasClase = dbConection.getDiasClase(idGrupo, mostrandoTodosDias); if (diasClase.Length != 0) { flPanelAsistencias.Controls.Clear(); flPanelFechas.Controls.Clear(); lblArrowDia.Dispose(); foreach (DiaClase diaClase in diasClase) { tiltLabel labelFecha = new tiltLabel(diaClase); MenuItem[] menu = { new MenuItem("Borrar", borrarFecha_Click) }; menu[0].Name = diaClase.dia.ToString("dd'/'MM'/'yy"); labelFecha.ContextMenu = new ContextMenu(menu); flPanelFechas.Controls.Add(labelFecha); } foreach (Alumno alumno in alumnosGrupo) { FlowLayoutPanel asistencias = PersonalizacionComponentes.hacerPanelAsistencias(alumno.getId(), diasClase); asistencias.Name = alumno.getId().ToString(); flPanelAsistencias.Controls.Add(asistencias); } /*Cuando el número de días no es diez no aparece la barra ed scroll horizontal por lo que hay que hacer la validación y * en este caso agregar un label con el tamaño de un scroll y que no desalinea los nombres con los días de asistencia */ if (diasClase.Length <= 10) { agregarLabelControl(); } } //Evento de Scroll con el scroll del mouse flPanelAsistencias.MouseWheel += flPanelAsistencias_MouseScroll; flPanelFechas.MouseWheel += FlPanelFechas_MouseWheel; }
/// <summary> Cuando se agrega un nuevo día para el grupo actual agrega una columna de DateButtons por cada alumno </summary> private void actualizarAssitencia(DateTime dia) { lblInfoDias.Dispose(); lblArrowDia.Dispose(); DiaClase diaNuevo = new DiaClase(dia, idGrupo); //Se sacan todos los paneles de asistencias de los alumnos System.Collections.IEnumerator alumnosPanels = flPanelAsistencias.Controls.GetEnumerator(); //Se agrega al panel de fechas el nuevo día agregado tiltLabel labelFecha = new tiltLabel(diaNuevo); labelFecha.Name = diaNuevo.dia.ToString("dd'/'MM'/'yy"); MenuItem[] menu = { new MenuItem("Borrar", borrarFecha_Click) }; menu[0].Name = dia.ToString("dd'/'MM'/'yy"); labelFecha.ContextMenu = new ContextMenu(menu); flPanelFechas.Controls.Add(labelFecha); quitarLabelControl(); //A cada uno de los paneles le agrega el nuevo día y le cambia el tamaño para que sea visible while (alumnosPanels.MoveNext()) { ((FlowLayoutPanel)alumnosPanels.Current).Controls.Add(new DateButton(diaNuevo, true)); ((FlowLayoutPanel)alumnosPanels.Current).Size = ((FlowLayoutPanel)alumnosPanels.Current).PreferredSize; } if (flPanelFechas.Controls.Count <= 10) { agregarLabelControl(); } }
public FormAlumno(Alumno alumno) { InitializeComponent(); flPanelRubros.Controls.Clear(); int idGrupo = alumno.getGupo(); lblNombre.Text = alumno.nombreCompletoPA(); Grupo grupo = dbConection.getGrupo(alumno.getGupo()); lblGrupo.Text += " " + grupo.ToString(); lblEscuela.Text += " " + grupo.getEscuela(); //Conseguir las materias List <Materia> materias = dbConection.materiasAsociadasCon(alumno.getGupo()); //Panel de títulos: Tareas, Proyectos, Exámenes, Promedio PersonalizacionComponentes.llenarPanelMateriasBusqueda(ref flPanelMaterias, materias); tiltLabel[] titulos = new tiltLabel[4]; titulos[0] = new tiltLabel("Tareas"); titulos[1] = new tiltLabel("Poyectos"); titulos[2] = new tiltLabel("Exámenes"); titulos[3] = new tiltLabel("Promedio"); titulos[0].Name = "Tareas"; titulos[1].Name = "Proyectos"; titulos[2].Name = "Examenes"; titulos[3].Name = "Promedio"; titulos[0].Margin = new Padding(0, 0, 50, 0); titulos[1].Margin = new Padding(0, 0, 50, 0); titulos[2].Margin = new Padding(0, 0, 50, 0); titulos[3].Margin = new Padding(0, 0, 50, 0); flPanelRubros.Controls.AddRange(titulos); tlPanel.Controls.Add(flPanelRubros, 1, 0); //Promedio de cada materia decimal[,] calificaciones = new decimal[materias.Count, 4]; decimal promedioTotal = 0; decimal[,] porcentajesCalificaciones = new decimal[materias.Count, 3]; dbConection.llenarMatrizCalificaciones(alumno.getId(), alumno.getGupo(), materias, calificaciones, ref promedioTotal, porcentajesCalificaciones); FlowLayoutPanel panelCalificaciones = PersonalizacionComponentes.hacerContenedorEntregas("flPanelCalificaciones"); PersonalizacionComponentes.llenarPanelCalificacionesBusqueda(ref panelCalificaciones, calificaciones, alumno.getId(), materias, porcentajesCalificaciones, this); tlPanel.Controls.Add(panelCalificaciones, 1, 1); promedioTotal = Decimal.Round(promedioTotal, 2); lblPromedio.Text += " " + promedioTotal; lblPromedio.ForeColor = promedioTotal >= 8 ? Color.FromArgb(11, 115, 115) : Color.Red; int faltas = dbConection.getNumeroFaltas(alumno.getId()); lblCantidadFaltas.Text = " " + faltas; lblCantidadFaltas.ForeColor = faltas >= 3 ? Color.Red : Color.FromArgb(11, 115, 115); //Promedio total this.Show(); }
/// <summary>Recibe de FormAgregarEntrega la información de la entrega que se acaba de registrar en la base de datos</summary> internal void recibirIdEntregaNueva(string nombre, int idEntrega, int tipo) { if (grpBxModulo.Text == "Tareas") { Tarea tarea = new Tarea(nombre, idEntrega); tiltLabel nombreTarea = new tiltLabel(tarea.nombre); nombreTarea.Name = tarea.id.ToString(); MenuItem[] menu = { new MenuItem("Borrar", borrarEntrega_Click) }; menu[0].Name = tarea.id.ToString(); nombreTarea.ContextMenu = new ContextMenu(menu); //Se van agregando los títulos de las entregas al contenedor de titulos de tareas flPanelEntregas[1, (int)Entregas.TAREAS].Controls.Add(nombreTarea); bool labelControl = flPanelEntregas[1, (int)Entregas.TAREAS].Controls.Count <= 10; quitarLabelControl(); System.Collections.IEnumerator alumnosPanels = flPanelEntregas[0, (int)Entregas.TAREAS].Controls.GetEnumerator(); while (alumnosPanels.MoveNext()) { ((FlowLayoutPanel)alumnosPanels.Current).Controls.Add(new TareaButton(tarea.id, true)); ((FlowLayoutPanel)alumnosPanels.Current).Size = ((FlowLayoutPanel)alumnosPanels.Current).PreferredSize; } if (labelControl) { agregarLabelControl(); } } else if (grpBxModulo.Text == "Proyectos") { Proyecto proyecto = new Proyecto(nombre, idEntrega); tiltLabel nombreProyecto = new tiltLabel(proyecto.nombre); nombreProyecto.Name = proyecto.id.ToString(); nombreProyecto.Margin = new Padding(0, 0, 50, 0); MenuItem[] menu = { new MenuItem("Borrar", borrarEntrega_Click) }; menu[0].Name = proyecto.id.ToString(); nombreProyecto.ContextMenu = new ContextMenu(menu); //Se van agregando los títulos de las entregas al contenedor de titulos de tareas flPanelEntregas[1, (int)Entregas.PROYECTOS].Controls.Add(nombreProyecto); bool labelControl = flPanelEntregas[1, (int)Entregas.PROYECTOS].Controls.Count <= 5; quitarLabelControl(); System.Collections.IEnumerator alumnosPanels = flPanelEntregas[0, (int)Entregas.PROYECTOS].Controls.GetEnumerator(); while (alumnosPanels.MoveNext()) { //Se manda 100 porque en el construtor lo divide entre 10 ((FlowLayoutPanel)alumnosPanels.Current).Controls.Add(new CalificacionLabel(proyecto.id, 100, 1)); ((FlowLayoutPanel)alumnosPanels.Current).Size = ((FlowLayoutPanel)alumnosPanels.Current).PreferredSize; } if (labelControl) { agregarLabelControl(); } } else { Examen examen = new Examen(nombre, idEntrega); tiltLabel nombreExamen = new tiltLabel(examen.nombre); nombreExamen.Name = examen.id.ToString(); nombreExamen.Margin = new Padding(0, 0, 50, 0); MenuItem[] menu = { new MenuItem("Borrar", borrarEntrega_Click) }; menu[0].Name = examen.id.ToString(); nombreExamen.ContextMenu = new ContextMenu(menu); //Se van agregando los títulos de las entregas al contenedor de titulos de tareas flPanelEntregas[1, (int)Entregas.EXAMENES].Controls.Add(nombreExamen); bool labelControl = flPanelEntregas[1, (int)Entregas.EXAMENES].Controls.Count <= 5; quitarLabelControl(); System.Collections.IEnumerator alumnosPanels = flPanelEntregas[0, (int)Entregas.EXAMENES].Controls.GetEnumerator(); while (alumnosPanels.MoveNext()) { //Se manda 100 porque en el construtor lo divide entre 10 ((FlowLayoutPanel)alumnosPanels.Current).Controls.Add(new CalificacionLabel(examen.id, 100, 2)); ((FlowLayoutPanel)alumnosPanels.Current).Size = ((FlowLayoutPanel)alumnosPanels.Current).PreferredSize; } if (labelControl) { agregarLabelControl(); } } foreach (Alumno alumno in alumnos) { dbConection.agregarEntregas(alumno.getId(), idEntrega); } }
/// <summary> muestra la ventana tareas </summary> private void btnTareas_Click(object sender, EventArgs e) { desactivarPanelActivo((int)Entregas.TAREAS); btnAgregar.Visible = true; panelActivo = Entregas.TAREAS; grpBxModulo.Text = "Tareas"; if (instancesPaneles[(int)Entregas.TAREAS]) { //Si ya se instanció mostrará ese panel de tareas y el de los títulos de las tareas //Las filas representan los títulos de ese panel y siempre van en la fila 1 flPanelEntregas[0, (int)Entregas.TAREAS].Show(); flPanelEntregas[1, (int)Entregas.TAREAS].Show(); } else { instancesPaneles[(int)Entregas.TAREAS] = true; flPanelEntregas[0, (int)Entregas.TAREAS] = PersonalizacionComponentes.hacerContenedorEntregas("flPanelTareas"); flPanelEntregas[1, (int)Entregas.TAREAS] = PersonalizacionComponentes.hacerContenedorTitulosEntregas("flPanelTitulosTareas"); grpBxModulo.AccessibleDescription = dbConection.tipoTarea.ToString(); //Se creó el panel de tareas y se agrega al contenedor en la columna 1, los títulos en la fila 0 y los entregables en la fila 1 tlPanel.Controls.Add(flPanelEntregas[0, (int)Entregas.TAREAS], 1, 1); tlPanel.Controls.Add(flPanelEntregas[1, (int)Entregas.TAREAS], 1, 0); flPanelEntregas[0, (int)Entregas.TAREAS].Show(); flPanelEntregas[1, (int)Entregas.TAREAS].Show(); Tarea[] listTareas = dbConection.getTareas(idMateria); foreach (Tarea tarea in listTareas) { tiltLabel nombreTarea = new tiltLabel(tarea.nombre); nombreTarea.Name = tarea.id.ToString(); MenuItem[] menu = { new MenuItem("Borrar", borrarEntrega_Click) }; menu[0].Name = tarea.id.ToString(); nombreTarea.ContextMenu = new ContextMenu(menu); //Se van agregando los títulos de las entregas al contenedor de titulos de tareas flPanelEntregas[1, (int)Entregas.TAREAS].Controls.Add(nombreTarea); } foreach (Alumno alumno in alumnos) { FlowLayoutPanel entregas = PersonalizacionComponentes.hacerPanelTareas(alumno.getId(), listTareas, idMateria); flPanelEntregas[0, (int)Entregas.TAREAS].Controls.Add(entregas); } if (listTareas.Length <= 10) { agregarLabelControl(); } //ScrollEvents Tareas flPanelEntregas[0, (int)Entregas.TAREAS].Scroll += flPanelTareas_Scroll; flPanelEntregas[0, (int)Entregas.TAREAS].MouseWheel += flPanelTareas_MouseScroll; flPanelEntregas[1, (int)Entregas.TAREAS].MouseWheel += flPanelTareasTitulos_MouseWheel; } }
/// <summary> muestra la ventana tareas </summary> private void btnCalificaciones_Click(object sender, EventArgs e) { if (instancesPaneles[(int)Entregas.CALIFICACIONES]) { grpBxModulo.Text = "Calificaciones"; btnAgregar.Visible = false; desactivarPanelActivo((int)Entregas.CALIFICACIONES); panelActivo = Entregas.CALIFICACIONES; //Si ya se instanció mostrará ese panel de calificaciones y el de los títulos de las calificaciones flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Show(); flPanelEntregas[1, (int)Entregas.CALIFICACIONES].Show(); } else { if (MessageBox.Show("Estás a punto de ver las calificaciones calculadas con los siguientes valores en los rubros" + System.Environment.NewLine + "Tareas: " + upDnTareas.Value + System.Environment.NewLine + "Proyectos: " + upDnProyectos.Value + System.Environment.NewLine + "Exámenes: " + upDnExamenes.Value, "Confirmación ver calificaciones", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { //Si es visible pero falso es que ya estaba creado es porque se cambió el valor de algún nuUpRubro if (flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Visible) { //Cuando se actualice uno de los rubros y ya se haya cargado el panel de calificaciones entrerá en esta opción para limpiar el panel y volver a cargarlo flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Controls.Clear(); flPanelEntregas[1, (int)Entregas.CALIFICACIONES].Controls.Clear(); tlPanel.Controls.RemoveByKey("flPanelCalificaciones"); tlPanel.Controls.RemoveByKey("flPanelTitulosCalificaciones"); } grpBxModulo.Text = "Calificaciones"; btnAgregar.Visible = false; desactivarPanelActivo((int)Entregas.CALIFICACIONES); panelActivo = Entregas.CALIFICACIONES; instancesPaneles[(int)Entregas.CALIFICACIONES] = true; flPanelEntregas[0, (int)Entregas.CALIFICACIONES] = PersonalizacionComponentes.hacerContenedorEntregas("flPanelCalificaciones"); flPanelEntregas[1, (int)Entregas.CALIFICACIONES] = PersonalizacionComponentes.hacerContenedorTitulosEntregas("flPanelTitulosCalificaciones"); tlPanel.Controls.Add(flPanelEntregas[0, (int)Entregas.CALIFICACIONES], 1, 1); tlPanel.Controls.Add(flPanelEntregas[1, (int)Entregas.CALIFICACIONES], 1, 0); flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Show(); flPanelEntregas[1, (int)Entregas.CALIFICACIONES].Show(); tiltLabel[] titulos = new tiltLabel[4]; titulos[0] = new tiltLabel("Tareas"); titulos[1] = new tiltLabel("Poyectos"); titulos[2] = new tiltLabel("Exámenes"); titulos[3] = new tiltLabel("Promedio"); titulos[0].Name = "Tareas"; titulos[1].Name = "Proyectos"; titulos[2].Name = "Exámenes"; titulos[3].Name = "Promedio"; titulos[0].Margin = new Padding(0, 0, 50, 0); titulos[1].Margin = new Padding(0, 0, 50, 0); titulos[2].Margin = new Padding(0, 0, 50, 0); titulos[3].Margin = new Padding(0, 0, 50, 0); flPanelEntregas[1, (int)Entregas.CALIFICACIONES].Controls.AddRange(titulos); PersonalizacionComponentes.decorarPanelesCalificaciones(alumnos, idMateria, upDnTareas.Value, upDnProyectos.Value, upDnExamenes.Value, ref flPanelEntregas[0, (int)Entregas.CALIFICACIONES], this); agregarLabelControl(); //ScrollEvents Calificaciones flPanelEntregas[0, (int)Entregas.CALIFICACIONES].Scroll += flPanelCalificaciones_Scroll; flPanelEntregas[0, (int)Entregas.CALIFICACIONES].MouseWheel += flPanelCalificaciones_MouseScroll; flPanelEntregas[1, (int)Entregas.CALIFICACIONES].MouseWheel += flPanelCalificacionesTitulos_MouseWheel; } } }
/// <summary> muestra la ventana examenes </summary> private void btnExamenes_Click(object sender, EventArgs e) { desactivarPanelActivo((int)Entregas.EXAMENES); btnAgregar.Visible = true; grpBxModulo.Text = "Exámenes"; panelActivo = Entregas.EXAMENES; if (instancesPaneles[(int)Entregas.EXAMENES]) { //Si ya se instanció mostrará ese panel de tareas y el de los títulos de las tareas flPanelEntregas[0, (int)Entregas.EXAMENES].Show(); flPanelEntregas[1, (int)Entregas.EXAMENES].Show(); } else { //Le dice que ya se instanció para que la siguiente vez que se entre en est opción no cargue todo el panel de nuevo instancesPaneles[(int)Entregas.EXAMENES] = true; flPanelEntregas[0, (int)Entregas.EXAMENES] = PersonalizacionComponentes.hacerContenedorEntregas("flPanelExamenes"); flPanelEntregas[1, (int)Entregas.EXAMENES] = PersonalizacionComponentes.hacerContenedorTitulosEntregas("flPanelTitulosExamenes"); grpBxModulo.AccessibleDescription = dbConection.tipoExam.ToString(); tlPanel.Controls.Add(flPanelEntregas[0, (int)Entregas.EXAMENES], 1, 1); tlPanel.Controls.Add(flPanelEntregas[1, (int)Entregas.EXAMENES], 1, 0); flPanelEntregas[0, (int)Entregas.EXAMENES].Show(); flPanelEntregas[1, (int)Entregas.EXAMENES].Show(); Examen[] listExamenes = dbConection.getExamenes(idMateria); foreach (Examen exam in listExamenes) { tiltLabel nombreEntrega = new tiltLabel(exam.nombre); nombreEntrega.Name = exam.id.ToString(); //Sólo aquí cuando se van a mostrar NumericUpDown tenemos que dejar más espacio entre uno y otro porque sino se ve todo amontonado nombreEntrega.Margin = new Padding(0, 0, 50, 0); MenuItem[] menu = { new MenuItem("Borrar", borrarEntrega_Click) }; menu[0].Name = exam.id.ToString(); nombreEntrega.ContextMenu = new ContextMenu(menu); flPanelEntregas[1, (int)Entregas.EXAMENES].Controls.Add(nombreEntrega); } foreach (Alumno alumno in alumnos) { FlowLayoutPanel entregas = PersonalizacionComponentes.hacerPanelExamenes(alumno.getId(), listExamenes); entregas.Margin = new Padding(0, 0, 0, 0); flPanelEntregas[0, (int)Entregas.EXAMENES].Controls.Add(entregas); } if (listExamenes.Length <= 5) { agregarLabelControl(); } //ScrollEvents Exámenes flPanelEntregas[0, (int)Entregas.EXAMENES].Scroll += flPanelExamenes_Scroll; flPanelEntregas[0, (int)Entregas.EXAMENES].MouseWheel += flPanelExamenes_MouseScroll; flPanelEntregas[1, (int)Entregas.EXAMENES].MouseWheel += flPanelExamenesTitulos_MouseWheel; } }
/// <summary> muestra la ventana proyectos </summary> private void btnProyectos_Click(object sender, EventArgs e) { desactivarPanelActivo((int)Entregas.PROYECTOS); panelActivo = Entregas.PROYECTOS; grpBxModulo.Text = "Proyectos"; btnAgregar.Visible = true; if (instancesPaneles[(int)Entregas.PROYECTOS]) { flPanelEntregas[0, (int)Entregas.PROYECTOS].Show(); flPanelEntregas[1, (int)Entregas.PROYECTOS].Show(); } else { instancesPaneles[(int)Entregas.PROYECTOS] = true; flPanelEntregas[0, (int)Entregas.PROYECTOS] = PersonalizacionComponentes.hacerContenedorEntregas("flPanelProyectos"); flPanelEntregas[1, (int)Entregas.PROYECTOS] = PersonalizacionComponentes.hacerContenedorTitulosEntregas("flPanelTitulosProyectos"); grpBxModulo.AccessibleDescription = dbConection.tipoProy.ToString(); tlPanel.Controls.Add(flPanelEntregas[0, (int)Entregas.PROYECTOS], 1, 1); tlPanel.Controls.Add(flPanelEntregas[1, (int)Entregas.PROYECTOS], 1, 0); flPanelEntregas[0, (int)Entregas.PROYECTOS].Show(); flPanelEntregas[1, (int)Entregas.PROYECTOS].Show(); Proyecto[] listProyectos = dbConection.getProyectos(idMateria); foreach (Proyecto proyecto in listProyectos) { tiltLabel nombreEntrega = new tiltLabel(proyecto.nombre); nombreEntrega.Name = proyecto.id.ToString(); //Sólo aquí cuando se van a mostrar NumericUpDown tenemos que dejar más espacio entre uno y otro porque sino se ve todo amontonado nombreEntrega.Margin = new Padding(0, 0, 50, 0); MenuItem[] menu = { new MenuItem("Borrar", borrarEntrega_Click) }; menu[0].Name = proyecto.id.ToString(); nombreEntrega.ContextMenu = new ContextMenu(menu); flPanelEntregas[1, (int)Entregas.PROYECTOS].Controls.Add(nombreEntrega); } foreach (Alumno alumno in alumnos) { FlowLayoutPanel entregas = PersonalizacionComponentes.hacerPanelProyectos(alumno.getId(), listProyectos); entregas.Margin = new Padding(0, 0, 0, 0); flPanelEntregas[0, (int)Entregas.PROYECTOS].Controls.Add(entregas); } if (listProyectos.Length <= 5) { agregarLabelControl(); } //ScrollEvents Proyectos flPanelEntregas[0, (int)Entregas.PROYECTOS].Scroll += flPanelProyectos_Scroll; flPanelEntregas[0, (int)Entregas.PROYECTOS].MouseWheel += flPanelProyectos_MouseScroll; flPanelEntregas[1, (int)Entregas.PROYECTOS].MouseWheel += flPanelProyectosTitulos_MouseWheel; } }