我想在過去30天內創建收益報告折線圖,我只需要系列1(水平圖)上的日期和系列2(垂直圖)上的總收入。 對象是包含String日期和BigDecimal totalAmount的DayBill。我想讓日期= 2017-09-19得到totalamount = 112527.5,依此類推。LineChart Primefaces從DB獲取數據
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;
}
這是我的DAO,我已經得到了我想要的數據。問題是我不知道如何將數據放入圖表。
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;
}
所以有效這個問題是不是數據庫,因爲數據庫的部分作品有關係嗎? – Kukeltje
我的意思是我想做一個折線圖,但我從上面的查詢中獲得數據,然後我放入模型中,然後我只想知道如何將模型放入折線圖 – Andre
很明顯你想要什麼,但是如果數據庫查詢的工作原理與數據庫沒有關係,那麼您應該查看數據庫結果並填寫它,就像在PrimeFaces展示中所做的那樣 – Kukeltje