Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Biểu đồ Primefaces 5.0 - cách tạo mô hình biểu đồ và chuỗi hoàn toàn động từ các giá trị cơ sở dữ liệu

Sau một số nghiên cứu, câu trả lời dường như là sử dụng các mô hình riêng biệt cho từng loại biểu đồ bạn muốn tạo. Trong ví dụ dưới đây, tôi đang tạo các mô hình cho Barchart và linechart, các mô hình này có thể được mở rộng để sử dụng bất kỳ loại biểu đồ nào khác được PF hỗ trợ. trong EL, tôi đang gọi các mảng danh sách (tức là [0]), nhưng điều này không cần thiết và chỉ là sở thích của tôi. Ngoài ra, tôi đã mở rộng lớp PF BarChartModel (ExtendedBarChartModel), nhưng ví dụ này hoạt động tốt nếu bạn sử dụng BarChartModel tiêu chuẩn.

Hy vọng điều này sẽ hữu ích và mọi phản hồi đều được hoan nghênh:

<p:dataGrid id="modellist" value="#{chartTestBean.xbarmod[0]}" var="barmd">
<p:chart id="gridchart" type="bar" model="#{barmd}" style="width: 150px; height: 150px"/>
</p:dataGrid>

<p:dataGrid id="linegrid" value="#{chartTestBean.linemodelList[0]}" var="linemod">
<p:chart id="linechart" type="line" model="#{linemod}" style="width: 150px; height: 150px"/> 
</p:dataGrid>
.... Other chart models as needed here

Các phương pháp bean cho mô hình biểu đồ thanh:

public List<ExtendedBarModel> ModelList() {
    xbarmod = new ArrayList();
    sers = new ArrayList();

    //chartType = "bar";
    orig = guestChartFacade.findAll();

    for (Enguestjoinchart j : orig) {
        if (j.getCharttype().equals("bar")) {
            setChartType("bar");
            showBar = true;
            idmid = j.getIdmid();
            selJoin = guestChartFacade.find(idmid);
            startDate = selJoin.getStartdate();
            sers.add(idmid);
        }
    }

    dsetList = setfacade.findTopsRange(sers);

    processModelList();
    return xbarmod;
}


public ExtendedBarModel processModelList() {
    for (int i = 0; i < dsetList.size(); i++) {

        idmid = dsetList.get(i).getIdmid();

        pointList = pointFacade.pointRangeIdmid(idmid, startDate);
        xtestmodel = new ExtendedBarModel("Barmodel " + dsetList.get(i).getIdmid());

        chartSer = new ChartSeries();
        for (Endatapoint p : pointList) {
            chartSer.set(p.getRecords().getSeriesname(), p.getActualnum());

        }
        xtestmodel.addSeries(chartSer);
        xbarmod.add(xtestmodel);
    }

    for (ExtendedBarModel b : xbarmod) {
        xtestmodel = b;
        return xtestmodel;
    }
    return null;
}

Đối với biểu đồ đường:

public List<LineChartModel> makelinelistModel() {
    linemodelList = new ArrayList();
    linesers = new ArrayList();

    orig = guestChartFacade.findAll();

    for (Enguestjoinchart w : orig) {
        if (w.getCharttype().equals("line")) {
            idmidLine = w.getIdmid();
            selJoinLine = guestChartFacade.find(idmidLine);

            startDateLine = guestChartFacade.findStart(idmidLine);

            endDateLine = guestChartFacade.findEnd(idmidLine);
            linesers.add(idmidLine);
            showLine = true;
        }
    }

    if (linesers.size()==0) {
        dsetlineList = null;
        linemodelList = null;

    } 
    else {
       dsetlineList = setfacade.findTopsRange(linesers);
        processLineModelList();
    }
    return linemodelList;

}

public LineChartModel processLineModelList() {
    for (int i = 0; i < dsetlineList.size(); i++) {

        idmidLine = dsetlineList.get(i).getIdmid();
        pointListLine = pointFacade.pointLineRange(idmidLine, startDateLine, endDateLine);
        linemodel = new LineChartModel();

        chartSerLine = new ChartSeries();
        Map<Object, Number> datMap = new HashMap();
        DateAxis axis = new DateAxis();

        for (Endatapoint p : pointListLine) {
            chartSerLine.set(p.getPointdate().toString(), p.getActualnum());
            linemodel.addSeries(chartSerLine);

        }

        linemodelList.add(linemodel);
        linemodel.getAxes().put(AxisType.X, axis);
    }

    for (LineChartModel m : linemodelList) {
        linemodel = m;
        return linemodel;
    }
    return linemodel;
}

.... Other chart models



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tốt nhất để lưu trữ SET lớn hơn 64

  2. Kết nối với máy chủ mysql mà không cần sudo

  3. Đổi tên một cột trong MySQL

  4. Table không hỗ trợ tối ưu hóa, thay vào đó, thực hiện tạo lại + phân tích nghĩa là gì?

  5. Không thể sử dụng đối tượng kiểu PDOStatement dưới dạng mảng