Grid++Report6BS报表打印之Java,使⽤jsp打印报表实现1,在官⽹下载需要的插件与编辑器:
2、需要注意的是:
锐浪Grid++Report报表插件不能运⾏在64位浏览器中,相关报表与打印功能将⽆法正常运新,请改⽤32位浏览器(官⽹给出的说明)
3、根据官⽹给出的demo设计以下调⽤的流程:
1、需要使⽤的页⾯拼接需具体打印信息的url(包括模板名称,标题,请求具体数据url的地址)
2、具体打印页⾯接收对应的参数数据,然后显⽰对应的打印页⾯
4、具体代码
页⾯调⽤js:
&f&data=http%3a%2f%2flocalhost%3a8080%2ftest%2fservlet%2fGetData%3fid%3d100)
/*
*将需要打印数据地址拼接,并跳转到对应打印页⾯
*Title:打印页⾯标题
*ReportURL:报表模板名称
*DataURL:ajax返回具体数据地址
*/
var printFunction = function (Title, ReportURL, DataURL) {
//具体需要跳转的地址
java和jspvar printURL = "localhost:8080/test/"
+ "PrintReport.jsp?title=" + encodeURIComponent(Title)
+ "&report=" + encodeURIComponent(ReportURL)
+ "&data=" + encodeURIComponent(DataURL);
//再新窗⼝打开这个打印页⾯
window.open(printURL, '_blank');
}
打印页⾯:PrintReport.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.URLDecoder"%>
<html>
<head>
<title>报表打印 - <%=URLDecoder.Parameter("title"), "UTF-8")%></title> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<script src="js/CreateControl.js" type="text/javascript"></script>
<style type="text/css">
html,body {
margin:0;
height:100%;
}
</style>
</head>
<body >
<script type="text/javascript">
var Report = "<%=Parameter("report")%>";
if (Report == "null")
Report = "";
else if (Report != "")
Report = "grf/" + Report;//具体放置模板⽂件的地址
var Data = "<%=Parameter("data")%>";
if (Data == "null")
Data = "";
else if (Data != "")
Data = Data;
//⽣成打印页⾯
CreatePrintViewerEx("100%", "100%", Report, Data, true, "");
</script>
</body>
</html>
ajax返回数据格式:
5、打印页⾯结果:
6、总结:
1、因为使⽤了打印页⾯是跳转的新页⾯的形式,打印前打判断可以在调⽤js跳转⽅法前实现。
2、具体打印页⾯也可以不使⽤jsp来实现,可以使⽤html页⾯来实现,然后使⽤js来获取对应传过来的url参数也是可⾏的
3、具体返回打ajax格式需要根据模板设计的不同来格式会有所改变
4、具体的模板绘制⽅法请参考官⽅教程

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