论文部分内容阅读
[摘 要]在使用ASP或ASP.net进行Web开发中,经常需要将各种统计数据或数据库以图形的方式表达出来。如果是绘制简单的直线或柱状图可以采用画表格或缩放特定的GIF图象的高度和宽度来实现,但如果要绘制一些复杂的曲线就比较困难了。本文通过对OFFICE自带的OWC(Microsoft Office Web Compoent)控件的研究和认识实现了复杂曲线的绘制,并将这种方法绘制了鄯善油田常用的几类油藏动态分析图件。
[关键词]绘图 ASP OWC 控件
中图分类号:TE19 文献标识码:A 文章编号:1009-914X(2013)10-0075-01
1、关于OWC组件
OWC(Microsoft Office Web Components)是 Microsoft Office 使用的数据绑定 ActiveX 控件,用于向 Web 页添加图表功能。OWC支持Microsoft Excel 2000中大部分的二维图表(如折线图、柱形图、股价图等)和极坐标图表(如饼图和雷达图),并支持组合图表,如两轴线-柱图,数据表会随同图表发布,图表随着数据的变化而改变。OWC能将处理结果做为标准GIF输出并下载到浏览器中显示
2、OWC图表对象区工作模型
在右图中ChartSpace代表一个图表工作区集合,它就是顶层的图表容器;一个图表工作区可以设置很多属性例如border(边界)属性、interior(填充)属性、Wcdatasource(数据源)属性等;每个图表都有一个Wccharts对象代表,在创建了一个图表后可以设置该图表的Wcaxies(坐标)属性、Wcfont(字体属性)等。OWC详细的方法和属性介绍请读者参照Microsoft Office的有关帮助文件。
3、OWC在开发数据库中的应用
3.1 安装OWC组件
尽管OWC的安装过程很简单,只需要一个正版授权的Office 2000(或以上版本),然后在Web服务器上运行setup程序。选择定制安装,在工具标题下,只选择中Web组件选项。当然,我们也可以在Web 服务器上安装Office 2000的完整版本,其中自然也就包含了Web组件。接着,Setup程序顺序地完成其它工作,包括组件注册。
3.2 开发环境
在具体的数据库开发中采用IIS 5.0/Windows 2000服务器环境,用IE5.0以上版本测试的。当然Netscape 4.x及更高版本也可以正常使用。数据库采用吐哈“数字油田”系统的的Oracle 9.0。
3.3 程序设计
下面的例子将通过读出Dba04(采油井月数据)和DBA01(采油井日数据)绘制产量变化曲线和产量构成曲线。
(1)、创建基本对象:
OWC组件对象的创建可以在ASP中创建,如下面代码:
Set objChartSpace = Server.CreateObject("OWC.Chart")
set objChart = objChartSpace.Charts.Add()
set c = objChartSpace.Constants
当然也可以在html中直接插入ChartSpace对象,例如:
由于OWC的制图操作是在一个图表空间进行的。一个图表空间可以包含一个或多个图表,每个图表都可能包含一个或多个数列,每个数列都可以包含一个或多个数据点。根据这个原理,首先创建一个图表空间对象,然后用它的Add方法向图表空间的图表集合中增加一个图表。第三行代码的目的是为了引用方便起见:图表空间有一个Constants属性,其中包含所有相关图表函数中使用的列举常数;每次想要引用一个常数时,就可以键入c而不是objChartSpace.Constants,这样效率会更高。
(2)、定义图表类型
由于我们要绘制的采油曲线是直线型的,并且加上图例。..
objChart.Type = c.chChartTypeLine
objChart.HasLegend = True
…
(3)、连接开发数据库
接着我们要设置Chart对象的数据源,我们采用ADODB对象访问Oracle数据库中的DBA04(采井月数据)的鄯9-17井的日期和月产油量字段。
set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "provider=sqloledb;data source=sscyc;" & _
set objRS = Server.CreateObject("ADODB.Recordset")
set objRS.ActiveConnection = objConn
objRS.CursorType = adOpenStatic
objRS.CursorLocation = adUseClient
objRS.Open "select rq,ycyl1 from dba04 where jh=’鄯9-17’ order by rq"
.以上关键一项是为记录集设置客户端指针。要与OWC一起工作,一个记录集必须要有客户端的non-forward-only型指针。 (4)、为OWC设置数据列
建立起一个记录集后,我们将其附到图表中,并设置要显示的数列:
set objChartSpace.DataSource = objRS
objChart.SetData c.chDimSeriesNames
for each objSeries in objChart.SeriesCollection
objSeries.SetData c.chDimCategories, 0, "ycyl"
objSeries.SetData c.chDimValues, 0, "rq"
接着我们为每个坐标轴加上标题
for each axis in objChart.Axes
axis.HasTitle = True
if axis.Type = c.chCategoryAxis then
axis.Title.Caption = "日期"
else
axis.Title.Caption = "产油量"
end if
next...
(5)、生成图片格式
最后,我们使用一个函数将图表输出为一种图形格式,在页面上显示它,最后使用另一个函数清除:
strChartFile = ExportChartToGIF(objChartSpace, strChartAbsPath, strChartRelPath)
Response.Write "" & " "
CleanUpGIF strChartAbsPath
同样可以利用add方法增加另外几条采油曲线。用同样的方法生成的鄯8-191吸水剖面分析图。
4、认识与结论
充分利用OWC组件可以生成基于WEB页的油井的采油曲线、产量变化图、开采现状图、产量构成图、井身结构图、注采反应曲线、连通图等在油藏动态分析中常用的分析图件。随着吐哈油田开发数据库建设的日益完善,该组件必将在开发数据库的应用和油藏动态分析中发挥更大的作用。
[关键词]绘图 ASP OWC 控件
中图分类号:TE19 文献标识码:A 文章编号:1009-914X(2013)10-0075-01
1、关于OWC组件
OWC(Microsoft Office Web Components)是 Microsoft Office 使用的数据绑定 ActiveX 控件,用于向 Web 页添加图表功能。OWC支持Microsoft Excel 2000中大部分的二维图表(如折线图、柱形图、股价图等)和极坐标图表(如饼图和雷达图),并支持组合图表,如两轴线-柱图,数据表会随同图表发布,图表随着数据的变化而改变。OWC能将处理结果做为标准GIF输出并下载到浏览器中显示
2、OWC图表对象区工作模型
在右图中ChartSpace代表一个图表工作区集合,它就是顶层的图表容器;一个图表工作区可以设置很多属性例如border(边界)属性、interior(填充)属性、Wcdatasource(数据源)属性等;每个图表都有一个Wccharts对象代表,在创建了一个图表后可以设置该图表的Wcaxies(坐标)属性、Wcfont(字体属性)等。OWC详细的方法和属性介绍请读者参照Microsoft Office的有关帮助文件。
3、OWC在开发数据库中的应用
3.1 安装OWC组件
尽管OWC的安装过程很简单,只需要一个正版授权的Office 2000(或以上版本),然后在Web服务器上运行setup程序。选择定制安装,在工具标题下,只选择中Web组件选项。当然,我们也可以在Web 服务器上安装Office 2000的完整版本,其中自然也就包含了Web组件。接着,Setup程序顺序地完成其它工作,包括组件注册。
3.2 开发环境
在具体的数据库开发中采用IIS 5.0/Windows 2000服务器环境,用IE5.0以上版本测试的。当然Netscape 4.x及更高版本也可以正常使用。数据库采用吐哈“数字油田”系统的的Oracle 9.0。
3.3 程序设计
下面的例子将通过读出Dba04(采油井月数据)和DBA01(采油井日数据)绘制产量变化曲线和产量构成曲线。
(1)、创建基本对象:
OWC组件对象的创建可以在ASP中创建,如下面代码:
Set objChartSpace = Server.CreateObject("OWC.Chart")
set objChart = objChartSpace.Charts.Add()
set c = objChartSpace.Constants
当然也可以在html中直接插入ChartSpace对象,例如:
由于OWC的制图操作是在一个图表空间进行的。一个图表空间可以包含一个或多个图表,每个图表都可能包含一个或多个数列,每个数列都可以包含一个或多个数据点。根据这个原理,首先创建一个图表空间对象,然后用它的Add方法向图表空间的图表集合中增加一个图表。第三行代码的目的是为了引用方便起见:图表空间有一个Constants属性,其中包含所有相关图表函数中使用的列举常数;每次想要引用一个常数时,就可以键入c而不是objChartSpace.Constants,这样效率会更高。
(2)、定义图表类型
由于我们要绘制的采油曲线是直线型的,并且加上图例。..
objChart.Type = c.chChartTypeLine
objChart.HasLegend = True
…
(3)、连接开发数据库
接着我们要设置Chart对象的数据源,我们采用ADODB对象访问Oracle数据库中的DBA04(采井月数据)的鄯9-17井的日期和月产油量字段。
set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "provider=sqloledb;data source=sscyc;" & _
set objRS = Server.CreateObject("ADODB.Recordset")
set objRS.ActiveConnection = objConn
objRS.CursorType = adOpenStatic
objRS.CursorLocation = adUseClient
objRS.Open "select rq,ycyl1 from dba04 where jh=’鄯9-17’ order by rq"
.以上关键一项是为记录集设置客户端指针。要与OWC一起工作,一个记录集必须要有客户端的non-forward-only型指针。 (4)、为OWC设置数据列
建立起一个记录集后,我们将其附到图表中,并设置要显示的数列:
set objChartSpace.DataSource = objRS
objChart.SetData c.chDimSeriesNames
for each objSeries in objChart.SeriesCollection
objSeries.SetData c.chDimCategories, 0, "ycyl"
objSeries.SetData c.chDimValues, 0, "rq"
接着我们为每个坐标轴加上标题
for each axis in objChart.Axes
axis.HasTitle = True
if axis.Type = c.chCategoryAxis then
axis.Title.Caption = "日期"
else
axis.Title.Caption = "产油量"
end if
next...
(5)、生成图片格式
最后,我们使用一个函数将图表输出为一种图形格式,在页面上显示它,最后使用另一个函数清除:
strChartFile = ExportChartToGIF(objChartSpace, strChartAbsPath, strChartRelPath)
Response.Write "" & " "
CleanUpGIF strChartAbsPath
同样可以利用add方法增加另外几条采油曲线。用同样的方法生成的鄯8-191吸水剖面分析图。
4、认识与结论
充分利用OWC组件可以生成基于WEB页的油井的采油曲线、产量变化图、开采现状图、产量构成图、井身结构图、注采反应曲线、连通图等在油藏动态分析中常用的分析图件。随着吐哈油田开发数据库建设的日益完善,该组件必将在开发数据库的应用和油藏动态分析中发挥更大的作用。