先贴一篇较简单的用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>
|