2016-05-27 4 views
0

ich diese Daten in die Datenbank gespeichert sind:Implementieren BarChart mit Serie von Datum

enter image description here

Ich möchte die Daten in Primefaces Balkendiagramm nach Datum erzeugen:

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); 
      } 

Aber ich dieses Ergebnis:

enter image description here

Wie Sie sehen können, habe ich nur einen Tag, aber es sollte 4 sein, weil ich 4 Tage in der Datenbanktabelle habe. Wha ist der richtige Weg, 4 Tage mit 4 Spalten in Primefaces Balkendiagramm zu generieren?

+0

In Ihrem Fall ich denke, dass es unmöglich ist, BarChart zu verwenden, ist es besser, Liniendiagramm zu verwenden, da Sie viele Informationen in Ihrer Datenbank haben, für die XAxis schlage ich vor, CREATED_DATE zu verwenden, und für die YAaxis benutzen Sie die andere Informationcnt_statut –

Antwort

1

diesen Code Versuchen:

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); 
+0

Danke, es funktioniert sehr gut! –

+0

Bitte fügen Sie der Antwort einen Text und eine Erläuterung hinzu. – Kukeltje