使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx

上传人:b****6 文档编号:21835842 上传时间:2023-02-01 格式:DOCX 页数:23 大小:272.39KB
下载 相关 举报
使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx_第1页
第1页 / 共23页
使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx_第2页
第2页 / 共23页
使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx_第3页
第3页 / 共23页
使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx_第4页
第4页 / 共23页
使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx

《使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx》由会员分享,可在线阅读,更多相关《使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。

使用Open Flash ChartOFC制作图表Struts2处理Word文档格式.docx

11.importjofc2.model.elements.LineChart;

12.importxxx.app.action.BaseAction;

13.publicclassOfcChartActionextendsBaseAction{

14.privateChartofcChart;

15.publicChartgetOfcChart(){

16.returnofcChart;

17.}

18.publicStringshowChart()throwsException{

19.//y轴数据集合-使用数量

20.List<

Number>

dataSet=newArrayList<

();

21.//x轴数据集合-浏览器类型

22.List<

Label>

xLabel=newArrayList<

23.//获取需要显示的数据集

24.ListbrowserList=getServMgr().getVisitStatService().getBrowserStat();

25.for(inti=0;

i<

browserList.size();

i++){

26.Mapmap=(Map)browserList.get(i);

27.//填充x轴

28.dataSet.add((Integer)map.get("

statCount"

));

29.//填充y轴

30.xLabel.add(newLabel((String)map.get("

statVar"

)));

31.}

32.//设置X轴内容

33.XAxislabels=newXAxis();

34.labels.addLabels(xLabel);

35.//设置Y轴显示值域:

Range的三个参数含义为:

坐标最小值,最大值和步进值

36.YAxisrange=newYAxis();

37.range.setRange(0,200,10);

38.//OFC折线图设置

39.LineChartlineChart=newLineChart(LineChart.Style.NORMAL);

40.lineChart.addValues(dataSet);

41.lineChart.setColour("

#6666FF"

);

42.lineChart.setText("

使用者数量"

43.//图表设置

44.Chartchart=newChart("

用户浏览器使用量分布"

45.chart.setXAxis(labels);

46.chart.setYAxis(range);

47.chart.addElements(lineChart);

48.//打印JSON格式的文本

49.System.out.print(chart.toString());

50.HttpServletResponseresponse=ServletActionContext.getResponse();

51.response.setContentType("

application/json-rpc;

charset=utf-8"

52.response.setHeader("

Cache-Control"

"

no-cache"

53.response.setHeader("

Expires"

0"

54.response.setHeader("

Pragma"

No-cache"

55.response.getWriter().write(chart.toString());

56.returnnull;

57.}

58.}

packagexxx.app.action.chart;

importjava.util.ArrayList;

importjava.util.List;

importjava.util.Map;

importjavax.servlet.http.HttpServletResponse;

importorg.apache.struts2.ServletActionContext;

importjofc2.model.Chart;

importjofc2.model.axis.Label;

importjofc2.model.axis.XAxis;

importjofc2.model.axis.YAxis;

importjofc2.model.elements.LineChart;

importxxx.app.action.BaseAction;

publicclassOfcChartActionextendsBaseAction{

privateChartofcChart;

publicChartgetOfcChart(){

returnofcChart;

}

publicStringshowChart()throwsException{

//y轴数据集合-使用数量

List<

//x轴数据集合-浏览器类型

//获取需要显示的数据集

ListbrowserList=getServMgr().getVisitStatService().getBrowserStat();

for(inti=0;

i++){

Mapmap=(Map)browserList.get(i);

//填充x轴

dataSet.add((Integer)map.get("

//填充y轴

xLabel.add(newLabel((String)map.get("

}

//设置X轴内容

XAxislabels=newXAxis();

labels.addLabels(xLabel);

//设置Y轴显示值域:

坐标最小值,最大值和步进值

YAxisrange=newYAxis();

range.setRange(0,200,10);

//OFC折线图设置

LineChartlineChart=newLineChart(LineChart.Style.NORMAL);

lineChart.addValues(dataSet);

lineChart.setColour("

lineChart.setText("

//图表设置

Chartchart=newChart("

chart.setXAxis(labels);

chart.setYAxis(range);

chart.addElements(lineChart);

//打印JSON格式的文本

System.out.print(chart.toString());

HttpServletResponseresponse=ServletActionContext.getResponse();

response.setContentType("

response.setHeader("

response.getWriter().write(chart.toString());

returnnull;

}

Service中获取数据我们使用Spring的JdbcTemplate进行。

1.//获取记录的浏览器信息

2.privatestaticfinalStringSQL_GET_BROWER_STAT="

selectstatVar,statCountfromnd_statswherestatType='

browser'

"

;

3./**

4.*获取记录的浏览器信息

5.*/

6.publicListgetBrowserStat(){

7.returnjt.queryForList(SQL_GET_BROWER_STAT);

8.}

//获取记录的浏览器信息

privatestaticfinalStringSQL_GET_BROWER_STAT="

/**

*获取记录的浏览器信息

*/

publicListgetBrowserStat(){

returnjt.queryForList(SQL_GET_BROWER_STAT);

写好Action,我们简单配置一下,因为我们只是得到JSON文本,所以不必配置跳转,只需配置请求即可。

Xml代码

1.<

actionname="

ofcChart"

class="

xxx.app.action.chart.OfcChartAction"

>

2.<

/action>

<

页面的JS代码也很简单。

如下即可:

Html代码

scripttype="

text/javascript"

src="

${base}/js/swfobject.js"

<

/script>

3.varflashvars={"

data-file"

:

${base}/manage/stat/ofcChart!

showChart.action"

};

4.varparams={menu:

"

false"

scale:

noScale"

wmode:

opaque"

5.swfobject.embedSWF("

${base}/swf/open-flash-chart.swf"

chart"

600px"

400px"

9.0.0"

6."

expressInstall.swf"

flashvars,params);

7.<

8.<

divid="

9.<

/div>

varflashvars={"

varparams={menu:

swfobject.embedSWF("

这里需要多说几句,首先是路径,不能错了,错了就请求不到数据了。

Swfobject.js是页面使用JS方式配置Flash显示的,比较方便,所有使用它了。

设置一个div用于Flash的显示,这个id是embedSWF的第二个参数,不能忘写了。

还有就是请求地址参数的问题,这里我们是方便测试就没有传递参数,而实际开发不可避免传递参数。

参数传递时在请求地址后面按普通形式书写即可,只是&

这个连接符需要转义,写成%26,其他就没有什么了。

我们得到的结果就是这样的,这是很普通的折线图。

但是不比JFreeChart的差哦。

同时在控制台我们得到jofc2为我们生成的JSON文本。

Js代码

1.{"

is_thousand_separator_disabled"

0,"

is_decimal_separator_comma"

title"

{"

tex

2.t"

},"

y_axis"

min"

steps"

10,"

max"

200},"

x_axis"

la

3.bels"

labels"

[{"

text"

Safari"

},{"

MSIE6X"

MSIE7X"

4.MSIE8X"

Firefox"

Chrome"

Opera"

Maxthon"

5.},{"

Other"

}]}},"

num_decimals"

2,"

is_fixed_num_decimals_forced"

element

6.s"

font-size"

"

type"

line"

values"

[6,2,63,168,1,10,

7.1,0,0],"

colour"

}]}

tex

t"

la

bels"

MSIE8X"

element

s"

[6,2,63,168,1,10,

1,0,0],"

}]}

下面我们做柱状图,做个个性点的,用sketch类型。

1.//Sketch型柱状图设置

2.SketchBarChartsketchChart=newSketchBarChart();

3.sketchChart.setColour("

4.sketchChart.addValues(dataSet);

5.sketchChart.setText("

6.//图表设置

7.Chartchart=newChart("

8.chart.setXAxis(labels);

9.chart.setYAxis(range);

10.chart.addElements(sketchChart);

//Sketch型柱状图设置

SketchBarChartsketchChart=newSketchBarChart();

sketchChart.setColour("

sketchChart.addValues(dataSet);

sketchChart.setText("

//图表设置

Chartchart=newChart("

chart.setXAxis(labels);

chart.setYAxis(range);

chart.addElements(sketchChart);

这样我们就得到了下面的显示效果,是不是很卡通,哈哈。

需要注意jofc2将sketch风格的柱状图单独写成了一个类,而使用普通风格的柱状图时不时这么进行的。

1.//柱状图Bar的集合

2.List<

Bar>

barList=newArrayList<

3.for(inti=0;

4.Mapmap=(Map)browserList.get(i);

5.//填充Bar,并给出提示

6.barList.add(newBar((Integer)map.get("

)).setTooltip("

#val#次"

7.//填充y轴

8.xLabel.add(newLabel((String)map.get("

9.}

10.//柱状图设置

11.BarChartbarChart=newBarChart(BarChart.Style.GLASS);

12.barChart.addBars(barList);

13.barChart.setColour("

14.barChart.setText("

15.//图表设置

16.Chartchart=newChart("

17.chart.setXAxis(labels);

18.chart.setYAxis(range);

19.chart.addElements(barChart);

//柱状图Bar的集合

List<

for(inti=0;

Mapmap=(Map)browserList.get(i);

//填充Bar,并给出提示

barList.add(newBar((Integer)map.get("

//填充y轴

xLabel.add(newLabel((String)map.get("

//柱状图设置

BarChartbarChart=newBarChart(BarChart.Style.GLASS);

barChart.addBars(barL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1