ATGrid 是国内的一款提供WEB打印解决方案的插件,最近由于项目需要,花了几天研究了下,并用这个插件实现了WEB打印,方案如下~ 因为是摸索,希望大家多多指教~
插件的下载
ATGrid控件下载地址: http://www.etcell.com/ATGrid/ATGrid.dll
ATGrid控件WEB运行包下载地址: http://www.etcell.com/ATGrid/ATGrid.cab
下载包中包括 winTable 报表模板设计器,ATGrid发行包,ATGrid帮助文档,还有一些例子。
插件安装
安装完系统后,会在安装目录下存在JavaLib文件夹,此文件夹下存在两个类文件,
分别为:ATGrid.jar和JavaATGrid.dll
设置方法如下:
(1)JavaATGrid.dll文件复制到System32文件夹下;
(2)把ATGrid.jar文件复制到jdk安装目录下的lib目录下;
(3)把ATGrid.jar文件复制到Tomcat安装目录下的common/lib目录下;
(4)环境变量->系统变量->在变量CLASSPATH的值中添加
“.;%JAVA_HOME%/lib/ATGrid.jar;”
(5)配置tomcat或者weblogic服务器的web.xml,便于能让xxx.et文件能下载
在web.xml文件中增加下面的内容:
<mime-mapping>
<extension>et</extension>
<mime-type>et</mime-type>
</mime-mapping>
(6)重启WEB服务器
下面开始设计
ATGrid WEB 开发主要以以下步骤,首先用winTable设计报表模板,然后在网页中用<object>标签引入模板,在用JS输出XML将数据注入模板。
下面以我开发时的例子来说明。
项目案例 : a.jsp中有一个FORM表单,里面包含一个table表格,做成的效果就是点击a.jsp下面的打印,然后弹出网页b.jsp,运行ATGrid插件,然后在b.jsp进行打印。
说明:当前的系统是基于struts 2.0 的
下面给出代码:
在a.jsp中,涉及到对一个表单的二次提交,那么“打印”按钮的方法如下
<
INPUT
class
=button
type
="button"
value
=" 打印 "
onclick
="toPrint();"
>
相应的javascript代码为
<
script language
=
"
javascript
"
>
function
toPrint()
{
window.document.myform.target="_blank";
window.document.myform.action="SCQY_HTZXDGL_ImpleSheetSearchDetailPrint.action";
window.document.myform.submit();
window.document.myform.target="_self";
window.document.myform.action="SCQY_HTZXDGL_ImpleGoodsValidity.action";
}
</
script
>
这个JS中,将打开一个新页面,并将FORM中的内容提交的action中,这个action再定位到b.jsp,也就是打印页面。下面是打印页面
首先引入控件
<
object
classid
="clsid:D0CB6A0C-E656-4BF4-BD2D-6AE5EC183D7C"
id
="ATGrid1"
width
="100%"
height
="95%"
>
<
param
name
="FileName"
value
="impleSheet.eT"
>
<
param
name
="Ruler"
value
="true"
>
</
object
>
另外,我将a.jsp中的form的全部内容都传递到b.jsp,并设置为隐藏,这样就可以在javascript中引用这些动态的数据。(因为控件活动在浏览器端,所有控制控件的代码都必须写到javascript中)
下面是b.jsp中的js代码,用于输出XML,并将xml中定义的数据添加到控件模板
<
script language
=
'
JavaScript
'
>

var
appCoName
=
document.all.appCoName.value;
var
headApprover
=
document.all.headApprover.value;
var
coSymbol
=
document.all.coSymbol.value;
var
LXConformer
=
document.all.LXConformer.value;
var
date
=
document.all.date.value;
var
strXML;
strXML
=
"
<?xml version='1.0' encoding='UTF-8'?>
"
;
strXML
+=
"
<EtCell>
"
;
strXML
+=
"

本文介绍如何使用ATGrid插件结合JSP和JavaScript实现Web打印解决方案。通过winTable设计报表模板,然后在网页中用<object>标签引入模板,利用JS输出XML注入数据。文中详细讲解了安装插件、配置环境、设计报表模板以及使用JavaScript进行数据注入的过程,并提供了一个基于Struts 2.0的案例。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



