优秀的软件开发团队:深圳升蓝软件 数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类     
热门推荐
升蓝OA办公自动化系统
基于.Net技术的网络
协同办公环境
 
ASP基础
数据库相关
安全加密
全文检索
ASP应用
打印相关
客户端相关
XML相关
系统相关
正则表达式
ASP技巧
组件开发
脚本编码
FSO专题
邮件相关
远程脚本
性能优化
 
相关链接
深圳升蓝软件:系统集成、办公自动化平台、电子商务、电子政务、Web数据库、企业网站、游戏、手机应用程序、CDMA软件、电子出版物等,为客户提供优秀的解决方案
 
升蓝(www.hi-blue.com)为企业管理、政府办公提供成熟的、易于实施的IT技术服务,我们的解决方案包括OA办公自动化系统CRM客户关系管理系统ERP企业生产管理和订单管理系统电子政务系统、知识管理系统、企业门户、商业智能、工程项目管理等等...
 
电子政务解决方案
塑料/橡胶管理系统
知识管理系统简介
多媒体光盘方案
ERP企业资源管理
订单计划管理系统
PM工程项目管理系统
会员管理系统
相关资料下载
OA办公自动化系统
CRM客户关系管理系统
在线试用版本说明
OA 系统的用户手册
 
 
 
 
升蓝开发团队 > 技术资料 > ASP技术 > 打印相关 : 关于打印页面的一些经验

关于打印页面的一些经验


March 25,2004
大家经常遇到再ie中打印表格时需要隐藏一些不需要打印的对象,比如说按钮,输入框,或者希望莫个表格显示的时候表格线是由颜色的,而打印的时候只需要有粗细之分,其实在css中可以设定在打印或者显示的不同样式,最近作了一个应用(实属逼上梁山),可以得到以上效果,下面是我的样式表。。。。
<style type="text/css" media=print>  主要是media选项对照下面的那一个style一起看
.noprint{visibility:hidden}
        span.double {BORDER-BOTTOM-STYLE: double; BORDER-LEFT-STYLE: double;
        BORDER-RIGHT-STYLE: double; BORDER-TOP-STYLE: double; COLOR: mediumblue;
        CURSOR: hand; FONT-SIZE: 12pt; HEIGHT: 22px; LEFT: 314px; TEXT-ALIGN: center;
        WIDTH: 96px}
        select.sb{Z-INDEX: 121; LEFT:0px;WIDTH: 90px; POSITION: absolute;
        HEIGHT: 170px}
        span.tab{LEFT:40px;WIDTH: 900px; POSITION: relative; TOP: 0px; HEIGHT: 225px}
        table{BORDER-RIGHT: black medium inset; BORDER-TOP: black medium inset; BORDER-LEFT: black medium inset; WIDTH: 900px; BORDER-BOTTOM: black medium inset; HEIGHT: 31px;POSITION: absolute}
        tr.col0{BORDER-RIGHT: thick inset; BORDER-TOP: thick inset; FONT-WEIGHT: bold; FONT-SIZE: 15px; BORDER-LEFT: thick inset; BORDER-BOTTOM: 10px ; FONT-FAMILY: 宋体; BACKGROUND-COLOR: blue; TEXT-ALIGN: center}
        tr.tr1{}
        td.td0{WIDTH: 120px; TEXT-ALIGN: center;height:30px;}
        td.td1{WIDTH: 330px; TEXT-ALIGN: right}
        td.td2{WIDTH: 70px;TEXT-ALIGN: right}
        td.td3{WIDTH: 330px;TEXT-ALIGN: right}
</style>

<style media=screen>主要是media选项对照上面的那一个style一起看
        span.double {BORDER-BOTTOM-STYLE: double; BORDER-LEFT-STYLE: double; BORDER-RIGHT-STYLE: double; BORDER-TOP-STYLE: double; COLOR: mediumblue;
        CURSOR: hand; FONT-SIZE: 12pt; HEIGHT: 22px; LEFT: 314px; TEXT-ALIGN: center;
        WIDTH: 96px}
        select.sb{Z-INDEX: 121; LEFT:0px;WIDTH: 90px; POSITION: absolute;
        HEIGHT: 170px}
        span.tab{LEFT:154px;WIDTH: 900px; POSITION: relative; TOP: 30px; HEIGHT: 225px}
        table{BORDER-RIGHT: blue groove; BORDER-TOP: blue groove; BORDER-LEFT: blue groove; WIDTH: 900px; BORDER-BOTTOM: blue groove; POSITION: absolute}
        tr.col0{BORDER-RIGHT: red thick inset; BORDER-TOP: red thick inset; FONT-WEIGHT: bold; FONT-SIZE: 15px; BORDER-LEFT: red thick inset; COLOR: white; BORDER-BOTTOM: yellow 10px solid; FONT-FAMILY: 宋体; BACKGROUND-COLOR: blue; TEXT-ALIGN: center}
        tr.tr1{BORDER-BOTTOM: fuchsia inset}
        td.td0{WIDTH: 120px; BORDER-LEFT-STYLE: none; TEXT-ALIGN: center;BORDER-BOTTOM-STYLE: none}
        td.td1{WIDTH: 330px;BORDER-LEFT: blue thin solid; TEXT-ALIGN: right}
        td.td2{WIDTH: 70px;BORDER-TOP-STYLE: inset; BORDER-RIGHT-STYLE: inset; BORDER-LEFT-STYLE: inset; TEXT-ALIGN: right; BORDER-BOTTOM-STYLE: inset}
        td.td3{WIDTH: 330px;BORDER-TOP-STYLE: inset; BORDER-RIGHT-STYLE: inset; BORDER-LEFT-STYLE: inset; TEXT-ALIGN: right; BORDER-BOTTOM-STYLE: inset}
        td.td5{TEXT-ALIGN: right}
</style>
大家仔细看一下其实只要建立2个style而么个style指向不同的设备,但是在style中使用相同的id,这样再在需要打印和显示是需要不同的样式的对象中引用同一个id号(比如说<td class=td3>。。。。。。</td>)但是有一个重要问题时仔细看我在打印是设定不打印是通过设定“visibility:hidden”来实现的,但是我在实际应用中发现如果在脚本代码中使用了“obj.style.visibility=visible”也就是对莫个对象的visibility进行了操作这时候咋打印的时候也会显示出来,也就是说脚本代码的操作对不同的设备同时有效(但是我想应该有办法对某一个设备准向指定的但是找了半天没发现,也可能是css还没有完善)我最后通过了另一个style属性display了实现了,也就是说在脚本代码中用obj.style.diaplay="block"或者"none"来实现对象的显示这样就不影响打印功能的实现了。
但是总的来说ie的打印还是不完善比如说无法实现分页大量的打印数据,但是在visual .net中我发现微软加入了crystal的报表功能我估计应该可以实现了,但是还没有应用过,以后有机会在向大家汇报。
       
数据库开发 | .Net技术 | ASP技术 | PHP技术 | JSP技术 | 应用技术类 | 升蓝开发小组
Copyright ? 2001-2004 Shenzhen Hi-blue Software Team 升蓝开发小组 All rights reserved