none
MS Chart não exibe label corretamente RRS feed

  • Pergunta

  • Saudações

    com esse código eu monto o gráfico:

            RecebimentoTipo[] rt = RecebimentoTipoDAO.GetRecebimentosGrafico(txtDataIni.Text, txtDataFim.Text, Convert.ToUInt32(drpLoja.SelectedValue), Convert.ToUInt32(drpFunc.SelectedValue));
    
            Chart1.Series[0].Name = "RecebimentoTipo";
    
            List<string> lstValuesX = new List<string>();
            List<double> lstValuesY = new List<double>();
    
            foreach (RecebimentoTipo tipo in rt)
            {
                lstValuesX.Add(tipo.Descricao);
                lstValuesY.Add(tipo.Valor);
            }
    
            Chart1.Series["RecebimentoTipo"].Points.DataBindXY(lstValuesX, lstValuesY);
            Chart1.Series["RecebimentoTipo"].ToolTip = "#VALX (#VALY{C})";
            Chart1.Series["RecebimentoTipo"].ChartType = System.Web.UI.DataVisualization.Charting.SeriesChartType.Pie;
            Chart1.Series["RecebimentoTipo"].Label = "#VALX (#VALY{C})";
            Chart1.Series["RecebimentoTipo"]["PieLabelStyle"] = "Outside";
            Chart1.Series["RecebimentoTipo"]["PieDrawingStyle"] = "SoftEdge";
            Chart1.Series["RecebimentoTipo"]["PieLineColor"] = "Black";
            Chart1.Width = new Unit(700);

    Depois eu chamo esse:

      public static string SalvaGraficoTemp(Chart chart, string nome)
            {
                string pathImage = "";
    
                string tempFile = Path.GetTempFileName();
    
                using (FileStream fs = new FileStream(tempFile, FileMode.Create, FileAccess.Write))
                {
                    chart.SaveImage(fs);
                }
                using (FileStream fs = new FileStream(tempFile, FileMode.Open, FileAccess.Read))
                {
                    System.Drawing.Image img = Bitmap.FromStream(fs);
                    pathImage = String.Concat(System.IO.Path.GetTempPath(), nome + ".png");
                    img.Save(pathImage, ImageFormat.Png);
                }
    
                return pathImage;
            }

    Se eu não chamar o segundo bloco o gráfico exibe o label da seguinte forma: Dinheiro(R$30.131,54)

    Chamando ele exibe assim: (0) R$30.131,54

    Gostaria de saber porque




    Desenvolva!!!

    sexta-feira, 4 de maio de 2012 14:08

Respostas

  • Olá Deise. Bem, essa sintaxe é a usada pelo gráfico. 

    Obrigado pela resposta, mas cheguei a conclusão que é um bug do gráfico que consegui resolver chamando  o Databind() novamente.

    Obrigado.


    Desenvolva!!!

    • Marcado como Resposta Harley Araujo quarta-feira, 6 de junho de 2012 14:06
    quarta-feira, 9 de maio de 2012 15:47

Todas as Respostas

  • Talvez seja a forma como você está formatando.

    Tenta isso:

    Chart1.Series["RecebimentoTipo"].Label = "#VALX (#VALY {0:C})";

    Em C# utilizamos o {0:C} para formatar valores monetários e não somente o {C}.


    Deise Vicentin
    "Eu não procuro saber as respostas, procuro compreender as perguntas." Confúcio

    quarta-feira, 9 de maio de 2012 15:42
  • Olá Deise. Bem, essa sintaxe é a usada pelo gráfico. 

    Obrigado pela resposta, mas cheguei a conclusão que é um bug do gráfico que consegui resolver chamando  o Databind() novamente.

    Obrigado.


    Desenvolva!!!

    • Marcado como Resposta Harley Araujo quarta-feira, 6 de junho de 2012 14:06
    quarta-feira, 9 de maio de 2012 15:47