B/S打印的通用方案
下面的是我自己开发的一个总结,请大家指正!
我研究的打印的通用方案:(对于视图打印,同时还要控制显示标题,结尾统计,取消操作条的情况)
  1。修改要显示的视图A属性,使视图显示为html, 并且将每一列的内容都看作表格的列,因此要在每一个要显示的列前插入一个列用来形成表格。对一第一列前面插入的列,值为"[<tr><td width=10>]"width控制宽度,中间的每一个要显示的列前面插入列,值为"[</td><td width=10>]",视图最后插入一列值为"[</td></tr>]"
  2。建立显示表单:formForLook, 其中嵌入需要打印的视图A,对于嵌入视图修改合适的显示行数(要把所有内容都显示出来),并且嵌入视图不显示标题。在表单中可以添加任何文本,超文本,同时在嵌入视图前加入类似如下的内置html:
<TABLE border=1 cellspacing=0 cellpadding=0  width=630  bordercolorlight=black bordercolordark=black >
<th NOWRAP ALIGN=left width=10> </th>
<th NOWRAP ALIGN=center width=30>序号</th>
<th NOWRAP ALIGN=center width=60>日期</th>
<th NOWRAP ALIGN=center width=60>单位/</th>
printform<th NOWRAP ALIGN=center colspan=6 width=300>姓名</th>
<th NOWRAP ALIGN=center width=60>地点</th>
<th NOWRAP ALIGN=center width=60>备注</th>
  在嵌入视图后面加入如下代码:
</table>
        以上两个步骤可以控制表格显示的漂亮一点,并且可以显示表格线
        然后在视图中保存一些纪录,同时至少保存一篇由formForLook生成的文档。
    3。将formForLook复制为formForPrint, 建立一个新视图viewForPrint, 选择公式为
      form="formForLook", 同时设置form FormulaformForPrint, 强制使文档转向
    formForPrint打开
    4。对于formForPrint表单(这里面有任何操作都要删除),填写onLoad()事件,代码如下:
window.print();
alert("请在打印完毕之后按确定键...");
window.close();

      这里用了一个alert(), 为了防止表单关闭太早,以至于还没有来得及将打印数据完全装入内存,表单就关闭了,不能打印。
      5。对于formForLook表单,添加一个永远隐藏域unid, 值为: @Text(@DocumentUniqueID), 以获得当前文档的UNID. 填写打印操作的JavsScript代码:
window.open(数据库名及其路径 + viewForPrint + window.document.forms(0).unid.value + "?opendocument","","width=800,height=560,top=0,left=0,scrollbars=yes,resizable=yes");
 
 
OK, 这样应该就可以了!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。