2017-09-28 1 views
0

Je veux faire un tableau de ligne de rapport sur le revenu dans les 30 derniers jours, j'ai seulement besoin de la date à série1 (graphique horizontal) et le revenu total sur series2 (graphique vertical). l'objet est DayBill qui contient la date de la chaîne, et le total de la somme de BigDecimal. Je veux faire comme date = 2017-09-19 got totalamount = 112527.5, et ainsi de suite.LineChart Primefaces DB de récupérer les données

public class ChartViewBean implements Serializable { 

private LineChartModel lineModel1; 
private List<DayBill> bills; 
private TotalSalesDAO dao; 

@PostConstruct 
public void init() { 
    createLineModels(); 
} 

public void itemSelect(ItemSelectEvent event) { 
    FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Item selected", 
        "Item Index: " + event.getItemIndex() + ", Series Index:" + event.getSeriesIndex()); 

    FacesContext.getCurrentInstance().addMessage(null, msg); 
} 

public LineChartModel getLineModel1() { 
    return lineModel1; 
} 

private void createLineModels() { 

    lineModel1 = initLinearModel(); 
    lineModel1.setTitle("Linear Chart"); 
    lineModel1.setLegendPosition("e"); 
    Axis yAxis = lineModel1.getAxis(AxisType.Y); 
    yAxis.setMin(0); 
    yAxis.setMax(10); 
    lineModel1.setExtender("skinChart"); 
} 


private LineChartModel initLinearModel() { 
    LineChartModel model = new LineChartModel(); 
    LineChartSeries series1 = new LineChartSeries(); 
    series1.setLabel("Series 1"); 

    series1.set(1, 2); 
    series1.set(2, 1); 
    series1.set(3, 3); 
    series1.set(4, 6); 
    series1.set(5, 8); 

    LineChartSeries series2 = new LineChartSeries(); 
    series2.setLabel("Series 2"); 

    series2.set(1, 6); 
    series2.set(2, 3); 
    series2.set(3, 2); 
    series2.set(4, 7); 
    series2.set(5, 9); 

    model.addSeries(series1); 
    model.addSeries(series2); 

    return model; 

} 

Ceci est mon DAO, je reçois déjà les données que je veux. Le problème est que je ne sais pas comment mettre les données dans le tableau.

public List<DayBill> getDayBills() throws Exception 
{ 
    Connection conn = ds.getConnection(); 
    PreparedStatement ps = null; 
    ResultSet rs = null; 
    StringBuffer query = new StringBuffer(); 
    List<DayBill> list = new ArrayList<DayBill>(); 

    query 
    .append(" select SUM(GRAND_TOTAL) , substr(BILL_DATE,0,11) ") 
    .append(" from R_BILL where substr(BILL_DATE,0,11) >= date('now','localtime','-30 day') "); 

    query.append(" group by strftime('%d',BILL_DATE) "); 
    query.append(" order by BILL_DATE ASC "); 

    try 
    { 
     DayBill daybill; 
     ps = conn.prepareStatement(query.toString()); 
     rs = ps.executeQuery(); 

     while(rs.next()) 
     { 
      daybill = new DayBill(); 
      daybill.setTotalAmount(rs.getBigDecimal(1)); 
      daybill.setDate(rs.getString(2)); 
      list.add(daybill); 
     } 
    } 
    finally 
    { 
     if(rs != null) 
      rs.close(); 
     if(ps != null) 
      ps.close(); 
     if(conn != null) 
      conn.close(); 
    } 

    return list; 
} 
+0

donc efficacement cette question n'est pas la base de données liée depuis les travaux de pièce de base de données? – Kukeltje

+0

Je veux dire que je veux faire un graphique en ligne, mais j'ai les données de la requête ci-dessus puis je l'ai mis dans le modèle, alors je veux seulement savoir comment mettre le modèle à la carte de ligne – Andre

+0

Il est clair ce que vous voulez, mais si le fonctionnement des requêtes DB, il n'y a aucune relation avec une base de données et vous devez juste aller sur les résultats de la base de données et le remplir aime faire dans la PrimeFaces vitrine – Kukeltje

Répondre