/// <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); }
        }
예제 #2
0
        /// <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); }
        }