一.用cewolf实现图表打印;(注意刷新问题)
1.打印出柱状图;
该程序主要为两个步骤:
a.实现DatasetProducer接口;
b.在cewolf标签中调用该匿名类,添好相关属性;
以下为重要片断:
<%
ArrayList list = null;
Date[] dates=null;
list = (ArrayList)session.getAttribute(SessionNames.OPERATION_STAT);
PnrOperationLog operationLog = null;
PnrOperationLog[] operationLogs = null;
for (int i=0;i<list.size();i++){
operationLog = (PnrOperationLog)list.get(i);
operationLogs[i] = operationLog;
dates[i]=DateTimeFormatUtil.cnFormatToDate(operationLogs[i].getOperateDate());
%>
<tr>
<td align="center"><%=i+1%></td>
<td align="center"><%=operationLog.getOperateDate()%></td>
<td align="center"><%=operationLog.getOperateStat()%></td>
</tr>
<%}
final ArrayList listN=list;
final PnrOperationLog[] operationLogsN=operationLogs;
final Date[] datesN=dates;
if (pageContext.getAttribute("initFlag") == null) {
DatasetProducer timeData = new DatasetProducer() {
public Object produceDataset(Map params) {
TimeSeries ts = new TimeSeries("Cewolf Release Schedule", Month.class);
for (int i=0;i<listN.size();i++){
ts.add(new Month(datesN[i].getMonth(), datesN[i].getYear()), operationLogsN[i].getOperateStat());
}
return new TimeSeriesCollection(ts);
}
public String getProducerId() {
return "TimeDataProducer";
}
public boolean hasExpired(Map params, Date since) {
return false;//更据返回值false或true决定是否对其刷新;
}
};
pageContext.setAttribute("timeData", timeData);
}
%>
</table>
<table border=0>
<TR>
<TD>
colorpaint<BR>
<cewolf:chart id="timeChart" title="TimeSeries" type="timeseries">
<cewolf:colorpaint color="#EEEEFF"/>
<cewolf:data>
<cewolf:producer id="timeData"/>
</cewolf:data>
</cewolf:chart>
<cewolf:img chartid="timeChart" renderer="cewolf" width="300" height="300"/>
</TD>
</TR>
</TABLE>
<%}
catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html:html>
<cewolf:chart id="timeChart" title="TimeSeries" type="timeseries">
<cewolf:colorpaint color="#EEEEFF"/>
<cewolf:data>
<cewolf:producer id="timeData"/>
</cewolf:data>
</cewolf:chart>
<cewolf:img chartid="timeChart" renderer="cewolf" width="300" height="300"/>
</TD>
</TR>
</TABLE>
<%}
catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html:html>
1.打印出柱状图;
该程序主要为两个步骤:
a.实现DatasetProducer接口;
b.在cewolf标签中调用该匿名类,添好相关属性;
以下为重要片断:
<%
ArrayList list = null;
Date[] dates=null;
list = (ArrayList)session.getAttribute(SessionNames.OPERATION_STAT);
PnrOperationLog operationLog = null;
PnrOperationLog[] operationLogs = null;
for (int i=0;i<list.size();i++){
operationLog = (PnrOperationLog)list.get(i);
operationLogs[i] = operationLog;
dates[i]=DateTimeFormatUtil.cnFormatToDate(operationLogs[i].getOperateDate());
%>
<tr>
<td align="center"><%=i+1%></td>
<td align="center"><%=operationLog.getOperateDate()%></td>
<td align="center"><%=operationLog.getOperateStat()%></td>
</tr>
<%}
final ArrayList listN=list;
final PnrOperationLog[] operationLogsN=operationLogs;
final Date[] datesN=dates;
if (pageContext.getAttribute("initFlag") == null) {
DatasetProducer timeData = new DatasetProducer() {
public Object produceDataset(Map params) {
TimeSeries ts = new TimeSeries("Cewolf Release Schedule", Month.class);
for (int i=0;i<listN.size();i++){
ts.add(new Month(datesN[i].getMonth(), datesN[i].getYear()), operationLogsN[i].getOperateStat());
}
return new TimeSeriesCollection(ts);
}
public String getProducerId() {
return "TimeDataProducer";
}
public boolean hasExpired(Map params, Date since) {
return false;//更据返回值false或true决定是否对其刷新;
}
};
pageContext.setAttribute("timeData", timeData);
}
%>
</table>
<table border=0>
<TR>
<TD>
colorpaint<BR>
<cewolf:chart id="timeChart" title="TimeSeries" type="timeseries">
<cewolf:colorpaint color="#EEEEFF"/>
<cewolf:data>
<cewolf:producer id="timeData"/>
</cewolf:data>
</cewolf:chart>
<cewolf:img chartid="timeChart" renderer="cewolf" width="300" height="300"/>
</TD>
</TR>
</TABLE>
<%}
catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html:html>
<cewolf:chart id="timeChart" title="TimeSeries" type="timeseries">
<cewolf:colorpaint color="#EEEEFF"/>
<cewolf:data>
<cewolf:producer id="timeData"/>
</cewolf:data>
</cewolf:chart>
<cewolf:img chartid="timeChart" renderer="cewolf" width="300" height="300"/>
</TD>
</TR>
</TABLE>
<%}
catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html:html>