使用XML技术实现OWC对数据库的展示(二)

xml|数据|数据库

二、使用OWC控件和HTML表格展现XML数据2.1 基本功能的实现
这里新建了另外一个HTML页面。为了使用刚才得到的XML数据,在HTML页面中,采用XML 数据岛:

<XML id="dbXML" src="getData.asp" onreadystatechange="init()"></XML>

 

然后,可以利用HTML表格的绑定功能展现数据:

<table  datasrc="#dbXML" style="width:100%;BORDER-COLLAPSE: collapse;" border=1 cellpadding=0 cellspacing=0> 

   <tr> 

    <td><div  type=text  datafld=Stat_Date></div></td> 

    <td><div  type=text  datafld=Call_Num></div></td>

    <td><div type=text datafld=Call_Fee></div></td> 

   </tr> 

</table>

 

在刚才的XML数据岛的onreadystatechange事件对应的init()函数中,我们通过如下代码实现OWC的图表:

<OBJECT id=CS1 style="WIDTH:400px;TOP:0px;HEIGHT:280px"

classid=clsid:0002E556-0000-0000-C000-000000000046 VIEWASTEXT>

</OBJECT>

<script lanaguage=vbscript>

Sub init()

    if(dbXML.readyState="complete") then

        dim strXML

        set strXML=dbXML.XMLDocument

        createChart strXML,CS1

    end if

End Sub

Sub createChart(byref oxml,cspace) '根据传入的XML生成图表

        Dim xdoc,xroot,cCnt

        Dim ndx,cnode,txtData,txtCat,txtData2

           

        Set xdoc=dbXML.XMLDocument

        Set xroot = xdoc.documentElement

        cCnt = xroot.childNodes.length

        txtData = "":txtCat = ""

 

        ' 从XML数据中得到相应的子符串

        For ndx = 0 To cCnt - 1

            Set cnode = xroot.childNodes(ndx)

            txtCat = txtCat & cnode.childNodes(0).text

            txtData = txtData & cnode.childNodes(1).text

            txtData2=txtData2 & cnode.childNOdes(2).text

            if ndx <> (cCnt -1) then

                txtCat = txtCat & ","

                txtData = txtData & ","

                txtData2 = txtData2 & ","

            end if

        Next

       

        '---下面开始绘图----------

       '添加数据序列1

       set ch =cspace.Charts.Add()

       set s = ch.SeriesCollection.Add()

       s.name="通话费用(元)"

       s.Caption=s.name

       s.SetData c.chDimCategories,c.chDataLiteral, txtCat

       s.SetData c.chDimValues, c.chDataLiteral, txtData

       s.type=8 '曲线图

      

       '设定时间刻度轴格式

       Set axCategory = cspace.Charts(0).Axes(c.chAxisPositionCategory)

        with axCategory

           .GroupingUnitType = c.chAxisUnitMonth '月

           .GroupingUnit = 1 '单位

           .NumberFormat="Short Date" '短日期

       end with

      

       '添加数据序列2

       set s2 = ch.SeriesCollection.Add()

        s2.name="通话次数(次)"

       s2.Caption=s2.name

       s2.SetData c.chDimValues, c.chDataLiteral, txtData2

 

       '标题

       ch.HasTitle = true

       ch.Title.Caption="通话情况月报"

       ch.Title.font.color="black"

       ch.Title.font.size=10

       ch.Title.font.bold=true

      

       'ChartSpace属性

       cspace.Border=c.chLineDash

       cspace.HasSelectionMarks=true

       cspace.AllowFiltering=true '允许命令与分组

       cspace.AllowPropertyToolbox=true

      

       '设置图例及位置

       ch.Legend.Position=c.chLegendPositionRight

       ch.HasLegend=false

 

       '分成不同的组,显示双坐标轴

       s2.UnGroup TRUE

       Set axIncomeAxis = ch.Axes.Add(s2.Scalings(c.chDimValues))

       axIncomeAxis.Position = c.chAxisPositionRight

       axIncomeAxis.HasMajorGridlines=false

       s2.type=0 '柱形图

    End Sub

 

这样,我们就得到了数据表格和图表,其最终效果如下:

这样,借助于XML技术和IE绑定技术,我们就实现了OWC对数据库中数据的展示,而在客户端并没有暴露任何数据连接信息。

 
2.2 其他功能
OWC可以很容易的实现将所见到的图表保存为本地图片,大大方便了使用者。同时,OWC提供了多种图表类型,如:饼图、曲线图、柱形图等,适合在不同的情况下展现数据。

 

如果借助COM组件、以及对XSL的灵活运用,我们这个页面能得到更好的性能和更强的功能。比如:对HTML表格的排序(参见附件中的HTML源代码)、数据分页等。此外,我们还可以实现通用的数据访问、搜索功能。

 

 

附:参考文档

