社区
ASP
帖子详情
关于如何用ASP来打印ACCESS的报表?
tsinge
2002-08-16 04:24:48
关于如何用ASP来打印ACCESS的报表?
后台数据库就是用的ACCESS
是不是要用控件?
...全文
288
2
打赏
收藏
关于如何用ASP来打印ACCESS的报表?
关于如何用ASP来打印ACCESS的报表? 后台数据库就是用的ACCESS 是不是要用控件?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
IsMe
2002-08-16
打赏
举报
回复
新版表格打印控件上载,欢迎试用
可打印数据:
记录集
各种Grid(如选中多行,打印选中行,否则打印全部)
记录集save方法的到的xml,mssql2000 for xml查询得到的xml
xmlDomdocument
网页中的数据岛
输出目标:
预览
打印机
html页面(同一个表格模板在c/s和web打印,效果完全一样)
应用范围:
传统c/s
dhtml客户端(在客户端使用脚本定义、打印、设置表格)
iis服务器端(在服务器端使用脚本定义表格,输出纯html表格
效果与c/s一样,在客户端使用IE自带的预览、打印)
表格模板支持:
xml格式模板
使用表格定义语句定义的表格可将模板保存到文件、数据库
支持最终用户通过表格设置修改表格,保存模板
成组打印:
支持一次打印一组含不同打印纸、不同类型的表格,如:
一套表格含封面、表格说明、各个表格等可一次打印预览
(在预览中通过翻页可浏览各个表格)
支持超宽表格分割打印
按照指定叠接宽度、实际打印纸型号分割
支持的表格类型:
数据表(多行表头、斜线、传统账本格式的金额格式等):
支持固定行高(默认)、自动折行的动态行高
支持列宽自动优化调节(如打印一个比较大的表,可能要
打印到多页,每页可根据当前页优化列宽)
分栏打印(栏数、栏间距可调)
按字段分页、按字段分组
表头背景色、各列背景色均可设置
条件前景色、条件背景色(如为负时用红色打印)
打印设置几乎可调节所有东西(如合计字段、分组字段、
份页字段、表眉、表脚、表头)
打印预览
...
不规则表:
用类似于dhtml 中的table对象模型,支持单元格嵌套
(可嵌套数据表、票据、不规则表等)
支持使用 dhtml 中的table语法定义表格
(<table border=1><tr><th>..</th></tr></table>)
支持图片打印(基于文件名、adodb.recordset 中的sql image
字段、access中的真正的ole字段)
支持单元格镜像(如一个单元格嵌套票据,另外两个单元格为其
镜像,可实现在一张打印纸上的三联打印)
强大的打印设置
打印预览
....
套打票据:
票据套打
轻松解决在不同打印机上位置不准(在打印设置中修改坐标原点即可)
普通大写金额、逐字填空大写金额等的操作与普通元素相同
强大的打印设置,可动态添加票据元素、拖动票据元素...
帮助:
帮助文件还算完善
示例:
详细的c/s示例,简单的dhtml示例,简单的asp示例
http://usevb.yeah.net
meizz
2002-08-16
打赏
举报
回复
这是我一段收藏的代码,我自己还没有测试过,不过你可以拿去看看。
IE的打印功能的确太弱了,这是一个将ASP 数据导入WORD打印的例子。
<%@ Language=VBScript %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<%
sql = "Select department,count(department) From personnel group by department" '将记录按部门分类统计
Set Cnn = Server.CreateObject("ADODB.Connection") '连接数据库
cnn.Open "driver={sql server};server=ywz;uid=sa;pwd=413811;database=asims"
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.CursorType = 3
Rs.LockType = 3
Rs.Open sql, Cnn
If Rs.EOF Then '如果没有记录就结束
Response.End
End If
%>
<html>
<%'以下显示表格标题和输出表头%>
<p align="center"><b><font size="4">公司员工统计表</font></b></p>
<div align="center">
<table id="data" border="1" width="606" height="53" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"> <%'注意:此处标明表格的id为data%>
<tr>
<td width="93" height="24">
<p align="center"><font size="2">部门</font></td>
<td width="78" height="24">
<p align="center"><font size="2">合计</font></td>
<td width="413" height="24">
<p align="center"><font size="2">员工姓名</font></td>
</tr>
<%
hj=0 '设置变量,总人数合计初始值为0
'以下While循环按部门依次完成统计和报表
while (not rs.eof)
departmenttmp=rs("department") '设置临时变量,保存当前部门名称
sqlstr="select * from personnel where department='"&departmenttmp&"'" '找出当前部门的所有员工
Set conn = Server.CreateObject("ADODB.Connection") '再次连接数据库
conn.Open "driver={sql server};server=ywz;uid=sa;pwd=413811;database=asims"
Set rss = Server.CreateObject("ADODB.Recordset")
rss.CursorType = 3
rss.LockType = 3
rss.Open sqlstr, conn
number=0 '设置变量,当前部门人数合计初始值为0
'以下While循环计算出当前部门人数合计
while(not rss.eof)
rss.movenext
number=number+1
wend
hj=hj+number '总人数合计为各部门人数之和
rss.movefirst
flag=0 '设置变量,flag用来判断当前部门是否首次出现,初始值为0
'以下While循环输出当前部门统计数据和员工名单
while(not rss.eof)%>
<tr>
<%if (flag=0) then%>
<%'如果flag为0,表示该部门是首次出现,表格此处就应该输出部门名称,部门员工合计人数%>
<td width="93" height="24"><p align="center"><font size=2><%=departmenttmp%></font></td>
<td width="78" height="24"><p align="center"><font size=2><%=number%></font></td>
<%else%>
<%'如果flag不为0,表示该部门不是首次出现,表格此处就应该输出空白%>
<td width="93" height="24"><p align="center"> </td>
<td width="78" height="24"><p align="center"> </td>
<%end if%>
<%'无论该部门是否首次出现,此处输出员工姓名%>
<td width="413" height="24"><p align="center"><font size=2><%=rss("name")%></font></td>
<%rss.movenext '当前部门员工记录指针rss指向下一个员工记录
flag=flag+1 'flag加1
wend%>
</tr>
<%rs.movenext '部门记录指针rs指向下一个部门记录
wend%>
<tr>
<%''表格最后一行输出总人数合计%>
<td width="93" height="24"><p align="center"><font size=2>员工合计</font></td>
<td width="78" height="24"><p align="center"><font size=2><%=hj%></font></td>
<td width="413" height="24"><p align="center"><font size=2> </font></td>
</tr>
</table>
</div>
<center><input type=button onclick="vbscript:buildDoc" value="打印"></center> <%''点击"打印"按钮,调用vbscript函数buildDoc生成本地Word文档,实现本地打印。%>
</html>
<%'以下VBScript代码实现buildDoc函数%>
<script language="vbscript">
Sub buildDoc
set table = document.all.data '把html文档中的表格data的结构和数据赋值给table
row = table.rows.length 'row为table的行数
column = table.rows(1).cells.length 'colnum为table的列数
'Set objWordDoc =CreateObject("Word.Document") '创建一个Word.Document的对象
Set objWordDoc=CreateObject("Word.Document.8")
'Set objWordDoc= CreateObject("Word.Application")
Dim theArray(10,10000) '定义数组变量,存放表格中的数据,10是虚拟列数,10000是虚拟行数
'以下两层for循环将html文档的表格中的纯文本数据赋值给数组
for i=0 to row-1
for j=0 to column-1
theArray(j+1,i+1) = table.rows(i).cells(j).innerTEXT
next
next
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("公司员工统计表") '显示表格标题
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("") '输出标题后回车换行
Set rngPara = objWordDoc.Application.ActiveDocument.Paragraphs(1).Range
'以下With代码段设置标题属性
With rngPara
.Bold = True '将标题设为粗体
.ParagraphFormat.Alignment = 1 '将标题居中
.Font.Name = "Arial" '设定标题字体
.Font.Size = 12 '设定标题字体大小
End With
Set rngCurrent = objWordDoc.Application.ActiveDocument.Paragraphs(3).Range
Set tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column)
'以下for循环输出表头
for i = 1 to column
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAfter theArray(i,1)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.ParagraphFormat.alignment=1
next
'以下两层for循环输出表格实际内容
For i =1 to column
For j = 2 to row
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAfter theArray(i,j)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.ParagraphFormat.alignment=1
Next
Next
objWordDoc.Application.ActiveDocument.SaveAs
End Sub
</script>
</BODY>
</HTML>
数据库TABLE,导入你自己的数据库就可以了
CREATE TABLE [personnel] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[department] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
在水晶
报表
中使用
Access
数据库
在水晶
报表
中使用
Access
数据库 在水晶
报表
中使用
Access
数据库
ASP
源码—
access
企业网站源码 v1.0.zip
ASP
源码—
access
企业网站源码 v1.0.zip
asp
使用水晶
报表
实例源码
asp
注意是
ASP
开发和使用水晶
报表
的实例代码,只需更改查询语句等即可使用。
报名系统
asp
+
access
asp
的学生报名系统,附加
access
数据库。
asp
.net -rdlc
报表
教程
asp
.net rdlc
报表
使用教程,doc文档
ASP
28,404
社区成员
356,946
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章