新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > Web开发 > Asp教程 > 正文:一篇关于客户端用ASP参生报表的好东东

一篇关于客户端用ASP参生报表的好东东

新客网 XKER.COM 2003-07-11 来源: 收藏本文
先贴一篇较简单的用ASP+RDS客户端参生报表
此文希望能进精华篇
下一回贴一篇较复杂的
说明:(若提示ActiveX 元件无法参生 RDS.DataSpace)
IE需设置安全选项
操作:菜单工具->INTERNET选项->安全性->自定义
设置  起始但ActiveX不标示为安全->开启   
<html>
<head>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<title>client use rds produce excel report</title>
<link rel="stylesheet" href="cdutmenu/common.css">
</head>
<body bgColor=skyblue topMargin=5 leftMargin="20" oncontextmenu="return false" rightMargin=0 bottomMargin="0">

<div align="center"><center>        
<table border="1" bgcolor="#ffe4b5" style="HEIGHT: 1px; TOP: 0px" bordercolor="#0000ff">
    <tr>
         <td align="middle" bgcolor="#ffffff" bordercolor="#000080">
         <font color="#000080" size="3">    
         client use rds produce excel report
         </font>
         </td>
    </tr>
</table>
</div>

<form action="long.asp" method="post" name="myform">
<DIV align=left>
<input type="button" value="Query Data"   name="query"  language="vbscript" onclick="fun_excel(1)"  style="HEIGHT: 32px; WIDTH: 90px">
<input type="button" value="Clear Data"   name="Clear"  language="vbscript" onclick="fun_excel(2)"  style="HEIGHT: 32px; WIDTH: 90px">
<input type="button" value="Excel Report" name="report" language="vbscript" onclick="fun_excel(3)"  style="HEIGHT: 32px; WIDTH: 90px">
</div>
<DIV id="adddata"></div>
</form>
</body>
</html>

<script language="vbscript">
sub fun_excel(t)
    Dim rds,rs,df               
    dim  strCn,strSQL,StrRs
    Dim xlApp, xlBook, xlSheet1

'use rds to produce client recordset  
    set rds = CreateObject("RDS.DataSpace")
    Set df = rds.CreateObject("RDSServer.DataFactory","http://server name")
'the connection string to sql server to query database:pubs--->table:jobs
    strCn="DRIVER={SQL Server};SERVER=server name;UID=sa;APP=Microsoft Development Environment;DATABASE=pubs;User Id=sa;PASSWORD=;"
'the query string of sql
    strSQL = "Select top 8 * from jobs order by job_id"
'the recordset
    Set rs = df.Query(strCn, strSQL)
   
    if t=1 then  
       if not rs.eof then
          StrRs="<table border=1><tr><td>job_id</td><td>job_desc</td><td>max_lvl</td><td>min_lvl</td></tr><tr><td>"+ rs.GetString(,,"</td><td>","</td></tr><tr><td>"," ") +"</td></tr></table>"   
          adddata.innerHTML=StrRs
          StrRs=""
       else
          msgbox "No data in the table!"  
       end if
    elseif t=2 then      
          StrRs=""
          adddata.innerHTML=StrRs
    elseif t=3 then      
       Set xlApp = CreateObject("EXCEL.APPLICATION")
       Set xlBook = xlApp.Workbooks.Add
       Set xlSheet1 = xlBook.Worksheets(1)
       xlSheet1.cells(1,1).value ="the job  table "
       xlSheet1.range("A1:D1").merge
       xlSheet1.cells(2,1).value = "job_id"
       xlSheet1.cells(2,2).value = "job_desc"
       xlSheet1.cells(2,3).value = "max_lvl"
       xlSheet1.cells(2,4).value = "min_lvl"
       cnt = 3
'adapt to office 97 and 2000
       do while not rs.eof
          xlSheet1.cells(cnt,1).value = rs("job_id")
          xlSheet1.cells(cnt,2).value = rs("job_desc")
          xlSheet1.cells(cnt,3).value = rs("max_lvl")
          xlSheet1.cells(cnt,4).value = rs("min_lvl")
          rs.movenext
          cnt = cint(cnt) + 1
       loop
       xlSheet1.Application.Visible = True
       
'adapt to office 2000 only
        'xlSheet1.Range("A3").CopyFromRecordset rs
        'xlSheet1.Application.Visible = True
    end if
end sub
</script>


收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