【问题标题】:Implement BarChart with series by Date按日期实现带有系列的条形图
【发布时间】:2016-09-25 15:12:20
【问题描述】:

我已将此数据存储到数据库中:

我想按日期将数据生成到 Primefaces 条形图中:

TicketStatusReportObj obj;
List<TicketStatusReportObj> list = new ArrayList<>();
...
// here we insert days using loop with data from database:
obj = new TicketStatusReportObj(
                    rs.getInt("CNT_STATUS0"),
                    rs.getInt("CNT_STATUS1"),
                    rs.getInt("CNT_STATUS2"),
                    rs.getInt("CNT_STATUS3"),
                    rs.getInt("CNT_STATUS4"),
                    rs.getDate("CREATED")
                );

                list.add(obj);
...

    ChartSeries series;
            for (int i = 0; i < list.size(); i++)
            {
                series = new ChartSeries();
                TicketStatusReportObj get = list.get(i);
                int in_progress = get.getIn_progress();
                int new_ticket = get.getNew_ticket();
                int closed = get.getClosed();
                int resolved = get.getResolved();
                int rejected = get.getRejected();
                Date date = get.getDate();

                series.setLabel(date.toString());
                series.set(date.toString(), in_progress);
                series.set(date.toString(), new_ticket);
                series.set(date.toString(), closed);
                series.set(date.toString(), resolved);
                series.set(date.toString(), rejected);

                barModel.addSeries(series);
            }

但我得到了这个结果:

如您所见,我只有 1 天,但应该是 4 天,因为我有 4 天进入数据库表。在 Primefaces 条形图中用 4 列列生成 4 天的正确方法是什么?

【问题讨论】:

  • 在您的情况下,我认为不可能使用 BarChart,最好使用折线图,因为您的数据库中有很多信息,对于 XAxis,我建议使用 CREATED_DATE,对于 YAaxis,使用其他信息cnt_statut

标签: jsf jsf-2 primefaces jsf-2.2


【解决方案1】:

试试这个代码:

ChartSeries series1 = new ChartSeries();
ChartSeries series2 = new ChartSeries();
ChartSeries series3 = new ChartSeries();
ChartSeries series4 = new ChartSeries();
ChartSeries series1 = new ChartSeries();
series1.setLabel("In Progress");
series2.setLabel("New Ticket");
series3.setLabel("Closed");
series4.setLabel("Resolved");
series5.setLabel("Rejected");

for (int i = 0; i < list.size(); i++)
{
    TicketStatusReportObj get = list.get(i);
    int in_progress = get.getIn_progress();
    int new_ticket = get.getNew_ticket();
    int closed = get.getClosed();
    int resolved = get.getResolved();
    int rejected = get.getRejected();
    Date date = get.getDate();

    series1.set(date, in_progress);
    series2.set(date, new_ticket);
    series3.set(date, closed);
    series4.set(date, resolved);
    series5.set(date, rejected);
}

barModel.addSeries(series1);
barModel.addSeries(series2);
barModel.addSeries(series3);
barModel.addSeries(series4);
barModel.addSeries(series5);

【讨论】:

  • 请在答案中添加一些文字和解释。
猜你喜欢
  • 2011-08-19
  • 2021-10-31
  • 2022-01-20
  • 2021-09-25
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
  • 2019-04-13
相关资源
最近更新 更多