用WORD打印代替WEB打印(三)
来源:互联网 发布:柬埔寨网络博客犯法吗 编辑:程序博客网 时间:2024/05/22 03:12
再将打印表格复杂化,在本次的列子中,有两个列表,这个两个列表需要根据内容条目的变化而变化,这里需要注意的是,当第一个列表发生变化之后(增加行),那么第二个列表的起始行业就相应的发生变化,那么计算出来后就可以正确地编辑这个打印范本了。
至此,利用WORD打印替代WEB打印就介绍完毕,在具体应用中只要注意如何将内容初始化到WORD文件中,并且如何编辑WORD文件里面的列表就可以了。用WORD打印来替代WEB打印,最主要的是利用WORD强大的制表功能、与WORD的打印程序,从而使B/S模式下的打印变得简单。
这次的打印模板如下(这里有两个列表:检查投标文件单位列表、投标单位列表):
如果“检查投标文件单位”多于4家,那么就需要增加行,一旦增加行,“投标单位”列表中原来第一行数据插入应该在CELL(12,x),这时就会发生了变化。
实现效果图如下:
下面是代码:
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb18030" /><title>用WORD打印代替WEB打印(三)</title><link type="text/css" rel="stylesheet" href="global.css" /><SCRIPT LANGUAGE=javascript FOR=WebOffice1 EVENT=NotifyCtrlReady> <!--WebOffice1_NotifyCtrlReady();// 在装载完Weboffice(执行<object>...</object>)控件后执行 "WebOffice1_NotifyCtrlReady"方法//--></SCRIPT> <script language="javascript"> function WebOffice1_NotifyCtrlReady() { var obj=document.getElementById("WebOffice1");obj.LoadOriginalFile("/templates/02-kai-biao.doc", "doc"); //下载模板 if(obj.is2007==1) obj.HideMenuArea("hideall","","",""); //隐藏所有菜单else obj.HideMenuArea("","","",""); //隐藏所有菜单 obj.HideMenuItem(0x01+0x02+0x04+0x4000);//隐藏TOOLBAR中的一些按钮 obj.OptionFlag |= 0x0080; //打开WROD下载进度条 obj.SetTrackRevisions(0); //不记录修订信息initContent(obj);//初始化文档内容 obj.ProtectDoc(1,1,"123"); //保护WORD文档,不允许修改 } function initContent(obj){ //获得WORD中的表格句柄 var table=obj.GetDocumentObject().tables(1); /** *注意obj.ReplaceText("[GCBH]","20120721001",1);这个代码可以直接替换WORD模板中的[GCBH]字符 *但是如果内容太多,这个方法会失效 *这时,可以使用 table.Cell(1,1).range.Text="20120721001"; *注意table的Cell值是从1开始的;table.Cell(行,列); */ obj.ReplaceText("[GCBH]","20120721001",1); obj.ReplaceText("[DATE]","2012-07-21",1); obj.ReplaceText("[GCMC]","惠民楼工程A、B、C座大楼",1); obj.ReplaceText("[JSNR]","建设内容,建设内容建设内容建设内容,建设内容建设内容建设内容,建设内容建设内容建设内容,建设内容建设内容建设内容,建设内容建设内容",1); obj.ReplaceText("[DLJG]","代理机构XXXXXXXXX",1); obj.ReplaceText("[QBR]","企标人X",1); obj.ReplaceText("[CBR]","唱标人X",1); obj.ReplaceText("[JBR]","监标人X",1); obj.ReplaceText("[MEMO]","开标情况:备注备注备注备,注备注备注,备注备注备注备注,备注备注备注备注备,注备注备注,备注",1); obj.ReplaceText("[JSDWRY]","建设单位人员X",1); obj.ReplaceText("[JDBMRY]","监督部门人员X",1); obj.ReplaceText("[JYZXRY]","交易中心记录人X",1); obj.ReplaceText("[FHR]","复核人X",1); //为检查投标文件单位列表增加行 var n=6;//在中间的列表中插入6行数据,因为模板中已经有了4行,所以需要插入2行 var r=4; if(n>r){ //根据实际需要,增加多少行 for(var i=0;i<n-r;i++){ var rg=table.Cell(6,1).range; //选择列表中的第一行 table.rows.add(rg);//然后在这一行前面插入行 } } //为检查投标文件单位列表赋值,这模板是在第六行开始的 for(var i=1;i<=n;i++){ table.Cell(6+(i-1),1).range.Text="检查投标文件单位名称"+i; table.Cell(6+(i-1),2).range.Text="检查者"+i; } //为报名单位列表增加行 var n2=17;//在中间的列表中插入17行数据,因为模板中已经有了14行,所以需要插入3行 var r2=14; if(n>r){ //是根据实际需要,增加多少行 for(var i=0;i<n2-r2;i++){ //选择列表中的第一行,这里需要重新计算在应该在哪一行前增加行 //因为在模板中是在第12行开始增加的,但是因为在“检查投标文件单位列表”中行数发生了变化 //所以应该是从第12+(n-r)行前,增加行 var rg=table.Cell(12+(n-r),1).range; table.rows.add(rg);//然后在这一行前面插入行 } } //为检查投标文件单位名称列表赋值,这模板是在第六行开始的 for(var i=1;i<=n2;i++){ table.Cell(12+(n-r)+(i-1),1).range.Text=i; table.Cell(12+(n-r)+(i-1),2).range.Text="报名单位"+i; table.Cell(12+(n-r)+(i-1),3).range.Text="投标报价"+i; table.Cell(12+(n-r)+(i-1),4).range.Text="投标单位人员"+i; table.Cell(12+(n-r)+(i-1),5).range.Text="备注"+i; }} </script> </head> <body> <!-- ------------=== 装载Weboffice控件,如果没安装提示下载 ===-------------------- --> <script src="js/LoadWebOffice.js"></script><!-- ---------------------------=== 结束 ===----------------------------------- --> </body></html>
- 用WORD打印代替WEB打印(三)
- 用WORD打印代替WEB打印(一)
- 用WORD打印代替WEB打印(二)
- web打印(二)---------导出到word并打印
- web打印 (三) -----------自动打印指定格式的会议记录
- c#用word打印
- web应用票据打印实现(三)
- Word打印
- Word打印
- 打印Word
- WEB打印设置解决方案三(FileSystem组件实现WEB打印)
- WEB打印设置 方案三(FileSystem组件实现WEB打印)
- web 打印,web打印控件的三种实现方法
- web打印,web打印控件的三种实现方法
- web打印,web打印控件的三种实现方法
- Web打印(原创)
- 利用Word打印报表(三)----在jsp中利用word打印指定格式的会议记录
- web打印
- VIM IDE搭建
- vmware 苹果 lion xcode
- hdu 1754 I Hate It 线段树最基本类型
- Ubuntu下pdf乱码和rar解压后无效文件编码解决方案
- sqlite 数据类型详解
- 用WORD打印代替WEB打印(三)
- hdu4027 Can you answer these queries? 线段树
- 关联规则发现和新词发现
- hdu3911 Black And White 高频率出现的线段树难题
- spring3与ibatis的集成搭建及简单应用
- AD603的查表程序
- hdu 1166 敌兵布阵 基础线段树 2种做法
- Android进度条 多线程登录或下载
- hdu1698 Just a Hook 线段树之经典