使用OpenFlashChart 2.0结合asp.net后台代码生成曲线图
一、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是曲线图的线程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述