Usuário com melhor resposta
Componente para Gráficos

Pergunta
-
Bom pessoal,
Utilizo o amCharts para criar gráficos no WP mas agora está acontecendo um erro que, realmente, não entendo.
Faço toda a construção no XAML, crio as classes no C# e funciona na primeira passagem, porém, quando atribuo ao DataSource um novo valor, ocorre NullException. Já depurei e não existe nenhum valor nulo atribuído ao chart.
O problema ocorre quando a nova pesquisa retorna um número menor de registros em relação à pesquisa anterior. Como se o componente mantivesse a estrutura antiga e ficasse esperando preencher com o mesmo número de registros. Simplesmente não trabalha igual ao ListBox ou ListPicker.
Vou passar os trechos de código abaixo para desencargo. Se alguém souber de algo específico deste componente ou se há outro gratuito que eu possa utilizar, ficarei grato.
XAML (não estranhem, pois realmente não permite o uso do Binding)
<amq:PieChart x:Name="chartResumo" TitleMemberPath="ResumoCategoria" ValueMemberPath="ResumoSoma" Height="500"> </amq:PieChart>
C#
chartResumo.DataSource = new ListaResumo(iMesAdicional);
Classe
public class ListaResumo : List<clsListaResumoBinding> { public ListaResumo(Int32 iMesAdicional) { using (FingersOnFinanceContext ctx = new FingersOnFinanceContext(sConn)) { DateTime dPrimeiroDiaMes = new DateTime(DateTime.Today.AddMonths(iMesAdicional - 1).Year, DateTime.Today.AddMonths(iMesAdicional - 1).Month, 1, 0, 0, 0); DateTime dUltimoDiaMes = dPrimeiroDiaMes.AddMonths(1).AddDays(-1).AddHours(23).AddMinutes(59).AddSeconds(59); var query = from x in ctx.FOFkLancamentos where x.FOFkCategoriaDespesa.CatStatus != 9 && x.FOFkCategoriaDespesa.CatStatus != 10 && x.LctDataPagamento >= dPrimeiroDiaMes && x.LctDataPagamento <= dUltimoDiaMes && x.FOFkCategoriaDespesa.CatTipo == "D" group x by x.FOFkCategoriaDespesa.CatDescricao into grupo orderby grupo.Sum(s => s.LctValor) descending select new { Categoria = grupo.Key, GrupoTotal = grupo.Sum(s => s.LctValor) }; foreach (var l in query) { Add(new clsListaResumoBinding { ResumoCategoria = l.Categoria, ResumoSoma = Convert.ToDouble(l.GrupoTotal) }); } } } } public class clsListaResumoBinding { public string ResumoCategoria { get; set; } public double ResumoSoma { get; set; } }
Novamente... As pesquisas no banco de dados estão corretas. O problema acontece quando o gráfico foi construído anteriormente com mais registros do que a nova pesquisa.
O componente está no NuGet...
Andrey Kurka (MCC) | Federal Case | @federalcaseinfo
- Tipo Alterado Andrey Gonçalves dos Santos sexta-feira, 29 de novembro de 2013 18:38
sexta-feira, 29 de novembro de 2013 04:22
Respostas
-
Obrigado Rogério.
Eu vou tentar fazer com gráfico de barras, mas é pena porque o pizza ilustra muito melhor o que eu estou querendo mostrar para p usuário, além do que, vinha funcionando perfeitamente...
Andrey Kurka (MCC) | Federal Case | @federalcaseinfo
- Sugerido como Resposta Giovani Cr sexta-feira, 6 de dezembro de 2013 18:55
- Marcado como Resposta Andrey Gonçalves dos Santos sexta-feira, 6 de dezembro de 2013 20:17
sexta-feira, 29 de novembro de 2013 18:37 -
Obrigado Rogério.
Eu vou tentar fazer com gráfico de barras, mas é pena porque o pizza ilustra muito melhor o que eu estou querendo mostrar para p usuário, além do que, vinha funcionando perfeitamente...
Andrey Kurka (MCC) | Federal Case | @federalcaseinfo
Bom pessoal, infelizmente o amChart realmente tem problemas, principalmente no gráfico pizza. Meu aplicativo ficou por muito tempo funcionando sem que eu conseguisse repetir esta situação que ocasiona em erro.
O problema ocorre quando a nova pesquisa retorna um número menor de registros em relação à pesquisa anterior. Como se o componente mantivesse a estrutura antiga e ficasse esperando preencher com o mesmo número de registros. Simplesmente não trabalha igual ao ListBox ou ListPicker.
Sendo assim, substitui pelo gráfico de colunas que não ilustra tão bem quanto o pizza, mas acredito que migrar para um controle pago seja a melhor alternativa.
Andrey Kurka (MCC) | Federal Case | @federalcaseinfo
- Marcado como Resposta Andrey Gonçalves dos Santos sexta-feira, 6 de dezembro de 2013 20:17
sexta-feira, 6 de dezembro de 2013 20:17
Todas as Respostas
-
Eu uso esse componente do AMChart no meu App Finanças e sinceramente eu não consegui usar o gráfico de pizza, pois tive também alguns problemas, já o gráfico de barras foi tranquilo. Se quiser eu posso te mandar a dll que tenho e você testa se vai funcionar.
Paulo Rogério
sexta-feira, 29 de novembro de 2013 15:46 -
Obrigado Rogério.
Eu vou tentar fazer com gráfico de barras, mas é pena porque o pizza ilustra muito melhor o que eu estou querendo mostrar para p usuário, além do que, vinha funcionando perfeitamente...
Andrey Kurka (MCC) | Federal Case | @federalcaseinfo
- Sugerido como Resposta Giovani Cr sexta-feira, 6 de dezembro de 2013 18:55
- Marcado como Resposta Andrey Gonçalves dos Santos sexta-feira, 6 de dezembro de 2013 20:17
sexta-feira, 29 de novembro de 2013 18:37 -
Obrigado Rogério.
Eu vou tentar fazer com gráfico de barras, mas é pena porque o pizza ilustra muito melhor o que eu estou querendo mostrar para p usuário, além do que, vinha funcionando perfeitamente...
Andrey Kurka (MCC) | Federal Case | @federalcaseinfo
Bom pessoal, infelizmente o amChart realmente tem problemas, principalmente no gráfico pizza. Meu aplicativo ficou por muito tempo funcionando sem que eu conseguisse repetir esta situação que ocasiona em erro.
O problema ocorre quando a nova pesquisa retorna um número menor de registros em relação à pesquisa anterior. Como se o componente mantivesse a estrutura antiga e ficasse esperando preencher com o mesmo número de registros. Simplesmente não trabalha igual ao ListBox ou ListPicker.
Sendo assim, substitui pelo gráfico de colunas que não ilustra tão bem quanto o pizza, mas acredito que migrar para um controle pago seja a melhor alternativa.
Andrey Kurka (MCC) | Federal Case | @federalcaseinfo
- Marcado como Resposta Andrey Gonçalves dos Santos sexta-feira, 6 de dezembro de 2013 20:17
sexta-feira, 6 de dezembro de 2013 20:17