private AxisItem findYAxis(int extent_, string yLabelformat_) { AxisItem ret = null; int yAxisCount = 0; foreach (AxisItem axis in ultraChart.CompositeChart.ChartAreas[0].Axes) if (axis.OrientationType == AxisNumber.Y_Axis) { ++yAxisCount; if (axis.OrientationType == AxisNumber.Y_Axis && axis.Extent == extent_) { ret = axis; break; } } if (ret == null) { ret = new AxisItem(); ret.DataType = Infragistics.UltraChart.Shared.Styles.AxisDataType.Numeric; ret.Extent = extent_; ret.Key = string.Format("axis{0}", ((int)(ultraChart.CompositeChart.ChartAreas[0].Axes.Count + 1)).ToString()); ret.Labels.HorizontalAlign = System.Drawing.StringAlignment.Near; ret.Labels.ItemFormatString = "<DATA_VALUE:##0.##%>"; ret.Labels.Orientation = Infragistics.UltraChart.Shared.Styles.TextOrientation.Horizontal; ret.Labels.SeriesLabels.HorizontalAlign = System.Drawing.StringAlignment.Center; ret.Labels.SeriesLabels.Orientation = Infragistics.UltraChart.Shared.Styles.TextOrientation.Horizontal; ret.Labels.SeriesLabels.VerticalAlign = System.Drawing.StringAlignment.Center; ret.Labels.VerticalAlign = System.Drawing.StringAlignment.Center; ret.LineThickness = 1; ret.MajorGridLines.AlphaLevel = ((byte)(255)); ret.MajorGridLines.Color = System.Drawing.Color.Gainsboro; ret.MajorGridLines.DrawStyle = Infragistics.UltraChart.Shared.Styles.LineDrawStyle.Dot; ret.MajorGridLines.Visible = true; ret.MinorGridLines.AlphaLevel = ((byte)(255)); ret.MinorGridLines.Color = System.Drawing.Color.LightGray; ret.MinorGridLines.DrawStyle = Infragistics.UltraChart.Shared.Styles.LineDrawStyle.Dot; ret.MinorGridLines.Visible = false; ret.OrientationType = Infragistics.UltraChart.Shared.Styles.AxisNumber.Y_Axis; ret.SetLabelAxisType = Infragistics.UltraChart.Core.Layers.SetLabelAxisType.GroupBySeries; ++yAxisCount; ultraChart.CompositeChart.ChartAreas[0].Axes.Add(ret); } ret.Labels.FontColor = ret.LineColor = ColorAttribute.GetColor(yAxisCount - 1); ret.Labels.ItemFormatString = string.Format("<DATA_VALUE:{0}>", yLabelformat_); return ret; }
private void buildCompareChart(string datestart, string dateEnd) { RadHtmlChart chartCompare = new RadHtmlChart(); int boid = 0; DataTable dsSource = new DataTable(); Int32.TryParse(CU.getBOID().ToString(),out boid); string sl = "Số lượng"; string gt = "Giá trị(triệu đồng)"; chartCompare.Height = Unit.Pixel(500); ColumnSeries lineSL = new ColumnSeries(); dsSource = GetDataChartCompare(boid, datestart, dateEnd); chartCompare.DataSource = dsSource; chartCompare.DataBind(); ColumnSeries lineGT = new ColumnSeries(); lineSL.DataFieldY = "SumQuantity"; lineSL.Name = sl; lineSL.TooltipsAppearance.ClientTemplate = sl; lineGT.DataFieldY = "SumValue"; lineGT.Name = gt; lineGT.TooltipsAppearance.ClientTemplate = gt; for (int i = 0; i < dsSource.Rows.Count;i++) { AxisItem axitItem = new AxisItem(dsSource.Rows[i]["productno"].ToString()); chartCompare.PlotArea.XAxis.Items.Add(axitItem); } chartCompare.PlotArea.Series.Add(lineSL); chartCompare.PlotArea.Series.Add(lineGT); chartCompare.ChartTitle.Text = "Biểu đồ so sánh doanh số sản phẩm"; chartCompare.ChartTitle.Appearance.BackgroundColor = System.Drawing.Color.GreenYellow; pl.Controls.Add(chartCompare); }
private void ReporteVenta_Cliente(string ID_Vendedor, DateTime fechaInico, DateTime fechaFinal) { ReporteVentaWCFClient objReporteVentaWCF = new ReporteVentaWCFClient(); rhcParticipacion.PlotArea.Series[0].Items.Clear(); try { #region Venta de productos List <gsDocVenta_ReporteVenta_ProductoResult> lstProductos = objReporteVentaWCF.DocVenta_ReporteVenta_Producto(((Usuario_LoginResult)Session["Usuario"]).idEmpresa, ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario, ID_Vendedor, fechaInico, fechaFinal).ToList(); grdProducto.DataSource = lstProductos; grdProducto.DataBind(); ViewState["lstProductos"] = JsonHelper.JsonSerializer(lstProductos); #endregion #region Venta al 80% y 20% List <gsDocVenta_ReporteVenta_ClienteResult> lst = objReporteVentaWCF.DocVenta_ReporteVenta_Cliente(((Usuario_LoginResult)Session["Usuario"]).idEmpresa, ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario, ID_Vendedor, fechaInico, fechaFinal, null).ToList().OrderByDescending(x => x.ValorVenta).ToList(); decimal sum = (decimal)lst.Sum(i => i.ValorVenta); //decimal sumPlanif = (decimal)lst.Sum(i => i.ValorPlanificado); decimal acumulado = 0; bool paso80 = false; foreach (var cliente in lst) { SeriesItem item = new SeriesItem(); if (sum > 0) { if (((int)((cliente.ValorVenta / sum) * 100)) > 0) { item.YValue = ((int)((cliente.ValorVenta / sum) * 100)); item.Name = string.Format("{0}<br/>Valor Venta:${1}K<br/>Presupuesto:${2}K<br/>Avance:{3}%<br/>Participación:{4}%", cliente.ID_Cliente + " - " + cliente.Cliente.Replace("'", string.Empty), Math.Round((decimal)cliente.ValorVenta / 1000, 2), Math.Round((decimal)cliente.ValorPlanificado / 1000, 2), cliente.Avance, item.YValue); rhcParticipacion.PlotArea.Series[0].Items.Add(item); } } if (cliente.ValorVenta > 0) { acumulado = acumulado + (decimal)cliente.ValorVenta; if (!paso80) { if (cliente.Cliente.Length > 30) { rhcCliente80.PlotArea.XAxis.Items.Add(cliente.Cliente.Substring(0, 30).Replace("'", string.Empty)); } else { rhcCliente80.PlotArea.XAxis.Items.Add(cliente.Cliente.Replace("'", string.Empty)); } item = new SeriesItem(); item.Name = cliente.Cliente.Replace("'", string.Empty); item.YValue = Math.Round((decimal)cliente.ValorVenta / 1000, 2); this.rhcCliente80.PlotArea.Series[0].Items.Add(item); item = new SeriesItem(); item.Name = cliente.Cliente.Replace("'", string.Empty); item.YValue = Math.Round((decimal)cliente.ValorPlanificado / 1000, 2); this.rhcCliente80.PlotArea.Series[1].Items.Add(item); } else { if (cliente.Cliente.Length > 30) { rhcCliente20.PlotArea.XAxis.Items.Add(cliente.Cliente.Substring(0, 30).Replace("'", string.Empty)); } else { rhcCliente20.PlotArea.XAxis.Items.Add(cliente.Cliente.Replace("'", string.Empty)); } item = new SeriesItem(); item.Name = cliente.Cliente.Replace("'", string.Empty); item.YValue = Math.Round((decimal)cliente.ValorVenta / 1000, 2); this.rhcCliente20.PlotArea.Series[0].Items.Add(item); item = new SeriesItem(); item.Name = cliente.Cliente.Replace("'", string.Empty); item.YValue = Math.Round((decimal)cliente.ValorPlanificado / 1000, 2); this.rhcCliente20.PlotArea.Series[1].Items.Add(item); } if (acumulado / sum * 100 >= 80) { paso80 = true; } } } #endregion #region Datos principales //Datos principales de la venta gsDocVenta_ReporteVenta_VendedorResult rv = objReporteVentaWCF.DocVenta_ReporteVenta_Vendedor(((Usuario_LoginResult)HttpContext.Current.Session["Usuario"]).idEmpresa, ((Usuario_LoginResult)HttpContext.Current.Session["Usuario"]).codigoUsuario, ID_Vendedor, fechaInico, fechaFinal).ToList().Single(); rrgAvance.Pointer.Value = rv.Avance; lblPronostico.Text = string.Format("${0}", Math.Round((decimal)rv.ValorPlanificado, 0).ToString("#,#", CultureInfo.InvariantCulture)); lblValorVenta.Text = string.Format("${0}", Math.Round((decimal)rv.ValorVenta, 0).ToString("#,#", CultureInfo.InvariantCulture)); lblDiferencia.Text = string.Format("${0}", Math.Round((decimal)rv.Diferencia, 0).ToString("#,#", CultureInfo.InvariantCulture)); lblAvance.Text = "Avance: " + Math.Round((decimal)rv.Avance, 0).ToString() + "%"; lblCantTotal.Text = lst.Count.ToString(); lblCantVenta.Text = lst.FindAll(x => x.ValorVenta > 0).Count.ToString(); lblCantNoVenta.Text = lst.FindAll(x => x.ValorVenta <= 0).Count.ToString(); #endregion #region Cliente sin venta grdCliente.DataSource = lst.FindAll(x => x.ValorVenta <= 0).OrderByDescending(x => x.ValorPlanificado); grdCliente.DataBind(); #endregion #region Venta diaria List <gsDocVenta_ReporteVenta_FechaResult> lstFecha = objReporteVentaWCF.DocVenta_ReporteVenta_Fecha(((Usuario_LoginResult)Session["Usuario"]).idEmpresa, ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario, ID_Vendedor, fechaInico, fechaFinal).ToList(); acumulado = 0; for (DateTime day = fechaInico; DateTime.Compare(day, fechaFinal) <= 0; day = day.AddDays(1)) { AxisItem xitem = new AxisItem(); xitem.LabelText = day.ToString("dd/MM/yyyy"); rhcDiario.PlotArea.XAxis.Items.Add(xitem); gsDocVenta_ReporteVenta_FechaResult objVFecha = lstFecha.Find(x => x.Fecha == day); SeriesItem serie1 = new SeriesItem(); if (objVFecha != null) { acumulado = acumulado + (decimal)objVFecha.ValorVenta; serie1.YValue = Math.Round((decimal)objVFecha.ValorVenta / 1000, 2); } else { serie1.YValue = 0; } rhcDiario.PlotArea.Series[0].Items.Add(serie1); SeriesItem serie2 = new SeriesItem(); serie2.YValue = Math.Round(acumulado / (decimal)rv.ValorPlanificado * 100, 0); rhcDiario.PlotArea.Series[1].Items.Add(serie2); } //rhcDiario.PlotArea.Series[1].AxisName = "AdditionalAxis"; #endregion lblTitulo.Text = "Reporte " + fechaInico.Year.ToString() + "-" + fechaInico.Month.ToString() + " de " + rv.Vendedor; } catch (Exception ex) { throw ex; } }
private void addAreas() { if (ultraChart.CompositeChart.ChartAreas.Count > 2) return; ultraChart.CompositeChart.ChartAreas.Clear(); for (int i = 0; i < 12; ++i) { ChartArea area = new ChartArea(); AxisItem xAxis = new AxisItem(); AxisItem yAxis = new AxisItem(); Months month = (Months)(i + 1); xAxis.Key = string.Format("xAxis_{0}", i.ToString()); xAxis.DataType = Infragistics.UltraChart.Shared.Styles.AxisDataType.String; xAxis.Labels.Orientation = Infragistics.UltraChart.Shared.Styles.TextOrientation.VerticalLeftFacing; xAxis.Labels.ItemFormat = Infragistics.UltraChart.Shared.Styles.AxisItemLabelFormat.Custom; xAxis.Labels.ItemFormatString = "<ITEM_LABEL>"; xAxis.MajorGridLines.Visible = true; xAxis.OrientationType = Infragistics.UltraChart.Shared.Styles.AxisNumber.X_Axis; xAxis.SetLabelAxisType = Infragistics.UltraChart.Core.Layers.SetLabelAxisType.GroupBySeries; xAxis.Extent = 35; yAxis.Key = string.Format("yAxis_{0}", i.ToString()); yAxis.DataType = Infragistics.UltraChart.Shared.Styles.AxisDataType.Numeric; yAxis.Labels.Orientation = Infragistics.UltraChart.Shared.Styles.TextOrientation.Horizontal; yAxis.Labels.ItemFormat = Infragistics.UltraChart.Shared.Styles.AxisItemLabelFormat.Custom; yAxis.Labels.ItemFormatString="<DATA_VALUE:#,###>"; yAxis.Labels.Font = new Font(yAxis.Labels.Font.FontFamily, 6.0f); yAxis.MajorGridLines.Visible = true; yAxis.OrientationType = Infragistics.UltraChart.Shared.Styles.AxisNumber.Y_Axis; yAxis.SetLabelAxisType = Infragistics.UltraChart.Core.Layers.SetLabelAxisType.GroupBySeries; yAxis.Extent = 18; area.Axes.Add(xAxis); area.Axes.Add(yAxis); area.Key=string.Format("area_{0}",i.ToString()); int x=i, y=i; x = i; if (i > 7) x -= 4; if (i > 3) x -= 4; y = 0; if (i > 3) ++y; if (i > 7) ++y; area.Bounds = new Rectangle(25 * x, 33 * y, 25, 33); area.BoundsMeasureType = Infragistics.UltraChart.Shared.Styles.MeasureType.Percentage; ultraChart.CompositeChart.ChartAreas.Add(area); DataTable d = new DataTable(); d.Columns.Add("Date", typeof(string)); d.Columns.Add(string.Format("{0} Perf",month.ToString()), typeof(double)); NumericSeries ns = new NumericSeries { Data = {LabelColumn = "Date", ValueColumn = string.Format("{0} Perf", month.ToString())}, Label = string.Format("{0} value", month.ToString()), Key = string.Format("series_{0}", i.ToString()) }; ultraChart.CompositeChart.Series.Add(ns); ChartLayerAppearance chart = new ChartLayerAppearance { ChartComponent = ultraChart, ChartArea = area, AxisX = area.Axes[0], AxisY = area.Axes[1], ChartType = ChartType.ColumnChart, Key = string.Format("chart_{0}", i.ToString()) }; ultraChart.CompositeChart.ChartLayers.Add(chart); chart.Series.Add(ns); ns.Data.DataSource = d; chart.SeriesList = string.Format("{0}", ns.Key); ns.DataBind(); ns.PEs.Add(new PaintElement(ColorAttribute.GetColor(i))); dts.Add(d); } }
private void ReporteVenta_Cliente(int periodo, int year, int mes, int id_zona, string id_sectorista) { int Periodo; int TotalDias = 0; decimal EsperadoDia = 0; decimal EsperadoAcumulado = 0; DateTime fechaInico; DateTime fechaFinal; fechaInico = Convert.ToDateTime(year + "-" + mes + "-" + "1"); fechaFinal = fechaInico.AddMonths(1).AddDays(-1); TimeSpan ts = fechaFinal - fechaInico; TotalDias = ts.Days + 1; CobranzasWCFClient objCobranzasWCF = new CobranzasWCFClient(); //rhcParticipacion.PlotArea.Series[0].Items.Clear(); try { #region Venta al 80% y 20% List <gsReporteCobranzas_Poryectadas_Vendedor_DetalleResult> lst = objCobranzasWCF.Reporte_CobranzasProyectadasVendedorDetalle(((Usuario_LoginResult)Session["Usuario"]).idEmpresa, ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario, mes, year, periodo, id_zona, id_sectorista).ToList().OrderByDescending(x => x.ImporteCobrado).ToList(); decimal sum = (decimal)lst.Sum(i => i.ImporteCobrado); decimal acumulado = 0; bool paso80 = false; foreach (var cliente in lst) { SeriesItem item = new SeriesItem(); if (sum > 0) { if (((int)((decimal.Parse(cliente.ImporteCobrado.ToString()) / sum) * 100)) > 0) { item.YValue = ((int)((decimal.Parse(cliente.ImporteCobrado.ToString()) / sum) * 100)); item.Name = string.Format("{0}<br/>Valor Cobrado:${1}K<br/>Proyectado:${2}K<br/>Avance:{3}%<br/>Participación:{4}%", cliente.Cliente + " - " + cliente.ImporteCobrado.ToString().Replace("'", string.Empty), Math.Round(decimal.Parse(cliente.ImporteCobrado.ToString()) / 1000, 2), Math.Round((decimal)cliente.ImporteProyectado / 1000, 2), cliente.Avance, item.YValue); //rhcParticipacion.PlotArea.Series[0].Items.Add(item); } } if (cliente.ImporteCobrado > 0) { acumulado = acumulado + (decimal)cliente.ImporteCobrado; if (!paso80) { if (cliente.Cliente.Length > 30) { rhcCliente80.PlotArea.XAxis.Items.Add(cliente.Cliente.Substring(0, 30).Replace("'", string.Empty)); } else { rhcCliente80.PlotArea.XAxis.Items.Add(cliente.Cliente.Replace("'", string.Empty)); } item = new SeriesItem(); item.Name = cliente.Id_Cliente.Replace("'", string.Empty); item.YValue = Math.Round((decimal)cliente.ImporteCobrado / 1000, 2); this.rhcCliente80.PlotArea.Series[0].Items.Add(item); item = new SeriesItem(); item.Name = cliente.Cliente.Replace("'", string.Empty); item.YValue = Math.Round((decimal)cliente.ImporteProyectado / 1000, 2); this.rhcCliente80.PlotArea.Series[1].Items.Add(item); } else { if (cliente.Cliente.Length > 30) { rhcCliente20.PlotArea.XAxis.Items.Add(cliente.Cliente.Substring(0, 30).Replace("'", string.Empty)); } else { rhcCliente20.PlotArea.XAxis.Items.Add(cliente.Cliente.Replace("'", string.Empty)); } item = new SeriesItem(); item.Name = cliente.Cliente.Replace("'", string.Empty); item.YValue = Math.Round((decimal)(cliente.ImporteCobrado) / 1000, 2); this.rhcCliente20.PlotArea.Series[0].Items.Add(item); item = new SeriesItem(); item.Name = cliente.Cliente.Replace("'", string.Empty); item.YValue = Math.Round((decimal)cliente.ImporteProyectado / 1000, 2); this.rhcCliente20.PlotArea.Series[1].Items.Add(item); } if (acumulado / sum * 100 >= 80) { paso80 = true; } } } #endregion #region Datos principales //Datos principales de la venta gsReporteCobranzas_Poryectadas_VendedorResult[] rvP = objCobranzasWCF.Reporte_CobranzasProyectadasVendedor(((Usuario_LoginResult)HttpContext.Current.Session["Usuario"]).idEmpresa, ((Usuario_LoginResult)HttpContext.Current.Session["Usuario"]).codigoUsuario, mes, year, periodo, id_zona, null); gsReporteCobranzas_Poryectadas_VendedorResult rv = new gsReporteCobranzas_Poryectadas_VendedorResult(); if (rvP.Count() > 0) { rv = rvP.ToList().Single(); rrgAvanceReal.Pointer.Value = decimal.Parse(rv.AvanceCobrado.ToString()); lblAvanceReal.Text = "Avance Real: " + Math.Round((decimal)rv.AvanceCobrado, 0).ToString() + "%"; rrgAvanceEsperado.Pointer.Value = decimal.Parse(rv.AvanceEsperado.ToString()); lblAvanceEsperado.Text = "Avance Esperado: " + Math.Round((decimal)rv.AvanceEsperado, 0).ToString() + "%"; //- Cuadro de periodos //lblPronostico.Text = string.Format("${0}", Math.Round((decimal)rv.ImporteProyectado, 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblValorVenta.Text = string.Format("${0}", Math.Round((decimal)rv.ImporteCobrado, 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblDiferencia.Text = string.Format("${0}", Math.Round((decimal)rv.Diferencia, 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblCantTotal.Text = lst.Count.ToString(); //lblCantVenta.Text = lst.FindAll(x => x.ImporteCobrado > 0).Count.ToString(); //lblCantNoVenta.Text = lst.FindAll(x => x.ImporteCobrado <= 0).Count.ToString(); } gsReporteCancelados_ProyectadoResult[] rvCobradoP = objCobranzasWCF.Reporte_CobranzasProyectadas_Sectorista(((Usuario_LoginResult)HttpContext.Current.Session["Usuario"]).idEmpresa, ((Usuario_LoginResult)HttpContext.Current.Session["Usuario"]).codigoUsuario, mes, year, periodo, id_zona, id_sectorista); gsReporteCancelados_ProyectadoResult rvCobrado = new gsReporteCancelados_ProyectadoResult(); if (rvCobradoP.Count() > 0) { rvCobrado = rvCobradoP.ToList().Single(); //lblVencido01a30.Text = string.Format("${0}", Math.Round((decimal)rvCobrado.Importe_01a30, 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblVencido31a60.Text = string.Format("${0}", Math.Round((decimal)rvCobrado.Importe_31a60, 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblVencido61a120.Text = string.Format("${0}", Math.Round((decimal)rvCobrado.Importe_61a120, 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblVencido121a360.Text = string.Format("${0}", Math.Round((decimal)rvCobrado.Importe_121a360, 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblVencido361aMas.Text = string.Format("${0}", Math.Round((decimal)(rvCobrado.Importe_361a720 + rvCobrado.Importe_721amas), 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblNoVencido.Text = string.Format("${0}", Math.Round((decimal)rvCobrado.Importe_NoVencido, 0).ToString("#,#", CultureInfo.InvariantCulture)); } else { //lblVencido01a30.Text = string.Format("${0}", Math.Round((decimal)0, 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblVencido31a60.Text = string.Format("${0}", Math.Round((decimal)0, 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblVencido61a120.Text = string.Format("${0}", Math.Round((decimal)0, 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblVencido121a360.Text = string.Format("${0}", Math.Round((decimal)0, 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblVencido361aMas.Text = string.Format("${0}", Math.Round((decimal)(0), 0).ToString("#,#", CultureInfo.InvariantCulture)); //lblNoVencido.Text = string.Format("${0}", Math.Round((decimal)0, 0).ToString("#,#", CultureInfo.InvariantCulture)); } #endregion #region Cobro diario List <gsReporteCobranzas_Poryectadas_Vendedor_FechaResult> lstFecha = objCobranzasWCF.Reporte_CobranzasProyectadasVendedor_Fecha(((Usuario_LoginResult)Session["Usuario"]).idEmpresa, ((Usuario_LoginResult)Session["Usuario"]).codigoUsuario, mes, year, periodo, id_zona, null).ToList(); acumulado = 0; EsperadoDia = (decimal)rv.ImporteProyectado / TotalDias; EsperadoAcumulado = 0; for (DateTime day = fechaInico; DateTime.Compare(day, fechaFinal) <= 0; day = day.AddDays(1)) { AxisItem xitem = new AxisItem(); xitem.LabelText = day.ToString("dd/MM/yyyy"); rhcDiario.PlotArea.XAxis.Items.Add(xitem); gsReporteCobranzas_Poryectadas_Vendedor_FechaResult objVFecha = lstFecha.Find(x => x.FechaCobranza == day); //Completar linea 1 SeriesItem serie1 = new SeriesItem(); if (objVFecha != null) { acumulado = acumulado + (decimal)objVFecha.ImporteCobrado; serie1.YValue = Math.Round((decimal)objVFecha.ImporteCobrado / 1000, 2); } else { serie1.YValue = 0; } rhcDiario.PlotArea.Series[0].Items.Add(serie1); //Completar linea 2 SeriesItem serie2 = new SeriesItem(); if (rv.ImporteProyectado == 0) { serie2.YValue = Math.Round(acumulado / 100 * 100, 0); } else { serie2.YValue = Math.Round(acumulado / (decimal)rv.ImporteProyectado * 100, 0); } rhcDiario.PlotArea.Series[1].Items.Add(serie2); //Completar linea 3 SeriesItem serie3 = new SeriesItem(); EsperadoAcumulado = EsperadoAcumulado + EsperadoDia; //serie3.YValue = Math.Round((decimal)EsperadoAcumulado / 1000, 2); if (rv.ImporteProyectado == 0) { serie2.YValue = Math.Round((decimal)EsperadoAcumulado / 100 * 100, 0); } else { serie3.YValue = Math.Round((decimal)EsperadoAcumulado / (decimal)rv.ImporteProyectado * 100, 0); } rhcDiario.PlotArea.Series[2].Items.Add(serie3); } rhcDiario.PlotArea.Series[1].AxisName = "AdditionalAxis"; rhcDiario.PlotArea.Series[2].AxisName = "AdditionalAxis"; #endregion lblTitulo.Text = "Reporte " + year.ToString() + "-" + mes.ToString() + " de " + rv.Zona_nombre; } catch (Exception ex) { throw ex; } }
private void BindChartData() { try { if (Session["LegendA"] != null) { // lblLegend.Text = "Cashflow for " + Session["LegendA"].ToString(); // Session.Remove("Legend"); } if (Session["LegendB"] != null) { //if (lblLegend.Text.Length == 0) // lblLegend.Text = "Cashflow for " + Session["LegendB"].ToString(); //else // lblLegend.Text = lblLegend.Text + "And " + Session["LegendB"].ToString(); } if (Session["LegendC"] != null) { //if (lblLegend.Text.Length == 0) // lblLegend.Text = "Cashflow for " + Session["LegendC"].ToString(); //else // lblLegend.Text = lblLegend.Text + "And " + Session["LegendC"].ToString(); } DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("EndDate"); dt.Columns.Add("Notation"); if (Session["LegendA"] != null) { dt = GetCompactChartData(Session["LegendA"].ToString()); if (dt != null && dt.Rows.Count > 0) { // RadHtmlChart1.HttpHandlerUrl = ResolveUrl("ChartImage.axd"); AreaSeries chartLoanA = new AreaSeries(); chartLoanA.Name = Session["LegendA"].ToString(); object maxDate = dt.Compute("MAX(EndDate)", null); // chartLoanA.PlotArea.XAxis.MaxValue = Convert.ToDouble(Convert.ToDateTime(maxDate).ToOADate()); for (int i = 0; i < dt.Rows.Count; i++) { var dr = (dt.Rows[i]).ItemArray; SeriesItem item = new SeriesItem(); if (dr[1] != null && dr[2] != null) { CategorySeriesItem seriesItem = new CategorySeriesItem(); //item.ActiveRegion.Tooltip = "On Date" + Convert.ToDateTime(dr[1]) + "Fraction Value is" + Convert.ToDouble(dr[2]); AxisItem axisItem = new AxisItem(); DateTime date = Convert.ToDateTime(dr[1]); item.XValue = date.Ticks; //axisItem.LabelText = //RadHtmlChart1.PlotArea.XAxis.LabelsAppearance.RotationAngle = 60; string month = date.Date.Month.ToString(); if (month.Length == 1) { month = "0" + month; } string str = month + date.Date.Year.ToString(); RadHtmlChart1.PlotArea.XAxis.Items.Add(str); item.YValue = Convert.ToDecimal(dr[2].ToString()); //chartLoanA.Items.Add(item); seriesItem.Y = Convert.ToDecimal(dr[2].ToString()); chartLoanA.SeriesItems.Add(seriesItem); } } chartLoanA.LabelsAppearance.Visible = false; chartLoanA.LineAppearance.LineStyle = ExtendedLineStyle.Step; RadHtmlChart1.PlotArea.Series.Add(chartLoanA); } } if (Session["LegendB"] != null) { dt = GetCompactChartData(Session["LegendB"].ToString()); if (dt != null && dt.Rows.Count > 0) { AreaSeries chartLoanB = new AreaSeries(); chartLoanB.Name = Session["LegendB"].ToString(); for (int i = 0; i < dt.Rows.Count; i++) { var dr = (dt.Rows[i]).ItemArray; SeriesItem item = new SeriesItem(); if (dr[1] != null && dr[2] != null) { CategorySeriesItem seriesItem = new CategorySeriesItem(); DateTime date = Convert.ToDateTime(dr[1]); //item.XValue = date.ToOADate(); //item.YValue = Convert.ToDouble(dr[2]); item.YValue = Convert.ToDecimal(dr[2].ToString()); //chartLoanA.Items.Add(item); string month = date.Date.Month.ToString(); if (month.Length == 1) { month = "0" + month; } string str = month + date.Date.Year.ToString(); RadHtmlChart1.PlotArea.XAxis.Items.Add(str); seriesItem.Y = Convert.ToDecimal(dr[2].ToString()); chartLoanB.SeriesItems.Add(seriesItem); } } chartLoanB.LabelsAppearance.Visible = false; chartLoanB.LineAppearance.LineStyle = ExtendedLineStyle.Step; RadHtmlChart1.PlotArea.Series.Add(chartLoanB); } } if (Session["LegendC"] != null) { dt = GetCompactChartData(Session["LegendC"].ToString()); if (dt != null && dt.Rows.Count > 0) { AreaSeries chartLoanC = new AreaSeries(); chartLoanC.Name = Session["LegendC"].ToString(); for (int i = 0; i < dt.Rows.Count; i++) { var dr = (dt.Rows[i]).ItemArray; SeriesItem item = new SeriesItem(); if (dr[1] != null && dr[2] != null) { CategorySeriesItem seriesItem = new CategorySeriesItem(); DateTime date = Convert.ToDateTime(dr[1]); //item.XValue = date.ToOADate(); //item.YValue = Convert.ToDouble(dr[2]); item.YValue = Convert.ToDecimal(dr[2].ToString()); //chartLoanA.Items.Add(item); string month = date.Date.Month.ToString(); if (month.Length == 1) { month = "0" + month; } string str = month + date.Date.Year.ToString(); RadHtmlChart1.PlotArea.XAxis.Items.Add(str); seriesItem.Y = Convert.ToDecimal(dr[2].ToString()); chartLoanC.SeriesItems.Add(seriesItem); } } chartLoanC.LabelsAppearance.Visible = false; chartLoanC.LineAppearance.LineStyle = ExtendedLineStyle.Step; RadHtmlChart1.PlotArea.Series.Add(chartLoanC); } } } //RadHtmlChart1.DataSource = GetData(); //RadHtmlChart1.DataBind(); // tempCalculatedList = null; catch (Exception) { } }
public void Create(ConstructGen<double> wts_, FXGroup[] groups_) { ConstructGen<double> groupConv = new ConstructGen<double>(groups_.Length); groupConv.ColumnHeadings = groups_.Select(x => x.ToString()).ToArray(); Currency[] ccys = wts_.ColumnHeadings.Select(x => Singleton<FXIDs>.Instance[x]).ToArray(); List<int[]> indicies =new List<int[]>(); foreach(FXGroup group in groups_) { List<int> groupIndicies=new List<int>(); for(int i=0;i<ccys.Length;++i) if(ccys[i].IsGroup(group)) groupIndicies.Add(i); indicies.Add(groupIndicies.ToArray()); } foreach (DateTime date in wts_.Dates) { double[] dateWeights = wts_.GetValues(date); double[] buckets = new double[groups_.Length]; for(int g=0;g<groups_.Length;++g) foreach (int index in indicies[g]) buckets[g] += dateWeights[index]; groupConv.SetValues(date, buckets); } DataTable dt1 = groupConv.ToDataTable(groupConv.ColumnHeadings, "Date", "dd-MMM-yyyy"); Chart.ChartType = Infragistics.UltraChart.Shared.Styles.ChartType.Composite; ChartArea area = new ChartArea(); Chart.CompositeChart.ChartAreas.Add(area); AxisItem axisY = new AxisItem(); axisY.Extent = 50; axisY.DataType = AxisDataType.Numeric; axisY.OrientationType = AxisNumber.Y_Axis; axisY.LineColor = Color.Blue; axisY.Labels.Visible = true; area.Axes.Add(axisY); AxisItem axisX = new AxisItem(); axisX.DataType = AxisDataType.String; axisX.Extent = 80; axisX.SetLabelAxisType = Infragistics.UltraChart.Core.Layers.SetLabelAxisType.GroupBySeries; axisX.OrientationType = AxisNumber.X_Axis; axisX.LineColor = Color.Blue; axisX.Labels.Orientation = TextOrientation.VerticalLeftFacing; axisX.Labels.SeriesLabels.Orientation = TextOrientation.VerticalLeftFacing; area.Axes.Add(axisX); AxisItem axisX2 = new AxisItem(); axisX2.DataType = AxisDataType.String; axisX2.Extent = 80; axisX2.OrientationType = AxisNumber.X_Axis; axisX2.LineColor = Color.Blue; axisX2.Labels.Orientation = TextOrientation.VerticalLeftFacing; axisX2.Labels.SeriesLabels.Orientation = TextOrientation.VerticalLeftFacing; axisX2.SetLabelAxisType = SetLabelAxisType.ContinuousData; area.Axes.Add(axisX2); ChartLayerAppearance myColumnLayer = new ChartLayerAppearance(); myColumnLayer.ChartType = ChartType.StackColumnChart; myColumnLayer.ChartArea = area; foreach (FXGroup group in groups_) { NumericSeries series1 = new NumericSeries(); series1.Key = group.ToString(); series1.DataBind(dt1, group.ToString(), "Date"); series1.PEs.Add(new PaintElement(ColorAttribute.GetAttribute(group).Color)); myColumnLayer.Series.Add(series1); Chart.CompositeChart.Series.Add(series1); } DataTable dt2 = wts_.SumRows().ToDataTable(format_:"dd-MMM-yyyy"); ChartLayerAppearance myColumnLayer2 = new ChartLayerAppearance(); myColumnLayer2.ChartType = ChartType.LineChart; myColumnLayer2.ChartArea = area; NumericSeries seriesA = new NumericSeries(); seriesA.Key = "Sum of Wts"; seriesA.DataBind(dt2, "Value", "Date"); seriesA.PEs.Add(new PaintElement(Color.Orange)); myColumnLayer2.Series.Add(seriesA); Chart.CompositeChart.Series.Add(seriesA); LineChartAppearance la = new LineChartAppearance(); la.Thickness = 4; myColumnLayer2.ChartTypeAppearance = la; myColumnLayer.AxisX = axisX; myColumnLayer.AxisY = axisY; myColumnLayer2.AxisX = axisX2; myColumnLayer2.AxisY = axisY; myColumnLayer.SwapRowsAndColumns = true; this.Chart.CompositeChart.ChartLayers.Add(myColumnLayer); this.Chart.CompositeChart.ChartLayers.Add(myColumnLayer2); EstablishDefaultTooltip(); m_wts = wts_; m_groups = groups_; pbSplitIntoYears.BringToFront(); }
/// <summary> /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// </summary> private void InitializeComponent() { this.axisItem3 = new Contra.AxisItem(); this.axisItem6 = new Contra.AxisItem(); this.axisItem5 = new Contra.AxisItem(); this.axisItem4 = new Contra.AxisItem(); this.axisItem2 = new Contra.AxisItem(); this.axisItem1 = new Contra.AxisItem(); this.SuspendLayout(); // // axisItem3 // this.axisItem3.Axis = "W"; this.axisItem3.AxisText = "W"; this.axisItem3.BackColor = System.Drawing.SystemColors.Control; this.axisItem3.Dock = System.Windows.Forms.DockStyle.Top; this.axisItem3.Highlight = false; this.axisItem3.Location = new System.Drawing.Point(0, 210); this.axisItem3.Name = "axisItem3"; this.axisItem3.ShowSmallTitle = false; this.axisItem3.Size = new System.Drawing.Size(429, 70); this.axisItem3.TabIndex = 2; this.axisItem3.ValueActual = new decimal(new int[] { 0, 0, 0, 0}); this.axisItem3.ValueLogic = new decimal(new int[] { 0, 0, 0, 0}); // // axisItem6 // this.axisItem6.Axis = "Z"; this.axisItem6.AxisText = "Z"; this.axisItem6.BackColor = System.Drawing.SystemColors.Control; this.axisItem6.Dock = System.Windows.Forms.DockStyle.Top; this.axisItem6.Highlight = false; this.axisItem6.Location = new System.Drawing.Point(0, 140); this.axisItem6.Name = "axisItem6"; this.axisItem6.ShowSmallTitle = false; this.axisItem6.Size = new System.Drawing.Size(429, 70); this.axisItem6.TabIndex = 5; this.axisItem6.ValueActual = new decimal(new int[] { 0, 0, 0, 0}); this.axisItem6.ValueLogic = new decimal(new int[] { 0, 0, 0, 0}); // // axisItem5 // this.axisItem5.Axis = "C"; this.axisItem5.AxisText = "C"; this.axisItem5.BackColor = System.Drawing.SystemColors.Control; this.axisItem5.Dock = System.Windows.Forms.DockStyle.Top; this.axisItem5.Highlight = false; this.axisItem5.Location = new System.Drawing.Point(0, 350); this.axisItem5.Name = "axisItem5"; this.axisItem5.ShowSmallTitle = false; this.axisItem5.Size = new System.Drawing.Size(429, 70); this.axisItem5.TabIndex = 4; this.axisItem5.ValueActual = new decimal(new int[] { 0, 0, 0, 0}); this.axisItem5.ValueLogic = new decimal(new int[] { 0, 0, 0, 0}); // // axisItem4 // this.axisItem4.Axis = "B"; this.axisItem4.AxisText = "B"; this.axisItem4.BackColor = System.Drawing.SystemColors.Control; this.axisItem4.Dock = System.Windows.Forms.DockStyle.Top; this.axisItem4.Highlight = false; this.axisItem4.Location = new System.Drawing.Point(0, 280); this.axisItem4.Name = "axisItem4"; this.axisItem4.ShowSmallTitle = false; this.axisItem4.Size = new System.Drawing.Size(429, 70); this.axisItem4.TabIndex = 3; this.axisItem4.ValueActual = new decimal(new int[] { 0, 0, 0, 0}); this.axisItem4.ValueLogic = new decimal(new int[] { 0, 0, 0, 0}); // // axisItem2 // this.axisItem2.Axis = "Y"; this.axisItem2.AxisText = "Y"; this.axisItem2.BackColor = System.Drawing.SystemColors.Control; this.axisItem2.Dock = System.Windows.Forms.DockStyle.Top; this.axisItem2.Highlight = false; this.axisItem2.Location = new System.Drawing.Point(0, 70); this.axisItem2.Name = "axisItem2"; this.axisItem2.ShowSmallTitle = false; this.axisItem2.Size = new System.Drawing.Size(429, 70); this.axisItem2.TabIndex = 1; this.axisItem2.ValueActual = new decimal(new int[] { 0, 0, 0, 0}); this.axisItem2.ValueLogic = new decimal(new int[] { 0, 0, 0, 0}); // // axisItem1 // this.axisItem1.Axis = "X"; this.axisItem1.AxisText = "X"; this.axisItem1.BackColor = System.Drawing.SystemColors.Control; this.axisItem1.Dock = System.Windows.Forms.DockStyle.Top; this.axisItem1.Highlight = false; this.axisItem1.Location = new System.Drawing.Point(0, 0); this.axisItem1.Name = "axisItem1"; this.axisItem1.ShowSmallTitle = false; this.axisItem1.Size = new System.Drawing.Size(429, 70); this.axisItem1.TabIndex = 0; this.axisItem1.ValueActual = new decimal(new int[] { 0, 0, 0, 0}); this.axisItem1.ValueLogic = new decimal(new int[] { 0, 0, 0, 0}); // // AxisControl // this.Controls.Add(this.axisItem5); this.Controls.Add(this.axisItem4); this.Controls.Add(this.axisItem3); this.Controls.Add(this.axisItem6); this.Controls.Add(this.axisItem2); this.Controls.Add(this.axisItem1); this.Name = "AxisControl"; this.Size = new System.Drawing.Size(429, 480); this.ResumeLayout(false); }
private void addAreas() { if (ultraChart.CompositeChart.ChartAreas.Count > 2) return; ultraChart.CompositeChart.ChartAreas.Clear(); int areaWidth = (int)100 / m_cols; int areaHeight = (int)100 / m_rows; for (int i = 0; i < m_data.Count(); ++i) { Label l = new Label(); l.Font = new Font("Tahoma", 5.75F, FontStyle.Regular); l.Text = m_data[i].Item1; l.ForeColor = Color.White; Controls.Add(l); l.BringToFront(); l.BackColor = Color.White; l.AutoSize = true; lbls.Add(l); ChartArea area = new ChartArea(); AxisItem xAxis = new AxisItem(); AxisItem yAxis = new AxisItem(); xAxis.Key = string.Format("xAxis_{0}", i.ToString()); xAxis.DataType = Infragistics.UltraChart.Shared.Styles.AxisDataType.Time; xAxis.Labels.Orientation = Infragistics.UltraChart.Shared.Styles.TextOrientation.VerticalLeftFacing; xAxis.Labels.ItemFormat = Infragistics.UltraChart.Shared.Styles.AxisItemLabelFormat.Custom; xAxis.Labels.ItemFormatString = string.Format("<ITEM_LABEL:{0}>",m_xAxisLabelFormatString); xAxis.Labels.Font = new Font("Tahoma", 5.75F); xAxis.MajorGridLines.Visible = true; xAxis.OrientationType = Infragistics.UltraChart.Shared.Styles.AxisNumber.X_Axis; xAxis.SetLabelAxisType = Infragistics.UltraChart.Core.Layers.SetLabelAxisType.GroupBySeries; xAxis.Extent = 20; yAxis.Key = string.Format("yAxis_{0}", i.ToString()); yAxis.DataType = Infragistics.UltraChart.Shared.Styles.AxisDataType.Numeric; yAxis.Labels.Orientation = Infragistics.UltraChart.Shared.Styles.TextOrientation.Horizontal; yAxis.Labels.ItemFormat = Infragistics.UltraChart.Shared.Styles.AxisItemLabelFormat.Custom; yAxis.Labels.HorizontalAlign = StringAlignment.Near; yAxis.Labels.Font = new Font("Tahoma", 5.75F); yAxis.Labels.ItemFormatString = string.Format("<DATA_VALUE:{0}>", m_yAxisLabelFormatString); yAxis.MajorGridLines.Visible = true; yAxis.OrientationType = Infragistics.UltraChart.Shared.Styles.AxisNumber.Y_Axis; yAxis.SetLabelAxisType = Infragistics.UltraChart.Core.Layers.SetLabelAxisType.GroupBySeries; yAxis.Extent = 15; area.Axes.Add(xAxis); area.Axes.Add(yAxis); area.Key = string.Format("area_{0}", i.ToString()); int x = i, y = 0; while (x > (m_cols-1)) { ++y; x -= m_cols; } area.Bounds = new Rectangle(areaWidth * x, areaHeight * y, areaWidth, areaHeight); area.BoundsMeasureType = Infragistics.UltraChart.Shared.Styles.MeasureType.Percentage; ultraChart.CompositeChart.ChartAreas.Add(area); for (int j = 0; j < 1; ++j) { DataTable d = new DataTable(); d.Columns.Add("Date", typeof(DateTime)); d.Columns.Add("Px", typeof(double)); NumericTimeSeries ns = new NumericTimeSeries(); ns.Data.TimeValueColumn = "Date"; ns.Data.ValueColumn = "Px"; ns.Key = string.Format("series_{0}_{1}", i.ToString(), j.ToString()); ultraChart.CompositeChart.Series.Add(ns); ChartLayerAppearance chart = new ChartLayerAppearance(); chart.ChartComponent = ultraChart; chart.ChartArea = area; chart.AxisX = area.Axes[0]; chart.AxisY = area.Axes[1]; chart.ChartType = ChartType.LineChart; chart.Key = string.Format("chart_{0}_{1}", i.ToString(), j.ToString()); LineChartAppearance lca = (LineChartAppearance)chart.ChartTypeAppearance; lca.Thickness = 1; lca.MidPointAnchors = false; lca.EndStyle = LineCapStyle.NoAnchor; ultraChart.CompositeChart.ChartLayers.Add(chart); chart.Series.Add(ns); ns.Data.DataSource = d; chart.SeriesList = ns.Key; ns.DataBind(); ns.PEs.Add(new PaintElement(Color.LightGray)); dts.Add(d); } } }
private void AlimentaGraficos() { //http://help.infragistics.com/Help/Doc/WinForms/2012.1/CLR2.0/html/Chart_Creating_a_Composite_Chart_in_Code_Part_1_of_2.html //http://help.infragistics.com/Help/Doc/WinForms/2012.1/CLR2.0/html/Chart_Creating_a_Composite_Chart_in_Code_Part_2_of_2.html //Aqui define o tipo de gráfico que será realizado. //https://www.infragistics.com/help/winforms/chart-2d-charts this.ultraChart1.ChartType = ChartType.Composite; ChartArea myChartArea = new ChartArea(); this.ultraChart1.CompositeChart.ChartAreas.Add(myChartArea); AxisItem axisX = new AxisItem(); axisX.OrientationType = AxisNumber.X_Axis; axisX.DataType = AxisDataType.String; axisX.SetLabelAxisType = Infragistics.UltraChart.Core.Layers.SetLabelAxisType.GroupBySeries; axisX.Labels.ItemFormatString = "<ITEM_LABEL>"; axisX.Labels.Orientation = TextOrientation.VerticalLeftFacing; AxisItem axisY = new AxisItem(); axisY.OrientationType = AxisNumber.Y_Axis; axisY.DataType = AxisDataType.Numeric; axisY.Labels.ItemFormatString = "<DATA_VALUE:0.#>"; //Adiciona os gráficos myChartArea.Axes.Add(axisX); myChartArea.Axes.Add(axisY); //Adiciona as séries na interface NumericSeries seriesA = GetNumericSeriesBound(); NumericSeries seriesB = GetNumericSeriesUnBound(); this.ultraChart1.CompositeChart.Series.Add(seriesA); this.ultraChart1.CompositeChart.Series.Add(seriesB); //Cria a aparência das colunas ChartLayerAppearance myColumnLayer = new ChartLayerAppearance(); myColumnLayer.ChartType = ChartType.ColumnChart; myColumnLayer.ChartArea = myChartArea; myColumnLayer.AxisX = axisX; myColumnLayer.AxisY = axisY; myColumnLayer.Series.Add(seriesA); myColumnLayer.Series.Add(seriesB); this.ultraChart1.CompositeChart.ChartLayers.Add(myColumnLayer); //Cria a legenda CompositeLegend myLegend = new CompositeLegend(); myLegend.ChartLayers.Add(myColumnLayer); myLegend.Bounds = new Rectangle(0, 75, 20, 25); myLegend.BoundsMeasureType = MeasureType.Percentage; myLegend.PE.ElementType = PaintElementType.Gradient; myLegend.PE.FillGradientStyle = GradientStyle.ForwardDiagonal; myLegend.PE.Fill = Color.CornflowerBlue; myLegend.PE.FillStopColor = Color.Transparent; myLegend.Border.CornerRadius = 10; myLegend.Border.Thickness = 0; this.ultraChart1.CompositeChart.Legends.Add(myLegend); }
private void ultraChart1_Load(object sender, EventArgs e) { this.ultraChart1.Tooltips.HighlightDataPoint = false; ultraChart1.ChartType = ChartType.Composite; ultraChart1.Data.ZeroAligned = true; ChartArea myChartArea = new ChartArea(); this.ultraChart1.CompositeChart.ChartAreas.Add(myChartArea); AxisItem axisX = new AxisItem(); AxisItem axisY = new AxisItem(); //Line axisX.OrientationType = AxisNumber.X_Axis; axisX.DataType = AxisDataType.String; axisX.SetLabelAxisType = SetLabelAxisType.ContinuousData; axisX.Labels.ItemFormatString = "<ITEM_LABEL:M/d>"; //axisX.Labels.ItemFormatString = "< MY_VALUE >"; axisX.Labels.Orientation = TextOrientation.VerticalLeftFacing; axisX.Labels.Layout.Behavior = AxisLabelLayoutBehaviors.None; axisX.LineThickness = 1; //axisX.Extent = 40; axisX.Labels.Visible = true; axisX.Labels.Font = ultraChart1.Axis.X.Labels.SeriesLabels.Font; axisX.Labels.FontColor = ultraChart1.Axis.X.Labels.SeriesLabels.FontColor; //axisX.ScrollScale.Visible = true; axisY.OrientationType = AxisNumber.Y_Axis; axisY.Labels.HorizontalAlign = StringAlignment.Far; axisY.DataType = AxisDataType.Numeric; axisY.Labels.ItemFormatString = "<DATA_VALUE:##.#>"; //axisY.Labels.ItemFormatString = "< MY_VALUE >"; axisY.TickmarkStyle = AxisTickStyle.Smart; axisY.LineThickness = 1; //axisY.Extent = 10; axisY.RangeType = AxisRangeType.Custom; axisY.RangeMin = 0; axisY.RangeMax = 600; axisY.Labels.Font = ultraChart1.Axis.Y.Labels.Font; axisY.Labels.FontColor = ultraChart1.Axis.Y.Labels.FontColor; myChartArea.Axes.Add(axisX); myChartArea.Axes.Add(axisY); ChartLayerAppearance myLineLayer1 = new ChartLayerAppearance(); myLineLayer1.ChartType = ChartType.LineChart; myLineLayer1.ChartArea = myChartArea; myLineLayer1.AxisX = axisX; myLineLayer1.AxisY = axisY; ((LineChartAppearance)myLineLayer1.ChartTypeAppearance).Thickness = 1; DataTable table = new DataTable(); table = GetLineData(); for (int iC = 0; iC < table.Columns.Count - 1; iC++) { NumericSeries series = new NumericSeries(); series.Data.DataSource = table; series.Data.LabelColumn = table.Columns[0].Caption.ToString(); series.Data.ValueColumn = table.Columns[iC + 1].Caption.ToString(); series.Label = table.Columns[iC + 1].Caption.ToString(); series.DataBind(); myLineLayer1.Series.Add(series); } ultraChart1.CompositeChart.ChartLayers.Add(myLineLayer1); ultraChart1.Tooltips.Format = TooltipStyle.DataValue; //ultraChart1.Tooltips.FormatString = "<DATA_VALUE:0> <ITEM_LABEL> <SERIES_LABEL>"; ultraChart1.Tooltips.FormatString = "<DATA_VALUE>"; CompositeLegend myLegend = new CompositeLegend(); myLegend.ChartLayers.Add(myLineLayer1); myLegend.Bounds = new Rectangle(0, 1, 10, 50); myLegend.BoundsMeasureType = MeasureType.Percentage; myLegend.PE.ElementType = PaintElementType.None; myLegend.PE.FillGradientStyle = GradientStyle.ForwardDiagonal; myLegend.PE.FillStopColor = Color.Transparent; myLegend.Border.CornerRadius = 0; myLegend.Border.Thickness = 2; ultraChart1.CompositeChart.Legends.Add(myLegend); Hashtable MyLabelHashTable = new Hashtable(); MyLabelHashTable.Add("MY_VALUE", new MyLabelRenderer()); this.ultraChart1.LabelHash = MyLabelHashTable; this.ultraChart1.Tooltips.Format = TooltipStyle.Custom; this.ultraChart1.Tooltips.FormatString = "<MY_VALUE>"; this.ultraChart1.Tooltips.Overflow = TooltipOverflow.ChartArea; }