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

原创 2004年05月24日 14:30:00

二、使用OWC控件和HTML表格展现XML数据<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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联机文档中提供了另外一种OWCXML数据的直接绑定来实现图表,其需要同时加载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

在html中解析xml文件(javascript 读取)

[html] view plain copy   xml version="1.0"?>      note>   to>Georgeto>   from>John...
  • zhengshifeng123
  • zhengshifeng123
  • 2016年09月19日 09:14
  • 1050

Xml方面xml有哪些解析技术?区别是什么?你在项目中用到了xml技术的哪些方面?如何实现的?

原文地址:http://blog.sina.com.cn/s/blog_49d3ec2f0102dvm4.html作者:LuChao 1、xml有哪些解析技术?区别是什么? 2、你在项...
  • xiong_1234
  • xiong_1234
  • 2014年07月28日 13:10
  • 1253

前端技术:ECharts-Enterprise Charts商业级数据图表库-----理解

一、简介 ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/...
  • ruanniu
  • ruanniu
  • 2016年06月21日 16:25
  • 714

Linq To Xml操作XML增删改查

转自:http://www.tuicool.com/articles/E7FZRv 对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容;本文将简单运用Linq TO ...
  • HorseRunningNoStop
  • HorseRunningNoStop
  • 2017年03月26日 22:50
  • 176

二三维一体化 彰显GIS应急管理核心价值

原文地址:彰显GIS应急管理核心价值" href="http://blog.sina.com.cn/s/blog_7f1143e00100u1qd.html" target="_blank">二三维一...
  • sophiasy
  • sophiasy
  • 2013年12月25日 10:07
  • 4192

用xml充当小型数据库案例

利用dom4j工具,将user.xml作为一个小型的数据库,然后控制台输入进行用户名与密码的匹配 /*user.xml文件放在src下*/ /*控制台输入内容匹配user.xml...
  • sinat_22797429
  • sinat_22797429
  • 2017年06月06日 18:11
  • 263

从零实现MVC框架之数据库连接池(2)

使用mysql数据库,JDK1.7。 数据库配置
  • maosijunzi
  • maosijunzi
  • 2014年07月15日 18:45
  • 4110

有了"数据库"为什么还要用"xml" ?

有了数据库为什么还要用XML?XML与数据库各自的特点、他们的应用与区别我想你从Google上可以查到一大堆,那么在这里 我只说说自己的体会: 1:尽管XML和数据库都可以定义数据模型并存储数据,...
  • baidu_28514449
  • baidu_28514449
  • 2015年11月17日 21:15
  • 2534

抢红包背后的技术点

最近做了一个抢红包的项目,这个项目涉及到了后端开发的多个技术点 应用层悲观锁 数据库锁机制 数据库事务 数据库索引 以上这些技术点都是为高并发场景服务的。应用层悲观锁为了使抢红包的请求能够依次处理,使...
  • u010205879
  • u010205879
  • 2016年11月16日 17:45
  • 1069

xml有哪些解析技术?区别是什么?

1.DOM生成和解析XML文档 为 XML 文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM 接口来操作这个树结构。优点:整个文档树在内...
  • lingzhm
  • lingzhm
  • 2015年09月10日 21:27
  • 8911
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用XML技术实现OWC对数据库的展示(二)
举报原因:
原因补充:

(最多只允许输入30个字)