protected void btnGraph_Click(object sender, EventArgs e) { if (Session["Usuario"] == null) { Response.Redirect("~/Security/frmCerrar.aspx"); } try { if (grdDocumentos01.SelectedIndexes.Count > 0) { var rowIndex = Convert.ToInt32(grdDocumentos01.SelectedIndexes[0]); var rows = (List <DataRow>)HttpContext.Current.Session["rows"]; var list = new List <string>(); foreach (var column in rows[rowIndex].Table.Columns) //GrdMarkBook is Data Grid name { string HeaderName = column.ToString(); // This line Used for find any Column Have Name With Exam if (HeaderName.Contains("201") && !HeaderName.Contains("Variaci")) { list.Add(HeaderName); } } var source = new List <MesCosto>(); foreach (string name in list) { var objCast = string.IsNullOrEmpty(rows[rowIndex][name].ToString()) ? "0" : rows[rowIndex][name].ToString(); var elemento = new MesCosto { mes = name.ToString(), costoUnitario = Convert.ToDecimal(objCast) }; source.Add(elemento); } RadHtmlChart1.Visible = true; grdDocumentos01.Visible = false; PanelGraph.Visible = true; PanelGrid.Visible = false; btnBack.Visible = true; btnGraph.Visible = false; RadHtmlChart1.DataSource = source; RadHtmlChart1.DataBind(); } else { rwmReporte.RadAlert("Ud. Debe seleccionar una fila", 500, 100, "Error al mostrar imagen", ""); } } catch (Exception ex) { rwmReporte.RadAlert(ex.Message, 500, 100, "Error al mostrar imagen", ""); } }
protected void btnGraph_Click(object sender, EventArgs e) { if (Session["Usuario"] == null) { Response.Redirect("~/Security/frmCerrar.aspx"); } try { if (grdDocumentos01.SelectedIndexes.Count > 0) { var rowIndex = Convert.ToInt32(grdDocumentos01.SelectedIndexes[0]); //var rows = (List<DataRow>)HttpContext.Current.Session["rows"]; List <Reporte_CostoVentaResult> listaSource = (List <Reporte_CostoVentaResult>)HttpContext.Current.Session["rows"]; int?kardex = listaSource[rowIndex].Kardex; int mesInicio = dpFecInicio.SelectedDate.Value.Month; int mesFin = dpFecFinal.SelectedDate.Value.Month; var listaFiltro = (from tbl in listaSource where tbl.Kardex == kardex group tbl by new { tbl.Kardex, tbl.Descripcion } into KardexAgrupado select new { nroKardex = KardexAgrupado.Key.Kardex, Descripcion = KardexAgrupado.Key.Descripcion, Enero = KardexAgrupado.Sum(x => x.MG_Enero), Febrero = KardexAgrupado.Sum(x => x.MG_Febrero), Marzo = KardexAgrupado.Sum(x => x.MG_Marzo), Abril = KardexAgrupado.Sum(x => x.MG_Abril), Mayo = KardexAgrupado.Sum(x => x.MG_Mayo), Junio = KardexAgrupado.Sum(x => x.MG_Junio), Julio = KardexAgrupado.Sum(x => x.MG_Julio), Agosto = KardexAgrupado.Sum(x => x.MG_Agosto), Setiembre = KardexAgrupado.Sum(x => x.MG_Setiembre), Octubre = KardexAgrupado.Sum(x => x.MG_Octubre), Noviembre = KardexAgrupado.Sum(x => x.MG_Noviembre), Diciembre = KardexAgrupado.Sum(x => x.MG_Diciembre) }).ToList(); if (listaFiltro.Count == 1) { List <MesCosto> source = new List <MesCosto>(); Dictionary <int, string> MesesAnio = new Dictionary <int, string>(); MesesAnio.Add(1, "Enero"); MesesAnio.Add(2, "Febrero"); MesesAnio.Add(3, "Marzo"); MesesAnio.Add(4, "Abril"); MesesAnio.Add(5, "Mayo"); MesesAnio.Add(6, "Junio"); MesesAnio.Add(7, "Julio"); MesesAnio.Add(8, "Agosto"); MesesAnio.Add(9, "Setiembre"); MesesAnio.Add(10, "Octubre"); MesesAnio.Add(11, "Noviembre"); MesesAnio.Add(12, "Diciembre"); if (mesInicio > mesFin) { mesFin = mesFin + 12; } int difMeses = (mesFin - mesInicio) + 1; for (int i = 0; i <= difMeses - 1; i++) { string cadena_mes = ""; //string cadena_anio = ""; if ((mesInicio + i) > 12) { cadena_mes = MesesAnio[(mesInicio + i) - 12]; //cadena_anio = fechaFinal.Year.ToString(); } else { cadena_mes = MesesAnio[mesInicio + i]; //cadena_anio = fechaInicio.Year.ToString(); } MesCosto itemMes = new MesCosto(); itemMes.mes = cadena_mes; switch (cadena_mes) { case "Enero": itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Enero); break; case "Febrero": itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Febrero); break; case "Marzo": itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Marzo); break; case "Abril": itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Abril); break; case "Mayo": itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Mayo); break; case "Junio": itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Junio); break; case "Julio": itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Julio); break; case "Agosto": itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Agosto); break; case "Setiembre": itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Setiembre); break; case "Octubre": itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Octubre); break; case "Noviembre": itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Noviembre); break; case "Diciembre": itemMes.costoUnitario = Convert.ToDecimal(listaFiltro[0].Diciembre); break; default: itemMes.costoUnitario = 0; break; } //itemMes.costoUnitario = listaFiltro[0]. source.Add(itemMes); } lblTitulo.Text = "Costo de ventas por producto " + dpFecInicio.SelectedDate.Value.Month.ToString("00") + "-" + dpFecInicio.SelectedDate.Value.Year.ToString() + " hasta " + dpFecFinal.SelectedDate.Value.Month.ToString("00") + "-" + dpFecFinal.SelectedDate.Value.Year.ToString(); RadHtmlChart1.ChartTitle.Text = "Fluctuación del % Margen Unitario por Kardex " + kardex.ToString().Trim() + " : " + listaFiltro[0].Descripcion; RadHtmlChart1.Visible = true; grdDocumentos01.Visible = false; PanelGraph.Visible = true; PanelGrid.Visible = false; btnBack.Visible = true; btnGraph.Visible = false; RadHtmlChart1.DataSource = source; RadHtmlChart1.DataBind(); } } else { throw new System.ArgumentException("Por favor seleccione un registro de la lista de Costos de Ventas"); } } catch (ArgumentException ex1) { rwmReporte.RadAlert(ex1.Message, 300, 120, "Mensaje", ""); } catch (Exception ex) { rwmReporte.RadAlert(ex.Message, 500, 100, "Error al mostrar imagen", ""); } }