<%
REM 首先我们设计一个ShowCart函数,其中
REM aValues 是一个数值数组
REM aLables 是横坐标的标号
REM strTitle是这个统计图的标题
REM strXAxisLable X轴的标签
REM strYAxisLable Y轴的标签
Sub ShowChart(ByRef aValues, ByRef aLabels, ByRef strTitle, ByRef strXAxisLabel, ByRef strYAxisLabel)
'' 你可以随便改变的图形常数
'' 单位是屏幕像素点
Const GRAPH_WIDTH = 450 '' 图形宽度
Const GRAPH_HEIGHT = 250 '' 图形
Const GRAPH_BORDER = 5 '' 坐标线宽度
Const GRAPH_SPACER = 2 '' 统计条之间的距离
Const TABLE_BORDER = 0
'' 变量声明
Dim I
Dim iMaxValue
Dim iBarWidth
Dim iBarHeight
'' 取得aValues最大值
iMaxValue = 0
For I = 0 To UBound(aValues)
If iMaxValue < aValues(I) Then iMaxValue = aValues(I)
Next ''I
'' 计算每条图形的宽度
iBarWidth = (GRAPH_WIDTH \ (UBound(aValues) + 1)) - GRAPH_SPACER
'' 开始绘图
%>
<TABLE BORDER=''<%= TABLE_BORDER %>'' CELLSPACING=''0'' CELLPADDING=''0''>
<TR>
<TD COLSPAN=''3'' ALIGN=''center''><H2><%= strTitle %></H2></TD>
</TR>
<TR>
<TD VALIGN=''center''><B><%= strYAxisLabel %></B></TD>
<TD VALIGN=''top''>
<TABLE BORDER=''<%= TABLE_BORDER %>'' CELLSPACING=''0'' CELLPADDING=''0''>
<TR>
<TD ROWSPAN=''2''><IMG SRC=''/uploadfile/201210/17/5594111899.gif'' BORDER=''0'' WIDTH=''1'' HEIGHT=''<%= GRAPH_HEIGHT %>''></TD>
<TD VALIGN=''top'' ALIGN=''right''><%= iMaxValue %> </TD>
</TR>
<TR>
<TD VALIGN=''bottom'' ALIGN=''right''>0 </TD>
</TR>
</TABLE>
</TD>
<TD>
<TABLE BORDER=''<%= TABLE_BORDER %>'' CELLSPACING=''0'' CELLPADDING=''0''>
<TR>
<TD VALIGN=''bottom''><IMG SRC=''/uploadfile/201210/17/9F94111992.gif'' BORDER=''0'' WIDTH=''<%= GRAPH_BORDER %>'' HEIGHT=''<%= GRAPH_HEIGHT %>''></TD>
<%
'' 对数组所有数值进行循环,绘制条形图!
For I = 0 To UBound(aValues)
iBarHeight = Int((aValues(I) / iMaxValue) * GRAPH_HEIGHT)
'' 因为浏览器会忽略0高度的条形图,所以用1代替!
If iBarHeight = 0 Then iBarHeight = 1
%>
<TD VALIGN=''bottom''><IMG SRC=''/uploadfile/201210/17/5594111899.gif'' BORDER=''0'' WIDTH=''<%= GRAPH_SPACER %>'' HEIGHT=''1''></TD>
<TD VALIGN=''bottom''><IMG SRC=''/uploadfile/201210/17/3A94111418.gif'' BORDER=''0'' WIDTH=''<%= iBarWidth %>'' HEIGHT=''<%= iBarHeight %>'' ALT=''<%= aValues(I) %>''></A></TD>
<%
Next ''I
%>
</TR>
<TR>
<TD COLSPAN=''<%= (2 * (UBound(aValues) + 1)) + 1 %>''><IMG SRC=''/uploadfile/201210/17/9F94111992.gif'' BORDER=''0'' WIDTH=''<%= GRAPH_BORDER + ((UBound(aValues) + 1) * (iBarWidth + GRAPH_SPACER)) %>'' HEIGHT=''<%= GRAPH_BORDER %>''></TD>
</TR>
<% '' 检查横坐标数组是否有效! %>
<% If IsArray(aLabels) Then %>
<TR>
<TD><!-- 留点空间 --></TD>
<% For I = 0 To UBound(aValues) %>