`
lovelium
  • 浏览: 18892 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

共享一个ASP无组件折线图源码!强

阅读更多

我又来了,这几天我无意发现了一个地方有这个源码。当时下下来就没再找到那个网站。真得怪。好像是站长论坛上吧。这个效果不错。见图。

浏览页:http://www.szrgb.net/text/aspvml/ceshi.asp?ty=1&solid=true

只是现在只支持IE。

源码在下。相在代码:

 

<%
'这段注释不影响性能和速度,请保留
'开发人:宋新成
'形式:开源
'官方网址:www.idesktop.com.cn
'使用范围:各种需要生成图形报表,而又不能安装插件或者对速度要求比较高的系统
'联系方式:sxch2003@gmail.com  或 sxch2003@163.com     
'演示地址:www.idesktop.com.cn/demo.htm
'立体图形产生模块需要付费,50RMB,一年内升级免费
Class AspVml
    dim lcolor
    Private Sub Class_Initialize
        lcolor
="blue"
    End Sub
    
' Destructor'''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Class_Terminate
        
        
    End Sub
    
function setColor(color)
        lcolor
=color
    end 
function
    
    
    Function CreatePic(w,h,dc,t)
        Dim header,tail
        Dim content
        Dim linex,liney
        Dim back,lback
        Dim piestr
        Dim num
        Dim width
        DIm height
        num
=dc.count
        width
=getWidth(num)
        height
=getHeight(num)
        
'height=500
        header=GetHeader(width,height,t)
        tail=GetTail()
        piestr=""
        linex=DrawLineX(dc.count,width,height)
        
        liney=DrawLineY(width,height)
        back=GetBackground(width,height)
        lback=GetLegendBack(width,height)
        if(t=1) then
            content=GetContent(dc,width,height)
        elseif (t=2) then
            content=CreateLine(dc,width,height)
        elseif (t=3) then
            piestr=wirtePieHeader
            linex=""
            liney=""
            header=GetPieHeader(width,height,t)
            content=createPie(dc,width,height)
        else
            content=GetContent(dc)
        end if
        CreatePic=piestr & header&back&lback&content&linex&liney&tail
    End Function
    
    function getWidth(num)
        dim ret
        if(num>20) then
            ret=int(num*700/20)+1
        else
            ret=700
        end if
        getWidth=ret
    end function
    
    function getHeight(num)
        dim ret
        if(num>20) then
            ret=int(num*500/20)+1
        else
            ret=500
        end if
        getHeight=ret
    end function
    
    
    Function GetHeader(w,h,t)
        Dim panel_header
        Dim bw,bh
        bw=int(w/700*5900)+1
        bh=int(h/500*2900)+1
        Dim x1,y1
        Dim xs2,ys2,xe2,ye2
        Dim xs3,ys3,xe3,ye3
        x1=int(w/700*4900)+1
        y1=int(h/500*3500)+1
        xs2=200
        ys2=100
        xe2=200
        ye2=int(h/500*2700)+1
        
        xs3=200
        ys3=2700
        xe3=int(w/700*4500)+1
        ye3=2700
        
        panel_header="<v:group ID=""col"&t&""" style=""WIDTH:"&w&"px;HEIGHT:"&h&"px"" coordsize="""&x1&","&y1&" ""><v:line from=""200,100"" to=""200,"&ye2&""" style=""Z-INDEX:8;POSITION:absolute"" strokeweight=""1pt""><v:stroke StartArrow=""classic""/></v:line><v:line from=""200,"&ye2&""" to="""&xe3&","&ye2&""" style=""Z-INDEX:8;POSITION:absolute"" strokeweight=""1pt""><v:stroke EndArrow=""classic""/></v:line><v:rect style=""WIDTH:"&bw&"px;HEIGHT:"&bh&"px"" coordsize=""21600,21600"" fillcolor=""#EEEEEE"" ><v:shadow on=""t"" type=""single"" color=""silver"" offset=""4pt,3pt""></v:shadow></v:rect>"
        GetHeader=panel_header
    End Function
    
    Function GetPieHeader(w,h,t)
        Dim panel_header
        Dim x1,y1
        Dim bw,bh
        bw=int(w/700*5900)+1
        bh=int(h/500*2900)+1
        x1=int(w/700*4900)+1
        y1=int(h/500*3500)+1
        panel_header="<v:group ID=""col"&t&""" style=""WIDTH:"&w&"px;HEIGHT:"&h&"px"" coordsize="""&x1&","&y1&"""><v:rect style=""WIDTH:"&bw&"px;HEIGHT:"&bh&"px"" coordsize=""21600,21600"" fillcolor=""#EEEEEE"" ><v:shadow on=""t"" type=""single"" color=""silver"" offset=""4pt,3pt""></v:shadow></v:rect>"
        GetPieHeader=panel_header
    End Function
    
    Function GetBackground(w,h)
        dim str
        Dim bw,bh
        bw=int(w/700*4300)+1
        bh=int(h/500*2700)+1
        str=" <v:rect id=
'back' style='position:relative;left:200;top:150;width:"&bw&"; height:"&bh&";' fillcolor='#9cf' strokecolor='#DFDFDF'> <v:fill rotate='t' angle='-45' focus='100%' type='gradient'/></v:rect> "
        GetBackground=str
    End Function
    
    Function GetLegendBack(w,h)
        dim str
        Dim bw,bh
        dim leftw
        
'bw=int(w/700*5900)+1
        bh
=int(h/500*2550)+1
        leftw
=int(w/700*4700)+1
        str
=" <v:rect id='back2' style='position:relative;left:"&leftw&";top:150;width:1000; height:"&bh&";' fillcolor='#9cf' stroked='t' strokecolor='#0099ff'><v:fill rotate='t' angle='-175' focus='100%' type='gradient'/> <v:shadow on='t' type='single' color='silver' offset='3pt,3pt'/></v:rect>"
        GetLegendBack
=str
    End Function
    
    
    Function DrawLineX(num,w,h)
        dim i,str,left_pad
        dim width,ye2
        ye2
=int(h/500*2700)+1
        width
=200
        
for i=0 to num
            left_pad
=(i*width)+210
            str
=str&"<v:line from='"&left_pad&" "&ye2&"' to='"&left_pad&" "&(ye2+50)&"' style='position:relative;z-index:8'></v:line>"
        next
        DrawLineX
=str
    End 
function
    
    
    
    Function DrawLineY(w,h)
        dim i,str,left_pad,max
        Dim retmain,increment
        max
=GetMaxValue(dc)
        Dim x1,x2
        dim y1,y2
        Dim spa,spa2,xspos
        x1
=int(w/700*4300)+1
        y1
=int(h/500*2600)+1
        spa
=int(y1/5)+1
        spa2
=int(spa/2)
        xspos
=int(y1/2600*200)+1
        increment
=max/5
        
for i=1 to 5
            left_pad
=y1-((i)*spa)+xspos
            str
=str&"<v:line from='200 "&left_pad&"' to='"&x1&" "&left_pad&"' style='position:relative;z-index:8' strokeweight='1pt'><v:stroke color='#0099FF'  /></v:line>"
            str
=str&"<v:line from='200 "&(left_pad+spa2)&"' to='"&x1&" "&(left_pad+spa2)&"' style='position:relative;z-index:8'  color='#0099FF'><v:stroke dashstyle='Dot'/></v:line>"
            str
=str&"<v:Rect style=""left:-50;top:"&(left_pad-100)&";width:10;height:100"" filled=""f"" stroked=""f""> <v:TextBox inset=""10pt,10pt,10pt,10pt"" style=""font-size:9pt;""><div align=""left"">"&(i*increment)&"</div></v:TextBox></v:Rect>"
        next
        DrawLineY
=str
    End 
function
    
    Function GetTail()
        GetTail
="</group>"
    end Function
    
    Function GetMaxValue(dc)
        dim keys,val,max
        dim valarr,i,retmain
        max
=0
        valarr
=dc.items()
        
for i=0 to ubound(valarr)
            
if(valarr(i)>max) then
                max
=valarr(i)
            end 
if
        next
        retmain
=max mod 5
        
if(retmain<>0) then
            retmain
=5-retmain
            max
=max+retmain
        end 
if
        GetMaxValue
=max
    end Function
    
    Function GetContent(dc,w,h)
        dim num,str,keys,width,height
        Dim heightx,widthx
        dim max,val,i,left_pad,top
        Dim lenheight
        dim topspa,y1
        max
=GetMaxValue(dc)
        
        num
=dc.count
        width
=200
        lenheight
=120
        heightx
=int(h/500*2500)+1
        widthx
=int(w/700*4700)+80
        topspa
=int(h/500*200)+1
        
'y1=int(h/500*2500)+1
        i=0
        for each keys in dc
            left_pad=(i*width)+210
            val=dc(keys)
            height=(val*heightx)/max
            
            top=heightx-height+topspa
            
'str=str&"<v:rect style=""left:470;top:1280;WIDTH:100px;HEIGHT:1420px""  fillcolor=""blue""></v:rect>"
            str
=str&"<v:rect style='position:relative;left:"&left_pad&";top:"& (top) &";WIDTH:"&(width*1/2)&"px;HEIGHT:" & height & ";z-index:9' coordsize='21600,21600' fillcolor='"& lcolor &"'></v:rect>"
            str
=str&"<v:Rect style=""left:"&(left_pad-100)&";top:"& (heightx+topspa) &";width:1000;height:100;position:relative;"" filled=""f"" stroked=""f""> <v:TextBox inset=""10pt,10pt,10pt,10pt"" style=""font-size:9pt;""><div align=""left"">"&(i+1)&"</div></v:TextBox></v:Rect>"
            
分享到:
评论

相关推荐

    ASP无组件折线图源码

    在这个"ASP无组件折线图源码"中,我们讨论的是如何在ASP页面上生成折线图,而无需额外的图形组件。这通常是通过使用VBS(Visual Basic Script)和HTML来实现的。 折线图是一种常见的数据可视化工具,它通过连接一...

    asp生成折线图源码

    以下是一个简单的ASP+Highcharts生成折线图的代码片段: ```asp ' 假设我们有数据数组 Dim dataSeries : dataSeries = Array(10, 20, 30, 40, 50) ' 将数据序列化为JSON Dim jsonData : jsonData = Json....

    新 ASP无组件上传带进度条 (源码 + 实例)

    ASP无组件上传带进度条是一种在ASP(Active Server Pages)环境下实现文件上传并显示上传进度的技术,无需额外的服务器组件。这种技术对于提高用户体验尤其重要,因为它允许用户在上传大文件时了解进度,减少了用户...

    Asp生成统计折线图.rar

    【Asp生成统计折线图】是一个涉及到Web开发技术的主题,主要关注如何使用ASP(Active Server Pages)在网页上创建动态的统计折线图。ASP是微软开发的一种服务器端脚本语言,常用于构建交互式的动态网站。在这个场景...

    ASP无组件上传源码

    ASP无组件上传源码是一种在ASP(Active Server Pages)环境中实现文件上传的技术,它无需额外安装服务器组件,简化了Web应用程序中的文件上传流程。在传统的ASP应用中,如果需要处理文件上传,通常需要借助第三方...

    尚维设计asp无组件上传源码

    在"尚维设计asp无组件上传源码"中,我们可以推测这是一个由尚维设计团队创建的源代码示例,它展示了如何在ASP环境下实现文件上传的功能,而且无需安装额外的服务器组件。这个源码可能包含了一些自定义的脚本和逻辑,...

    ASP.NET 折线图

    ASP.NET 折线图是一种常用的数据可视化方法,用于展示数据随时间变化的趋势。在Web开发中,使用ASP.NET结合JavaScript库可以轻松实现这种效果。3D折线图为用户提供了更丰富的视觉体验,增强了数据的立体感和深度,...

    Asp生成统计折线图

    在ASP(Active Server Pages)开发中,生成统计折线图...总之,ASP生成统计折线图是一个结合了数据处理、图形库应用和Web开发技巧的过程。通过学习和实践,你可以创建出直观且富有洞察力的统计图形,提升Web应用的价值。

    艾恩ASP无组件上传类AienAspUpload v13.12.09-ASP源码.zip

    ASP源码,压缩包解压密码:www.cqlsoft.com

    Asp生成统计折线图 -ASP源码.zip

    ASP源码,压缩包解压密码:www.cqlsoft.com

    ASP网页中呈现折线图

    首先,获取`canvas`元素,然后使用Chart.js的`new Chart()`构造函数创建一个新的折线图实例。提供数据和配置选项,如下所示: ```javascript var ctx = document.getElementById('myChart').getContext('2d'); ...

    ASP实例开发源码-Asp生成统计折线图.zip

    这个实例开发源码——"Asp生成统计折线图.zip",显然是一个使用ASP技术来实现数据可视化,特别是生成统计折线图的示例项目。在Web开发中,动态图表可以帮助用户更直观地理解大量数据,折线图则是常用的数据表示形式...

    子博asp字符转图片组件 -ASP源码.zip

    【标题】"子博asp字符转图片组件"指的是一个基于ASP(Active Server Pages)技术的源码组件,它的主要功能是将输入的字符转化为图片。在网页开发中,这种技术通常用于防止垃圾邮件机器人抓取表单中的敏感信息,如...

    免费图片上传共享相册 -ASP源码.zip

    总结来说,这个压缩包中的ASP源码是一个实现图片上传和共享功能的应用程序,适合对ASP编程感兴趣或需要学习此类功能实现的开发者。通过研究源码,开发者可以学习到ASP如何处理用户上传的图片,如何存储和展示图片,...

    ASP源码—化境ASP无组件上传类 (啊估修改版) v2.0.zip

    在ASP源码中,"化境ASP无组件上传类 (啊估修改版) v2.0.zip" 提供了一个无需额外组件即可实现文件上传功能的类库。这个类库是由啊估修改的,可能对原始版本进行了优化或增强了某些特性,以适应更广泛的使用场景。 ...

    asp读取数据库中数据生成统计折线图_mdb_streamrhy_asp数据图形_折线图_asp_

    在上述代码中,`points`数组存储了折线图上的点坐标,`Join`函数用于将这些点连接成一个字符串,然后设置到`v:path`元素的`v`属性中。 需要注意的是,VML已被现代浏览器弃用,因此在支持SVG(Scalable Vector ...

Global site tag (gtag.js) - Google Analytics