/// <summary> /// Método que permite consultar /// las actividades que presenten retrasos o superen el estimado en los diferente paquetes de proyecto /// </summary> /// <returns>vo_lista valor del resultado de la ejecución de la sentencia</returns> public static List<cls_consActRetrasadas> ConsultaActRetrasadas(cls_consActRetrasadas po_consActRetrasadas) { List<cls_consActRetrasadas> vo_lista = null; cls_consActRetrasadas vo_consActRetrasadas = null; try { String vs_comando = "PA_estd_consultaActRetrasadas"; cls_parameter[] vu_parametros = { new cls_parameter("@paramProyecto", po_consActRetrasadas.pPK_proyecto), new cls_parameter("@paramPaquete", po_consActRetrasadas.pPK_paquete), new cls_parameter("@paramFechaInicio", po_consActRetrasadas.pFechaDesde), new cls_parameter("@paramFechaFin", po_consActRetrasadas.pFechaHasta), new cls_parameter("@paramUsuario", po_consActRetrasadas.pPK_usuario) }; DataSet vu_dataSet = cls_sqlDatabase.executeDataset(vs_comando, true, vu_parametros); vo_lista = new List<cls_consActRetrasadas>(); for (int i = 0; i < vu_dataSet.Tables[0].Rows.Count; i++) { vo_consActRetrasadas = new cls_consActRetrasadas(); vo_consActRetrasadas.pNombreActividad = vu_dataSet.Tables[0].Rows[i]["nombreActividad"].ToString(); vo_consActRetrasadas.pDiasRetraso = Convert.ToDecimal(vu_dataSet.Tables[0].Rows[i]["diasRetraso"].ToString()); vo_consActRetrasadas.pHorasRetraso = Convert.ToDecimal(vu_dataSet.Tables[0].Rows[i]["horasRetraso"].ToString()); vo_lista.Add(vo_consActRetrasadas); } return vo_lista; } catch (Exception po_exception) { throw new Exception("Ocurrió un error al obtener el gráfico de consulta de actividades retrasadas por proyecto.", po_exception); } }
/// <summary> /// Método que obtiene la información con la que se va a cargar en gráfico /// </summary> private void obtenerGraficoConsultaRetrasos(int pi_proyecto, int pi_paquete, DateTime pd_fechaDesde, DateTime pd_fechaHasta, string ps_usuario) { try { //Se procede a obtener la información por proyecto cls_consActRetrasadas vo_consActRetrasadas = new cls_consActRetrasadas(); vo_consActRetrasadas.pPK_proyecto = pi_proyecto; vo_consActRetrasadas.pPK_paquete = pi_paquete; vo_consActRetrasadas.pFechaDesde = pd_fechaDesde; vo_consActRetrasadas.pFechaHasta = pd_fechaHasta; vo_consActRetrasadas.pPK_usuario = ps_usuario; List<cls_consActRetrasadas> vl_consultaActividades = cls_gestorEstadistico.ConsultaActRetrasadas(vo_consActRetrasadas); //Se realiza el binding de la información que se obtuvo en la consulta Grafico.Series["DiasRetraso"].Points.DataBindXY(vl_consultaActividades, "pNombreActividad", vl_consultaActividades, "pDiasRetraso"); // Set radar chart type Grafico.Series["DiasRetraso"].ChartType = SeriesChartType.Column; //// Set radar chart style (Area, Line or Marker) //Grafico.Series["DiasRetraso"]["RadarDrawingStyle"] = "Line"; //// Set circular area drawing style (Circle or Polygon) //Grafico.Series["DiasRetraso"]["AreaDrawingStyle"] = "Circle"; //// Set labels style (Auto, Horizontal, Circular or Radial) //Grafico.Series["DiasRetraso"]["CircularLabelsStyle"] = "Horizontal"; // Show as 3D //Grafico.ChartAreas["AreaGrafico"].Area3DStyle.Enable3D = true; Grafico.Series["DiasRetraso"].Color = Color.LightBlue; // Enable AntiAliasing for either Text and Graphics or just Graphics //Grafico.AntiAliasing = AntiAliasingStyles.All; // AntiAliasingStyles.Graphics and AntiAliasingStyles.Text // create the destination series and add it to the chart Series destSeries = new Series("HorasDeMas"); if (Grafico.Series.IndexOf("HorasDeMas") != 1) { Grafico.Series.Add(destSeries); } //Se realiza el binding de la información que se obtuvo en la consulta Grafico.Series["HorasDeMas"].Points.DataBindXY(vl_consultaActividades, "pNombreActividad", vl_consultaActividades, "pHorasRetraso"); Grafico.Series["HorasDeMas"]["BackColor"] = "Transparent"; // Set radar chart type Grafico.Series["HorasDeMas"].ChartType = SeriesChartType.Column; //// Set radar chart style (Area, Line or Marker) //Grafico.Series["HorasDeMas"]["RadarDrawingStyle"] = "Line"; //// Set circular area drawing style (Circle or Polygon) //Grafico.Series["HorasDeMas"]["AreaDrawingStyle"] = "Circle"; //// Set labels style (Auto, Horizontal, Circular or Radial) //Grafico.Series["HorasDeMas"]["CircularLabelsStyle"] = "Horizontal"; // Show as 3D //Grafico.ChartAreas["AreaGrafico"].Area3DStyle.Enable3D = true; Grafico.Series["HorasDeMas"].Color = Color.Yellow; //Se aplica el estilo pastel a los colores definidos para el gráfico Grafico.Palette = ChartColorPalette.Light; Grafico.ApplyPaletteColors(); //Para que el estilo tome efecto se debe asignar a cada uno de los puntos de la serie en el gráfico foreach (var series in Grafico.Series) { foreach (var point in series.Points) { point.Color = Color.FromArgb(220, point.Color); } } // Properties Grafico.ChartAreas["AreaGrafico"].BackColor = Color.Transparent; //Grafico.ChartAreas["AreaGrafico"].AxisY.Interval = 5; //Grafico.ChartAreas["AreaGrafico"].AxisY.IntervalType = DateTimeIntervalType.Number; //Grafico.ChartAreas["AreaGrafico"].AxisX.Interval = 2; //Grafico.ChartAreas["AreaGrafico"].AxisX.IntervalType = DateTimeIntervalType.Number; //Grafico.ChartAreas["AreaGrafico"].AxisX.TextOrientation = TextOrientation.Rotated90; //Grafico.ChartAreas["AreaGrafico"].AxisX.LabelStyle.IsEndLabelVisible = false; Grafico.ChartAreas["AreaGrafico"].AxisX.Title = "Actividades"; Grafico.ChartAreas["AreaGrafico"].AxisY.Title = "Atrasos"; } catch (Exception po_exception) { throw new Exception("Ocurrió un error al cargar el gráfico con la información de la base de datos.", po_exception); } }