1.前台代码:

<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="testowc.aspx.cs" Inherits="web_testowc" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script type="text/javascript" language="javaScript" src="/_layouts/images/include/timein.js"></script>
<script language="javascript">...
<!--
function Ini()
...{
var chart = document.getElementById("Chart");//new ActiveXObject("OWC11.ChartSpace.11");
var c = chart.Constants;
if(chart == null)
...{
alert("您没有安装Office!");
}
chart.Clear();
var m_Chart = chart.Charts.Add(0);
//m_Chart.PlotArea.Interior.SetOneColorGradient(c.chGradientVariantStart,c.chGradientVariantStart,0.15, "Silver")
m_Chart.HasLegend = true
m_Chart.HasTitle = true
m_Chart.Title.Caption = "油耗量统计分析";
m_Chart.Axes(0).HasTitle = true;
m_Chart.Axes(0).Title.Caption = "月份";
m_Chart.Axes(1).HasTitle = true;
m_Chart.Axes(1).Title.Caption = "油耗量";
m_Chart.type=0;
<% for(int i=0 ;i<arr1.Count;i++)
...{%>
var aCats<%=i%> = <% =arr1[i].ToString()%>;
var aVals<%=i%> = <% =arr2[i].ToString()%>;
var oSer<%=i%> = m_Chart.SeriesCollection.Add(<% =i %>);
oSer<%=i%>.SetData(c.chDimSeriesNames,-1, <% =i.ToString() %>);
oSer<%=i%>.SetData(c.chDimCategories,-1,aCats<% =i %>);
oSer<%=i%>.SetData(c.chDimValues,-1,aVals<% =i %>);
<%
}%>
chart.AllowPropertyToolbox = true;
chart.DisplayToolbar=true;
}
-->
</script>
</head>
<body onload="javascript:Ini()" style="text-align: center">
<form id="form1" runat="server">
<div style="text-align: center">
<table style="width: 874px">
<tr>
<td colspan="4">
</td>
</tr>
<tr>
<td style="text-align: right">
<input style="width: 125px" id="txtSTime" readonly type="text" runat="server" /><img
style="cursor: hand" onclick="fPopUpCalendarDlg(txtSTime,'/_layouts/images/include/timein.htm','yyyy-mm-dd');return false"
alt="弹出日历下拉菜单" src="/_layouts/images/include/datetime.gif" align="middle" />
</td>
<td>
~</td>
<td style="text-align: left" colspan="2">
<input style="width: 125px" id="txtSTime1" readonly type="text" runat="server" /><img
style="cursor: hand" onclick="fPopUpCalendarDlg(txtSTime1,'/_layouts/images/include/timein.htm','yyyy-mm-dd');return false"
alt="弹出日历下拉菜单" src="/_layouts/images/include/datetime.gif" align="middle" />
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
<asp:TextBox ID="TextBox1" runat="server" Width="97px"></asp:TextBox>
<asp:Button ID="btnOk" runat="server" Text="确定" OnClick="btnOk_Click" /></td>
</tr>
<tr>
<td colspan="4" style="height: 339px">
<object id="Chart" name="Chart" codebase="http://www.smnpc.cn/bin/OWC11.DLL#version=11,0,6555,0"
classid="clsid:0002E55D-0000-0000-C000-000000000046" progid="OWC11.ChartSpace.11" width="650px" height="450px">
</object>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
2.后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.Data.SqlClient;
using System.Text;
using Yesidea.DAO;
public partial class web_testowc : System.Web.UI.Page
...{
DbHelperSQL dbhelper = new DbHelperSQL(new BaseDAO());
protected ArrayList arr1 = new ArrayList();
protected ArrayList arr2 = new ArrayList();
protected ArrayList arr3 = new ArrayList();
public string []driver = new string[2];
protected void Page_Load(object sender, EventArgs e)
...{
if (!IsPostBack)
...{
Yesidea.BO.CarInfo car = new Yesidea.BO.CarInfo();
DataSet ds = car.GetList("");
this.DropDownList1.DataSource = ds;
this.DropDownList1.DataTextField = "Cnumber";
this.DropDownList1.DataValueField = "Cnumber";
this.DropDownList1.DataBind();
}
}
protected void btnOk_Click(object sender, EventArgs e)
...{
driver = new string[] ...{ "王云", "测试" };
for (int j = 0; j < driver.Length; j++)
...{
GetData(this.txtSTime.Value, this.txtSTime1.Value, this.DropDownList1.SelectedValue, driver[j].ToString());
}
}
public int MonthStr(DateTime stime, DateTime etime)
...{
int i = (etime.Year - stime.Year) * 12 + (etime.Month - stime.Month);
return i;
}
protected DataSet CreateDriverOilDataSet(string stime,string etime, string cnumber, string cdriver)
...{
string cmdtxt = String.Empty;
if (stime != "" && etime != "" && cnumber != "" && cdriver != "")
...{
cmdtxt = "select Cnumber,Cdriver, sum(cfutel) as Futel,datename(year, Etime) as [Year],datename(month, Etime) as [Month] from ViewDriverUOil";
cmdtxt += " where Etime >'" + stime + "' and Etime <'" + etime + "' and Cdriver = ('" + cdriver + "') and Cnumber = ('" + cnumber + "')";
cmdtxt += " group by Cdriver,Cnumber,datename(month, Etime),datename(year, Etime)";
cmdtxt += " order by [Year] asc,[Month] asc";
//Response.Write(cmdtxt);
}
else if (stime != "" && etime != "" && cnumber == "" && cdriver != "")
...{
cmdtxt = "select Cdriver, sum(cfutel) as Futel,datename(year, Etime) as [Year],datename(month, Etime) as [Month] from ViewDriverUOil";
cmdtxt += " where Etime >'" + stime + "' and Etime <'" + etime + "' and Cdriver = ('" + cdriver + "') ";
cmdtxt += " group by Cdriver,datename(month, Etime),datename(year, Etime)";
cmdtxt += " order by [Year] asc,[Month] asc";
}
return dbhelper.Query(cmdtxt);
}
private void GetData(string stime,string etime, string cnumber, string cdriver)
...{
StringBuilder a = new StringBuilder("[");
StringBuilder b = new StringBuilder("[");
DataSet ds = CreateDriverOilDataSet(stime,etime,cnumber,cdriver);
ArrayList arylst = GetMonth(DateTime.Parse(stime),DateTime.Parse(etime));
for (int i = 0; i < arylst.Count; i++)
...{
a.Append(""" + arylst[i].ToString().Replace("-","") + "",");
bool endfor = false;
int m = 0;
for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
...{
if (arylst[i].ToString() == ds.Tables[0].Rows[j]["Year"].ToString() + "-" + ds.Tables[0].Rows[j]["Month"].ToString())
...{
endfor = true;
m = j;
}
}
if (endfor)
...{
b.Append(""" + ds.Tables[0].Rows[m]["Futel"].ToString() + "",");
}
else
...{
b.Append("" 0 ",");
}
}
a.Replace(",", "", a.Length - 1, 1);
if (a.Length == 1) a.Append(""无数据"");
a.Append("]");
b.Replace(",", "", b.Length - 1, 1);
if (b.Length == 1) b.Append("0");
b.Append("]");
arr1.Add(a.ToString());
arr2.Add(b.ToString());
}
private ArrayList GetMonth(DateTime timeS, DateTime timeE)
...{
ArrayList arr = new ArrayList();
int Count = timeE.Year - timeS.Year;
for (DateTime time = timeS; time < timeE; )
...{
arr.Add(time.ToString("yyyy-MM"));
time = time.AddMonths(1);
}
return arr;
}
}
油耗统计图表
本文介绍了一个使用OWC组件在网页上动态生成油耗统计图表的应用案例。该应用通过ASP.NET结合JavaScript实现了图表的绘制,并能根据用户输入的时间段和车辆信息动态更新图表数据。
195

被折叠的 条评论
为什么被折叠?



