| 网站首页 | 资讯 | 影音 | 图片 | 论坛 | 模拟驾考 | 免费取名算命 | 瓷都工具 | 留言本 | 域名 | 瓷都商城 | 汇款 | 
|
资讯首页
|
瓷都德化
|
站内新闻
|
影视剧情
|
汽车世界
|
网络文摘
|
周易八卦
|
教程技巧
|
房产信息
|
您现在的位置: 瓷都热线|诚信中国:“一就是一”(1941.CN) >> 资讯 >> 教程技巧0 >> 网络编程 >> 正文 登录 注册
专 题 栏 目
  • 四川汶川8.0级强震
  • 机动车驾驶员考试资料
  • 高考试题及答案
  • 最 新 热 门
     德化又添3个地理标志证明
     [组图]期待!德化龙门湖
     [组图]德化:“绿色动脉
     [图文]德化:造莲花美景
     [图文]德化:编织小网格
     [图文]德化龙门滩龙门湖
     [图文]福建德化县美湖镇
     德化白瓷艺术展亮相深圳
     [组图]“世界瓷都·润养
     德化:前妻婚内举债近8万
    最 新 推 荐
     [组图]期待!德化龙门湖
     [组图]德化:“绿色动脉
     [图文]德化龙门滩龙门湖
     [图文]福建德化县美湖镇
     [组图]德化各种花卉相继
     [组图]福建德化九仙山迎
     [图文]德化石牛山惊现双
     [组图]千年古瓷都德化的
     [组图]警方连捣5传销窝点
     [组图]福建民俗博物馆办
    相 关 文 章
    如何制作无状态的ASP组件
    GB与BIG5内码转换COM原代
    一个用组件动态创建Exce
    利用MSCHART画图的一段代
    利用OWC画图的例子
    ASP生成Word文档的又一方
    如何准确定时运行ASP文件
    在ASP处理程序时显示进度
    ASP进度条
    将人民币的数字表示转化
    利用OWC服务器端组件动态生成图表         ★★★
    利用OWC服务器端组件动态生成图表
    作者:未知 文章来源:网络文摘 更新时间:2006-5-10 2:40:16
    【声明:转载此信息在于传递更多信息,其内容表达的观点并不代表本站立场,由这些信息所产生的一切后果本站不负任何责任。如果您对本信息有什么意见,欢迎和本站联系,谢谢!】http://CiDu.Net

      以前在这里也曾经有一些文章谈到了在ASP中生成动态图表的问题,但那些文章中所谈到的一些方法都有某些方面的限制,如需要在客户端安装office2000或安装OWC,有些则可能在Intranet中使用时没什么问题,但在通过Internet访问的时候,就可能出现无法正常工作的现象(这主要和SQL Server的安全设置有关)。那么,我们如何来避免这些问题呢?有一个很好的方法,就是将在ASP中生成的图表转换成图片文件保存在服务器上,这样用户最终看到的是GIF图片格式的图表,我想现在的任何一种浏览器在观看GIF图片的时候都没什么问题吧。:)也许唯一可能的问题就是如何对这些生成的临时图片文件的处理问题,关于这个问题在最后我们会讨论。//by http://CiDu.Net/

      下面我们会用一个具体的实例来说明这种方法。程序的测试环境为:

      NT4.0(SP5)+IIS4.0+SQL Server7.0+IE5.0,要运行下面的ASP程序,请将下面的代码Copy,保存到你的一个虚拟目录中,在这个虚拟目录中建立一个子目录tmp(你可能修改代码中的路径以符合自己的路径),在IIS中设置read权限即可,注意了,在NT上你必须设置此tmp目录对IUSR_servername用户至少有Change的权限。建立一个pubs的DSN指向SQL Server的pubs数据库。//by http://CiDu.Net/

      以下是代码:

    chart.asp
    <%
    Function ExportChartToGIF(cspace)
        Dim fso            
        Dim sFilePath      
        Dim sFileName     

        '生成临时文件的文件名
        set fso = CreateObject("Scripting.FileSystemObject")
        sFilePath = Request.ServerVariables("PATH_TRANSLATED")
        sFilePath = left(sFilePath, InStrRev(sFilePath, ""))
        sFilePath = sFilePath & "tmp"
        sFileName = fso.GetTempName()
        sFileName = sFileName & ".gif"
        set fso=nothing
        '将chart转换成GIF文件保存在临时目录
        m_cspace.ExportPicture sFilePath & sFileName, "gif", 200, 150
       
        '将生成的临时图片报存在session中以便于删除
        Session("TC:" & sFilePath & sFileName) = sFilePath & sFileName
        ExportChartToGIF = sFileName
    End Function

    Sub BindChartToDSC(cspace, dsc, sRSName, sCategories, sValues)
        Dim cht   
        Dim ser   
            
        set c = cspace.Constants
            
        cspace.Clear

        ' 绑定数据源
        set cspace.DataSource = dsc
            
        cspace.DataMember = sRSName
            
        set cht = cspace.Charts.Add()
        cht.HasLegend = True
        cht.Type = c.chChartTypePie
            
        set ser = cht.SeriesCollection.Add()
        ser.SetData c.chDimCategories, 0, sCategories
        ser.SetData c.chDimValues, 0, sValues
            
        set dls = ser.DataLabelsCollection.Add()
        dls.HasPercentage = True
        dls.HasValue = False

    End Sub
    %>
    <html>

    <head>
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>利用OWC动态生成图表</title>
    </head>

    <body>
    <%
    set m_cspace = server.CreateObject("OWC.Chart")
    set DSC = server.CreateObject("OWC.DataSourceControl")
    DSC.ConnectionString = "DSN=pubs;uid=sa"
    DSC.RecordsetDefs.AddNew "select distinct state,num=COUNT(*) FROM authors GROUP BY state",DSC.Constants.dscCommandText,"ChartData"
    BindChartToDSC m_cspace, DSC, "ChartData", "state", "num"
    m_sFilePath = ExportChartToGIF(m_cspace)
    set m_cspace=nothing
    set m_cht=nothing
    %>

    <br><br>
    <img src="tmp/<%= m_sFilePath %>">
    </BODY>
    </HTML>
    其中我们会发现两个有用的函数:ExportChartToGIF和BindChartToDSC
    ExportChartToGIF(cspace)是一个用来将chart转换成GIF文件的函数
    cspace:一个OWC.Chart的实例
    BindChartToDSC(cspace, dsc, sRSName, sCategories, sValues)用来将一个Chart绑定到数据源
    cspace:OWC.Chart的实例
    dsc:数据源
    sRSName:记录集名称
    sCategories,sValues:Chart中每个系列的名称字段和相应的值的字段名(说的好象不是很清楚,不过看看代码你就明白了)
    在使用服务器端的OWC时,实际上和使用其它的组件没什么区别,都是用server.createobject来创建一个实例,再调用组件的方法和属性。
    OWC包括四个组件,他们的ProgID分别为:
    OWC.Chart:图表组件
    OWC.SpreadSheet:电子表格组件
    OWC.DataSourceControl:数据源组件
    OWC.PivotTable:动态报表组件

    最后说一下如何处理临时的图片文件
    在ExportChartToGIF汉书中你可以看到如下的代码:
    Session("TC:" & sFilePath & sFileName) = sFilePath & sFileName
    我们将产生的图片文件路径保存在session中,然后在Session_OnEnd中添加如下的代码:
    Set fsoTemp = CreateObject("Scripting.FileSystemObject")
    for each imagefile in Session.Contents
        if left(imagefile,3) = "TC:" then
            fsoTemp.DeleteFile mid(imagefile,4), True
        end if
    next
    set fsoTemp=nothing

    好了。终于写完了,其中关于临时文件的处理的方法也许不是很好,如果你有更好的方法的话,请告诉我。希望这篇文章对大家都所帮助:)


    声明:以上信息资料大都是网上搜集而来,版权归作者,如有版权问题请留言告知我将马上改正。
    文中所提到的各种观点只是原文观点,各种说法未经一一确认。并不代表本站认可此观点!!
    资讯录入:admin    责任编辑:admin 
  • 上一篇资讯:

  • 下一篇资讯:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    点击数:860
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论