我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络学院 > 网络编程 > ASP专区 > Asp组件/脚本 > 客户端用ASP+rds+VBA参生报表(高级篇)
热门文章排行
热门文章排行 手推车”功能的实现(10-07)
八大法则防范ASP网站漏洞(10-23)
ASP教程十一、调试ASP脚本(10-23)
在JSP中访问数据库大全(10-23)
虚机服务中常见Asp.Net低级错误一览(03-21)
精采文章排行
精采文章排行 ASP.NET实现抓取网页中的链接(11-15)
ASP连接数据库的11种方法(11-10)
如何动态创建网页的RSS内容摘要(11-10)
ASP网站漏洞及入侵防范方法(11-10)
ASP自定义函数:对字符串正则替换(11-10)
技术专题推荐
网管论坛交流
 

客户端用ASP+rds+VBA参生报表(高级篇) 

作者:佚名   来源:一亩三分地   点击:   日期:2007-03-28

test_print_report.asp

<html>
<head>
<meta content="text/html; charset=BIG5" http-equiv="Content-Type">
<title>client use rds produce excel report</title>
</head>
<body bgColor="skyblue" topMargin=0 leftMargin="20" oncontextmenu="return false" rightMargin="0" bottomMargin="0">
<form action="test_print_report.asp" method="post" name="myform">
<div align="center"><center>
<table border="5" 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>
<div align="left">
<input type="button" value="Query Data" name="query" language="vbscript" onclick="fun_query()" style="HEIGHT: 32px; WIDTH: 90px">
<input type="button" value="Clear Data" name="Clear" language="vbscript" onclick="fun_clear()" style="HEIGHT: 32px; WIDTH: 90px">
<input type="button" value="Excel Report" name="report" language="vbscript" onclick="fun_excel()" style="HEIGHT: 32px; WIDTH: 90px">
</div>
<div id="adddata"></div>
</form></center>
</body>
</html>
<script language="vbscript">
dim rds,rs,df
dim strSQL,StrRs,strCn,RowCnt
dim xlApp, xlBook, xlSheet1,xlmodule,XlPageSetup
dim HeadRowCnt,TitleRowCnt,ContentRowCnt,FootRowCnt
dim PageRowCnt,PageNo,TotalPageCnt,ContentRowNowCnt
dim ColumnAllWidth,ColumnAWidth,ColumnBWidth,ColumnCWidth,ColumnDWidth

sub fun_query()
set rds = CreateObject("RDS.DataSpace")
Set df = rds.CreateObject("RDSServer.DataFactory","http://iscs00074")
strCn="DRIVER={SQL Server};SERVER=iscs00074;UID=sa;APP=Microsoft Development Environment;DATABASE=pubs;User Id=sa;PASSWORD=;"
strSQL = "Select * from jobs"
Set rs = df.Query(strCn, strSQL)

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
end sub

sub fun_clear()
StrRs=""
adddata.innerHTML=StrRs
end sub

sub fun_excel()
set rds = CreateObject("RDS.DataSpace")
Set df = rds.CreateObject("RDSServer.DataFactory","http://iscs00074")
strCn="DRIVER={SQL Server};SERVER=iscs00074;UID=sa;APP=Microsoft Development Environment;DATABASE=pubs;User Id=sa;PASSWORD=;"
strSQL = "Select count(*) as recordcnt from jobs"
Set rs = df.Query(strCn, strSQL)
TotalPageCnt=rs("recordcnt")
rs.close
set rs=nothing
strSQL = "Select * from jobs"
Set rs = df.Query(strCn, strSQL)
Set xlApp = CreateObject("EXCEL.APPLICATION")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet1 = xlBook.ActiveSheet
Set xlmodule = xlbook.VBProject.VBComponents.Add(1)
xlSheet1.Application.Visible = True
xlSheet1.Application.UserControl = True
i=0
RowCnt=1
PageNo=1
HeadRowCnt=4 'The header number to print in one page!
TitleRowCnt=3 'The title number to print in one page!
ContentRowCnt=6 'The record number to print in one page!
FootRowCnt=1 'The footer number to print in one page!
PageRowCnt=HeadRowCnt+TitleRowCnt+ContentRowCnt+FootRowCnt
TotalPageCnt=int((TotalPageCnt+ContentRowCnt-1)/ContentRowCnt)
ColumnAWidth=5 'The ColumnA Width!
ColumnBWidth=30 'The ColumnB Width!
ColumnCWidth=5 'The ColumnC Width!
ColumnDWidth=5 'The ColumnD Width!
'Add the Head and Title
call head_title
'Add the Data
do while not rs.eof
With xlSheet1
.cells(RowCnt,1).value = rs(0)
.cells(RowCnt,2).value = rs(1)
.cells(RowCnt,3).value = rs(2)
.cells(RowCnt,4).value = rs(3)
end with
rs.movenext
ContentRowNowCnt=ContentRowNowCnt+1
if not rs.eof then
if ContentRowNowCnt mod (ContentRowCnt) =0 then
ContentRowNowCnt=0
RowCnt = cint(RowCnt) + 1
'Add the Foot
call foot_title
'Add the Head and Title
call head_title
else
RowCnt = cint(RowCnt) + 1
end if
else
RowCnt = cint(RowCnt) + 1
call foot_title
end if
loop
'Format the Grid and Font
call format_grid
'Release References
'XLSheet1.PrintOut
'xlBook.Saved = True
Set xlmodule = Nothing
Set xlSheet1 = Nothing
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing
rs.close
set rs=nothing
end sub


