|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net也不过3,4本书足以,这就是区别。chart|js|web|统计|图表JSP(JavaServerPages)[1]是由Sun微体系公司于1999年6月推出的一项新手艺,是基于JavaServlet和全部java系统的Web开辟手艺,使用这一手艺能够创建先辈、平安和跨平台的静态网站。JSP与Microsoft的ASP(ActiveServerPages)手艺十分类似。二者都供应在HTML代码中夹杂某种程序代码、由言语引擎注释实行程序代码的才能。在ASP或JSP情况下,HTML代码次要卖力形貌信息的显现款式,而程序代码则用来形貌处置逻辑。ASP下的编程言语是vbscript之类的剧本言语,而JSP利用的是Java。
Microsoft?OfficeWeb组件[2]初次包括在Microsoft?Office2000中。它们是用于向Web页增加电子表格、图表和数据处置功效的ActiveX?控件的汇合。在利用Microsoft?InternetExplorer扫瞄包括OfficeWeb组件的Web页时,您能够间接在InternetExplorer中处置显现的数据,如对数据举行排序和选择,输出新的数值,睁开和折叠明细数据,举行行列扭转以检察源数据的分歧汇总信息等。Microsoft?OfficeWeb控件可以供应一切这些功效,共有三种OfficeWeb组件:Spreadsheet组件、Chart组件和PivotTable?组件。本文将利用个中的Chart组件。
1、JSP手艺与Chart组件
JSP手艺是一种在服务器端编译实行的Web计划言语,其剧本言语接纳Java,完整承继了Java的一切长处。它能将网页的静态部分与静态部分无效分隔,你只需用任何一种你熟习的网页制造工具,编写划定规矩的HTML,然后经由过程JSP标志(tag)[3]将静态部分包括出去就能够了,tag尽年夜部分是以"<%"入手下手,以"%>"停止的。
Chart组件是MicrosoftOffice利用的数据绑定ActiveX控件,用于向Web页增加图表功效。我们在安装微软的Office2000时会缺省安装一个组件OfficeWebComponents,Chart组件就含在这个组件中,对应的文件是msowc.dll。
2、完成实例
本文的运转情况是:Jbuilder7+Oracle8i,同时使用了JAVABEAN手艺来完成与Oracle数据库的毗连[4]。
上面的程序graph.jsp完成了从数据库中读出一段工夫内内燃机车和电力机车的数值,然后用统计图表显现,用户能够选择图形体例。(以下斜体部分为JSP代码)
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pageimport="java.sql.*,java.io.*,java.util.*,java.util.Date"%>
<jsp:useBeanid="zzjwbean"scope="page"class="jsp.zzjw"/>
<!--用JAVABEAN完成与数据库毗连(本段代码略)-->
<%
/*变量界说略*/
/*取得查询的年,月,肇端日期,即:year,month,f_gk_startdate和停止日期f_gk_enddate,本段代码略*/
%>
<html>
<head>
<title>
</title>
<formname=fmaction=""method="post">
</form>
<bodybgcolor="#DAFAFC">
<scriptlanguage="vbscript">
subwindow_onload()
Dimcategories(34)将横坐标的值赋给vbscript情况下的数组categories
Dimvalues(34)将纵坐标的值赋给vbscript情况下的数组values
<%
i=0;
rs=zzjwbean.executeQuery("select*fromT_zzj_dw");/*取得单元称号*/
while(rs.next())
{
%>
categories(<%=i%>)=<%="""+rs.getString("f_fjmc")+"""%>
<%
i++;
}
%>
ChartSpace1.Charts.Add‘将图表增加到图表事情区中
将变量c设置为Constants属性所前往的对象,由于在vbscript中不克不及利用已定名的常量
Setc=ChartSpace1.Constants
ChartSpace1.Charts(0).hastitle=true图表有题目
ChartSpace1.Charts(0).Title.Font.Name="仿宋_GB231280"题目字体
ChartSpace1.Charts(0).Title.Font.size=11题目字体巨细
ChartSpace1.Charts(0).Title.Font.color="blue"题目字体色彩
ChartSpace1.Charts(0).Title.caption="<%=year%>年<%=month%>月机车概略月报表统计图"题目内容
ChartSpace1.Charts(0).HasLegend=True指定图表具有图例
指定图表的图形体例为列状图
ChartSpace1.Charts(0).type=c.chChartTypeColumnClustered
给图表赋横坐标的值
ChartSpace1.Charts(0).SetDatac.chDimCategories,c.chDataLiteral,categories
系列0对应内燃机车统计数值
ChartSpace1.Charts(0).SeriesCollection(0).Caption="内燃机车统计"系列0的图例
将内燃机车统计的值赋给vbscript情况下的数组values
<%
i=0;
rs1=null;
f_fjbm="";
rs=zzjwbean.executeQuery("select*fromT_zzj_dw");
while(rs.next())
{
f_fjbm=rs.getString("f_fjbm");
rs1=zzjwbean.executeQuery("selectsum(f_jc_nrhj)fromT_jccwygkwheref_jccwy_fj="+f_fjbm+"andf_date>="+f_gk_startdate+"andf_date<="+f_gk_enddate+"");/*统计数据*/
if(rs1.next())
{
%>
values(<%=i%>)=<%=rs1.getInt(1)%>
<%
i++;
}
}
%>
将内燃机车统计的值赋给图表的系列0
ChartSpace1.Charts(0).SeriesCollection(0).SetDatac.chDimValues,c.chDataLiteral,values
ChartSpace1.Charts(0).SeriesCollection.Add向图表中增加系列1
ChartSpace1.Charts(0).SeriesCollection(1).Caption="电力机车统计"系列1的图例
将电力机车统计的值赋给vbscript情况下的数组values
<%
i=0;
rs1=null;
f_fjbm="";
rs=zzjwbean.executeQuery("select*fromT_zzj_dw");
while(rs.next())
{
f_fjbm=rs.getString("f_fjbm");
rs1=zzjwbean.executeQuery("selectsum(f_jc_dlhj)fromT_jccwygkwheref_jccwy_fj="+f_fjbm+"andf_date>="+f_gk_startdate+"andf_date<="+f_gk_enddate+"");
if(rs1.next())
{
%>
values(<%=i%>)=<%=rs1.getInt(1)%>
<%
i++;
}
}
%>
将电力机车统计的值赋给图表的系列1
ChartSpace1.Charts(0).SeriesCollection(1).SetDatac.chDimValues,c.chDataLiteral,values
指定纵坐标轴有题目,并赋值,然后指定命据的显现格局
ChartSpace1.Charts(0).axes(c.chAxisPositionLeft).hastitle=true
ChartSpace1.Charts(0).axes(c.chAxisPositionLeft).title.Font.Name="黑体"
ChartSpace1.Charts(0).axes(c.chAxisPositionLeft).title.Font.size=11
ChartSpace1.Charts(0).axes(c.chAxisPositionLeft).title.caption="机车算计(台数)"
ChartSpace1.Charts(0).Axes(c.chAxisPositionLeft).NumberFormat="0.##"
指定横坐标轴有题目,并赋值
ChartSpace1.Charts(0).axes(c.chAxisPositionBottom).hastitle=true
ChartSpace1.Charts(0).axes(c.chAxisPositionBottom).title.Font.Name="黑体"
ChartSpace1.Charts(0).axes(c.chAxisPositionBottom).title.Font.size=12
ChartSpace1.Charts(0).axes(c.chAxisPositionBottom).title.caption="郑州局机车概略月报表"
endsub
依据用户选择的图形体例,改动图表的外形
subdd_onchange()
ChartSpace1.Charts(0).type=dd(dd.selectedIndex).value
endsub
</script>
</head>
<body>
<selectname="dd"size="1">
<optionvalue="0"selected>列状图</option>
<optionvalue="3">栏状图</option>
<optionvalue="6">光滑曲线图</option>
<optionvalue="18">饼行图</option>
<optionvalue="29">面积图</option>
</select>
<!--创立一个图表事情区对象,名为“ChartSpace1”-->
<p>
<objectid=ChartSpace1classid=CLSID:0002E500-0000-0000-C000-000000000046codebase="msowc.dll"style="width:100%;height:350">
</object>
</p>
</body>
</html>
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践! |
|