/// <summary> /// BTNs the graficar. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param> private void btnGraficar(object sender, EventArgs e) { try { //GenerarDatosGrafico(); AccionPagina = enumAcciones.Limpiar; float sumaNotas = 0; rptCalificaciones.graficoReporte.LimpiarSeries(); string alumno = string.Empty; if (Convert.ToInt32(ddlAlumno.SelectedValue) > 0) alumno = "\n" + ddlAlumno.SelectedItem.Text + "\n"; if (ddlAsignatura.SelectedIndex > 0) { // so reporte distribucion de calificaciones por asignatura foreach (System.Web.UI.WebControls.ListItem asignatura in ddlAsignatura.Items) { if (asignatura.Selected) { var serie = new List<RptCalificacionesAlumnoPeriodo>(); for (int i = 1; i < 11; i++) { var listaParcial = listaReporte.FindAll(p => p.calificacion == i.ToString() && p.asignatura == asignatura.Text); //if (listaParcial.Count > 0) //{ serie.Add(new RptCalificacionesAlumnoPeriodo { calificacion = (listaParcial.Count > 0) ? listaParcial.Count.ToString() : string.Empty, asignatura = i.ToString() }); //} } if (serie != null && serie.Count > 0) { DataTable dt = UIUtilidades.BuildDataTable<RptCalificacionesAlumnoPeriodo>(serie); // En alumno envio la nota y en calificación la cantidad de esa nota que se produjo rptCalificaciones.graficoReporte.AgregarSerie(asignatura.Text, dt, "asignatura", "calificacion"); } } } rptCalificaciones.graficoReporte.Titulo = "Distribución de Calificaciones \n" + alumno; } else { // promedio de calificaciones por curso en un determinado periodo var serie = new List<RptCalificacionesAlumnoPeriodo>(); foreach (var item in listaAsignatura) { sumaNotas = 0; var listaParcial = listaReporte.FindAll(p => p.asignatura == item.nombre); if (listaParcial.Count > 0) { foreach (var nota in listaParcial) { sumaNotas += Convert.ToInt16(nota.calificacion); } serie.Add(new RptCalificacionesAlumnoPeriodo { calificacion = Math.Round(sumaNotas / listaParcial.Count, 2).ToString(CultureInfo.InvariantCulture), asignatura = item.nombre }); } } DataTable dt = UIUtilidades.BuildDataTable<RptCalificacionesAlumnoPeriodo>(serie); rptCalificaciones.graficoReporte.AgregarSerie("Promedio", dt, "asignatura", "calificacion"); BLValoresEscalaCalificacion objBLNivelAprobacion = new BLValoresEscalaCalificacion(); ValoresEscalaCalificacion escala = new ValoresEscalaCalificacion(); escala = objBLNivelAprobacion.GetNivelProbacion(); List<ValoresEscalaCalificacion> listaEscala = new List<ValoresEscalaCalificacion>(); foreach (RptCalificacionesAlumnoPeriodo item in serie) { listaEscala.Add(new ValoresEscalaCalificacion { valor = escala.valor, nombre = item.asignatura }); } DataTable dtEscala = UIUtilidades.BuildDataTable<ValoresEscalaCalificacion>(listaEscala); rptCalificaciones.graficoReporte.AgregarSerie("Nivel de Aprobación (" + escala.nombre + ")", dtEscala, "nombre", "valor", true); rptCalificaciones.graficoReporte.Titulo = "Promedio Por Asignatura \n" + ddlCurso.SelectedItem.Text + " - " + ddlCicloLectivo.SelectedItem.Text + alumno; } GenerarDatosGrafico(); rptCalificaciones.graficoReporte.GraficarBarra(); rptCalificaciones.CargarReporte<RptCalificacionesAlumnoPeriodo>(listaReporte); } catch (Exception ex) { Master.ManageExceptions(ex); } }
/// <summary> /// Graficars the promedios. /// </summary> private void GraficarPromedios() { // Cuando se elija try { GenerarDatosGraficoCalificaciones(); Double sumaNotas = 0; rptResultado.graficoReporte.LimpiarSeries(); var serie = new List<RptPromedioCalificacionesPeriodo>(); rptResultado.graficoReporte.habilitarTorta = false; foreach (var item in listaAsignatura) { sumaNotas = 0; var listaParcial = listaReporte.FindAll(p => p.asignatura == item.nombre); if (listaParcial.Count > 0) { foreach (var nota in listaParcial) { sumaNotas += Convert.ToDouble(nota.promedio); } serie.Add(new RptPromedioCalificacionesPeriodo { promedio = Math.Round(sumaNotas / listaParcial.Count, 2).ToString(CultureInfo.InvariantCulture), asignatura = item.nombre //asignatura = "" }); } } DataTable dt = UIUtilidades.BuildDataTable<RptPromedioCalificacionesPeriodo>(serie); rptResultado.graficoReporte.AgregarSerie("Asignatura", dt, "asignatura", "promedio"); //rptResultado.graficoReporte.AgregarSerie("", dt, "asignatura", "promedio"); BLValoresEscalaCalificacion objBLNivelAprobacion = new BLValoresEscalaCalificacion(); ValoresEscalaCalificacion escala = new ValoresEscalaCalificacion(); escala = objBLNivelAprobacion.GetNivelProbacion(); List<ValoresEscalaCalificacion> listaEscala = new List<ValoresEscalaCalificacion>(); foreach (RptPromedioCalificacionesPeriodo item in serie) { listaEscala.Add(new ValoresEscalaCalificacion { valor = escala.valor, nombre = item.asignatura }); } DataTable dtEscala = UIUtilidades.BuildDataTable<ValoresEscalaCalificacion>(listaEscala); rptResultado.graficoReporte.AgregarSerie("Nivel de Aprobación (" + escala.nombre + ")", dtEscala, "nombre", "valor", true); string alumno = string.Empty; if (ddlAlumno.Items.Count > 0 && Convert.ToInt32(ddlAlumno.SelectedValue) > 0) alumno = "\n" + ddlAlumno.SelectedItem.Text + "\n"; string Titulo = "Promedio Por Asignatura \n" + ddlCurso.SelectedItem.Text + " - " + ddlCicloLectivo.SelectedItem.Text; if (ddlPeriodo.Items.Count > 0 && Convert.ToInt32(ddlPeriodo.SelectedValue) > 0) Titulo += " - " + ddlPeriodo.SelectedItem.Text; Titulo += alumno; rptResultado.graficoReporte.Titulo = Titulo; rptResultado.graficoReporte.GraficarBarra(); } catch (Exception ex) { Master.ManageExceptions(ex); } }