sub head_title()
dim HeadRow
HeadRow=1
do while HeadRow<= HeadRowCnt
With xlSheet1
.range("C"+trim(RowCnt)+":"+"D"+trim(RowCnt)).merge
end with
RowCnt=RowCnt+1
HeadRow=HeadRow+1
loop

'Format the head name of cells (The new page of row=5,6,7)

With xlSheet1
.Cells(RowCnt-3, 2).Value = "THE JOB INFORMATION TABLE"
.Cells(RowCnt-3, 3).Value = date()
.Cells(RowCnt-4, 3).Value = "The "+trim(PageNo)+"/"+trim(TotalPageCnt) +" Pages"
end with
'Format the title field name of cells
With xlSheet1
.range("A"+trim(RowCnt) +":B"+trim(RowCnt)).merge
.range("A"+trim(RowCnt+1) +":A"+trim(RowCnt+2)).merge
.range("B"+trim(RowCnt+1) +":B"+trim(RowCnt+2)).merge

.range("C"+trim(RowCnt) +":D"+trim(RowCnt)).merge
.range("C"+trim(RowCnt+1) +":C"+trim(RowCnt+2)).merge
.range("D"+trim(RowCnt+1) +":D"+trim(RowCnt+2)).merge

.Cells(RowCnt, 1).Value = "The job"
.Cells(RowCnt+1,1).Value = "job_id"
.Cells(RowCnt+1,2).Value = "job_desc"
.Cells(RowCnt, 3).Value = "Level"
.Cells(RowCnt+1,3).Value = "Max level"
.Cells(RowCnt+1,4).Value = "Min level"
End With
RowCnt=int(RowCnt)+3
PageNo=PageNo+1
end sub

sub foot_title()
dim FootRow
FootRow=1
do while FootRow<= FootRowCnt
With xlSheet1
.range("C"+trim(RowCnt)+":"+"D"+trim(RowCnt)).merge
end with
RowCnt=RowCnt+1
FootRow=FootRow+1
loop
With xlSheet1
.Cells(RowCnt-1, 1).Value = "A:"
.Cells(RowCnt-1, 2).Value = "B:"
.Cells(RowCnt-1, 3).Value = "C:"
end with
end sub

sub format_grid()
dim strCode
dim MyMacro
strCode = _
"sub MyMacro() " & vbCr & _
"dim HeadRowCnt" & vbCr & _
"dim TitleRowCnt" & vbCr & _
"dim ContentRowCnt" & vbCr & _
"dim FootRowCnt" & vbCr & _
"dim PageRowCnt" & vbCr & _
"dim BgnCnt" & vbCr & _
"HeadRowCnt="& HeadRowCnt &"" & vbCr & _
&qu

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·ASP中巧用Response属性 ·第六课:ASP脚本循环语句
·在 Web 页上使用条件数值格式 ·连接数据库查询手册(不仅仅适用于asp)
·警惕"给你的FileSystemObject对象加把锁" ·用ASP做全文检索

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。