一、OpenFlashChart下载
http://teethgrinder.co.uk/open-flash-chart/download.php
二、在项目中添加OpenFlashChart.dll的引用
引用的时候还需要在控件栏里添加对OpenFlashChart.dll控件的引用。引用后就可以直接拖放到页面上了。
应用到正式IIS环境中时还需要添加对C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll的映射,
映射扩展名为.ofc,且不要选中“检查文件是否存在”复选框
在Web.Config中的节点 <httpHandlers>添加
<httpHandlers>
<add verb="*" path="ofc_handler.ofc" type="OpenFlashChart.WebHandler.ofcHandler, OpenFlashChart"/>
</httpHandlers>
三、示例代码
这是Flash图表控件,支持线图及柱形图、饼图。
应用到正式IIS环境中时还需要添加对C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll的映射,
映射扩展名为.ofc,且不要选中“检查文件是否存在”复选框
以下是部份使用的源代码仅供参考:(曲线图示例)
下面代码需要 Imports OpenFlashChart
Public Sub CrTime()
Dim TbName As String = "CPC_" + ClongDate(SD.Text) + "_IPstat"
Dim CmdText As String = "Select Hs,Sum(IPs) as IPs,Sum(PVs) as PVs,Sum(Clicks) as clicks,Sum(S3s) as S3s from " + TbName + " where WebSiteID=" + WebSiteID.Text + " Group by Hs Order by Hs"
Dim Dt As New DataTable
Try
Dt = CmdText.ExecuteDataTable
Catch ex As Exception
ClientMsg("查询发生错误外错,可能数据不存在或查询超时:" + ex.Message)
History()
End Try
Dim IPsValue As New ArrayList
Dim PVsValue As New ArrayList
Dim ClicksValue As New ArrayList
Dim S3sValue As New ArrayList
Dim X As New XAxis
Dim MaxPV As Double = 0
If Dt.Rows.Count > 0 Then
Dim m As Integer
For m = 0 To Dt.Rows.Count - 1
IPsValue.Add(Dt.Rows(m)("IPs"))
PVsValue.Add(Dt.Rows(m)("PVs"))
ClicksValue.Add(Dt.Rows(m)("Clicks"))
S3sValue.Add(Dt.Rows(m)("S3s") * 100)
X.Labels.Add(New AxisLabel(Dt.Rows(m)("hs")))
If Dt.Rows(m)("PVs") > MaxPV Then
MaxPV = Dt.Rows(m)("PVs")
End If
Next
End If
Dim Chart As New OpenFlashChart.OpenFlashChart
Dim Lines(3) As Line
For m = 0 To Lines.Length - 1
Lines(m) = New Line
Lines(m).HaloSize = 0
Lines(m).Width = 2
Lines(m).DotSize = 5
Select Case m
Case 0
Lines(m).Values = PVsValue
Lines(m).Text = "PV"
Lines(m).Tooltip = "PV:#val#"
Lines(m).Colour = "#A942B8" '紫色
Case 1
Lines(m).Values = IPsValue
Lines(m).Text = "IP"
Lines(m).Tooltip = "IP:#val#"
Lines(m).Colour = "#F30219" '红色
Case 2
Lines(m).Values = ClicksValue
Lines(m).Text = "点击"
Lines(m).Tooltip = "点击:#val#"
Lines(m).Colour = "#46F302" '绿色
Case 3
Lines(m).Values = S3sValue
Lines(m).Text = "关键效果"
Lines(m).Tooltip = "关键效果:#val#"
Lines(m).Colour = "#255A10" '青色
End Select
Chart.AddElement(Lines(m))
Next
Dim WebInfo As New DataTable
WebInfo = ("Select * from WaUser_WebSites Where ID=" + WebSiteID.Text).ExecuteDataTable
Dim title As String = ""
If WebInfo.Rows.Count = 1 Then
title = String.Format("合作方ID:{0} 网站 {1}({2}) 分时访问数据", WebInfo.Rows(0)("UserID").ToString, WebInfo.Rows(0)("Domain").ToString, WebInfo.Rows(0)("ID").ToString)
Else
title = "无法获取网站信息!"
End If
Chart.Title = New Title(title) '设置报表标题
Chart.Y_Axis.SetRange(0, MaxPV, CInt(MaxPV / 6)) '设置Y轴的最高值,及每格的间隔值
Chart.Tooltip = New ToolTip("全局提示:#val#")
Chart.Tooltip.Shadow = True
Chart.Tooltip.Colour = "#000000"
Chart.Tooltip.MouseStyle = ToolTipStyle.CLOSEST
Chart.Bgcolor = "#FFFFFF"
Chart.X_Axis = X '这个是定义黄向座标的列。
OFC1.EnableCache = False
OFC1.Chart = Chart
End Sub
代码请自已研究。Line是曲线图的线程