1:微软MSDN联机文档中提供了另外一种OWC对XML数据的直接绑定来实现图表,其需要同时加载datasourceControl控件或者Spreadsheet控件。参见:

http://msdn.microsoft.com/library/en-us/dnowcbk/html/odc_chap4owc.asp?frame=true#odc_chap4owc_xml

 

2:本文档参考了OWC ToolPack文档中的VBScript生成ChartSpace图表的相关内容。OWC ToolPack是微软推荐的进行OWC开发的最佳参考文档。下载地址如下:

http://www.microsoft.com/downloads/details.aspx?FamilyId=BEB5D477-2100-4586-A13C-50E56F101720&displaylang=en

时间: 2024-09-29 11:57:25

使用XML技术实现OWC对数据库的展示(二)的相关文章

使用XML技术实现OWC对数据库的展示(一)

xml|数据|数据库 概述:   本文档介绍了如何借助XML语言实现在Web页面上的OWC对数据库中的数据进行展示的方法.由于XML数据可以跨越防火墙,因此该方式可以实现在Internet上对数据进行展现. 在基于WEB的数据库分析应用中,常常借助OWC控件结合HTML实现对数据的表格和图表两种方式的展现.一般应用往往采用OWC直接连接数据库的方式,这会使数据库连接口令暴露在客户端,而使数据库的安全性降低.本文介绍的采用XML作为OWC和数据库之间数据交换介质的方式,能够避免这种对数据库造成的不

ASP.NET中用OWC10及XML技术实现

asp.net|xml 摘要: 应用组件编程是C#的主要方面,本文结合作者在项目开发中的实际经验,通过一个具体实例来阐述调用组件OWC10和使用XML技术来绘制各种动态统计图,折线趋势图的方法和技巧.关键词:C#,ASP.NET,.NET SDK,OWC10,组件编程,XML,B/S模式,COM,服务器端,类,属性1 前言随着WWW的发展,愈来愈多的信息系统,专家系统开发采用浏览器/服务器(B/S)模式.自微软(Microsoft)公司在2002年3月推出.net之后,由于快速,高效,方便等特性

在PHP中利用XML技术构造远程服务(转)

xml|远程服务 在PHP中利用XML技术构造远程服务 未来的Web将是以服务为中心的Web,XML_RPC标准使得编写和应用服务变得非常简单.本文介绍XML_RPC标准及其PHP实现,并通过实例示范了如何在PHP中开发XML_RPC服务和客户程序. 一.服务式Web 从内容提供商所采用的简单方法到UDDI(Universal Description,Discovery and Integration)的未来构想,业界已经有大量关于"服务式Web"的说明和评论.就Web的初创阶段来说,

XML技术上传文件-转贴

xml|上传                         XML技术上传文件 概述本文讲解了一个使用XML技术上传文件的例子,使用该方法没有传统方法中的种种限制. 这个例子讲述了如何使用MSXML3.0和ADO Stream对象来实现这种新的上传方法.好处有很多,比如,不需要专用的上传组件. 引言为了在HTML网页中获得上传功能,在客户端我们可以使用如下格式的FORM: <FORM NAME="myForm"ACTION="TargetURL.asp"EN

XML技术思想

可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输.XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据. 用途: XML设计用来传送及携带数据信息,不用来表现或展示数据,HTML语言则用来表现数据,所以XML用途的焦点是它说明数据是什么,以及携带数据信

XML技术入门讲座(1)

xml   XML(eXtensible Markup Language,可扩展置标语言)是由W3C(World Wide WebConsortium,互联网联合组织)于1998年2月发布的一种标准,同HTML一样是SGML(Standard Generalized MarkupLanguage,标准通用置标语言)的一个简化子集.由于它将SGML的丰富功能与HTML的易用性结合到了Web的应用中,自推出以来,迅速得到软件开发商的支持和程序开发人员的喜爱,显示出强大的生命力.  由于XML较好地解

XML技术入门讲座(2)

xml <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  XML的文档格式 首先介绍XML文档内容的基本单元--元素,它的语法格式如下: 〈标签〉文本内容〈/标签〉 元素是由起始标签.元素内容和结束标签组成.用户把要描述的数据对象放在起始标签和结束标签之间.例如: <姓名>王平</姓名> 无论文本内容有多长或者多么复杂,XML元素中还可以再嵌套别

XML 技术指南(4)

xml <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  <HTML><HEAD> <STYLE> .time { behavior:url(#default#time); } </STYLE></HEAD><BODY> <DIV CLASS="time" t:timeli

XML 技术指南(1)

xml <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  概要:本文介绍了XML以及XML家族中的各项技术.我们将讨论这其中的各项核心技术是如何组合成一个完整的整体以及一些支持XML技术的东西究竟是什么. 似乎这样的事情每天都在发生:越来越多的开发者都相信XML(Extensible Markup Language)将从根本上改变我们的软件业.但如果你想从他们那里弄清楚