Usuário com melhor resposta
MS Chart não exibe label corretamente

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!!!
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
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 -
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