1
I’m generating a chart using the Chart of the primefaces, but I’m having trouble generating the X axis. In show case of them they create several lists manually, but I’m just creating 1 list and scanning a for to generate the data from that chart will be that the problem is really this?
public BarChartModel criarModeloGrafico(int ano) {
int flag = 0;
BarChartModel barModelo = new BarChartModel();
barModelo.setTitle("Vendas por ano");
barModelo.setAnimate(true);
barModelo.setLegendPosition("ne");
Axis yAxis = barModelo.getAxis(AxisType.Y);
Axis xAxis = barModelo.getAxis(AxisType.X);
xAxis.setLabel("mes");
xAxis.setTickCount(12);
xAxis.setMin(1);
yAxis.setLabel("Valor R$");
yAxis.setMin(0);
// criar varias listas para representar cada mes
List<Object[]> resultadoMes = null;
// se o ano for maior que 0 pra buscar consultas no banco
if (ano > 0) {
ChartSeries chartSeries = null;
// metodo para buscar as vendas nos meses do ano informado se
// existirem
// por isso o for irá pecorrer todos os meses do ano...
for (int i = 1; i < 13; i++) {
resultadoMes = consultaDAO.vendasPorMeses(ano, i);
// logica pra saber se existe consulta ou não para exibir msg
// pro usuario
if (resultadoMes.size() > 0) {
flag++;
}
chartSeries = new ChartSeries();
chartSeries.setLabel("Vendas mes " + i);
if (resultadoMes != null && !resultadoMes.isEmpty()) {
for (Object[] dados : resultadoMes) {
chartSeries.set(dados[0],
Double.valueOf(dados[1].toString()));
barModelo.addSeries(chartSeries);
}
}
}
if (flag == 0)
MensagemUtil.enviarMensagem(
"Nenuma venda realizada ainda nesse ano!",
FacesMessage.SEVERITY_WARN);
}
return barModelo;
}