none
c# grafico por GridView RRS feed

  • Pergunta

  • Oi galera

    então eu estou com o seguinte problema,

    tenho um grid e nele eu quero utilizar 2 colulas

    Data e a outra Valor Monetario,

    e colocar em um grafico ao passar dos meses quanto vai modificando os dados,

    é um comparativo de leasing e cdc.

    Eu estou tentando usar Chart porem sem sucesso pois ele nao plota todos os dados no grafico

    Dentro do For para preencher o grid eu estou utilizando esta função

    chart1.Series["Leansing"].Points.AddXY(data.ToString("d"),Double.Parse(String.Format("{0:##,###,##0.00}", valorTotalCol9)));

    o que eu estou fazendo de errado?

    Obrigado

    segunda-feira, 9 de setembro de 2013 17:02

Respostas

  • Jota,

    Segue um exemplo de como você pode fazer isso utilizando DataBind:

    var seriesAcompanhamento = new Series();
    seriesAcompanhamento.Points.DataBindXY(valoresxxx, valoresyyy);
    seriesAcompanhamento.ChartType = SeriesChartType.Spline;
    seriesAcompanhamento["ColumnLabelStyle"] = "inside";
    seriesAcompanhamento.IsValueShownAsLabel = false;
    seriesAcompanhamento.ToolTip = "#VALX - #VALY{C} - " + dr["GERENTE"];
    seriesAcompanhamento.MarkerStyle = MarkerStyle.Diamond;

    chr.ChartAreas["AreaAcompanhamento"].Area3DStyle.Enable3D = false;
    chr.ChartAreas["AreaAcompanhamento"].AxisX.Interval = 1;
    chr.ChartAreas["AreaAcompanhamento"].AxisY.MajorGrid.Enabled = true;
    chr.ChartAreas["AreaAcompanhamento"].AxisX.MajorGrid.Enabled = false;
    chr.ChartAreas["AreaAcompanhamento"].AxisX.MajorTickMark.Enabled = false;
    chr.ChartAreas["AreaAcompanhamento"].AxisY.MajorTickMark.Enabled = true;
    chr.Series.Add(SeriesAcompanhamento);

    Ricardo Minoru Makiyama



    quinta-feira, 12 de setembro de 2013 19:17

Todas as Respostas

  • Jota,

    Segue um exemplo de como você pode fazer isso utilizando DataBind:

    var seriesAcompanhamento = new Series();
    seriesAcompanhamento.Points.DataBindXY(valoresxxx, valoresyyy);
    seriesAcompanhamento.ChartType = SeriesChartType.Spline;
    seriesAcompanhamento["ColumnLabelStyle"] = "inside";
    seriesAcompanhamento.IsValueShownAsLabel = false;
    seriesAcompanhamento.ToolTip = "#VALX - #VALY{C} - " + dr["GERENTE"];
    seriesAcompanhamento.MarkerStyle = MarkerStyle.Diamond;

    chr.ChartAreas["AreaAcompanhamento"].Area3DStyle.Enable3D = false;
    chr.ChartAreas["AreaAcompanhamento"].AxisX.Interval = 1;
    chr.ChartAreas["AreaAcompanhamento"].AxisY.MajorGrid.Enabled = true;
    chr.ChartAreas["AreaAcompanhamento"].AxisX.MajorGrid.Enabled = false;
    chr.ChartAreas["AreaAcompanhamento"].AxisX.MajorTickMark.Enabled = false;
    chr.ChartAreas["AreaAcompanhamento"].AxisY.MajorTickMark.Enabled = true;
    chr.Series.Add(SeriesAcompanhamento);

    Ricardo Minoru Makiyama



    quinta-feira, 12 de setembro de 2013 19:17
  • Não consegui implementar Ricardo,

    a tabela é assim

    Data|Valor Monetario

    ________________

    01/02/2013 | 1000,00

    01/03/2013 | 1500,00

    01/04/2013 | 2000,00

    por exemplo, e na especificação pede que o Y seja um array, mas como fazer isso sendo que é um dado relacionado com o outro, tipo 1 para x e outro para y, nao 1 para x e N para y.

    Apresentou este erro:

    "Os valores Y não podem ser associados por dados ao objeto de cadeia de caracteres.

    Nome do parâmetro: yValues"

     
    quinta-feira, 26 de setembro de 2013 14:25
  • Jota,

    Recomendo montar uma lista genérica para X e outra para Y com base na sua tabela, exemplo:

    var listaDatas = new List<String> {"01/02/2013", "01/03/2013", "01/04/2013"};
    var listaValores = new List<Decimal> { 1000, 1500, 2000 };

    No chart:

    seriesAcompanhamento.Points.DataBindXY(listaDatas , listaValores );


    Ricardo Minoru Makiyama



    quinta-feira, 26 de setembro de 2013 14:58