首先到锐浪网站下载最新版本插件
http://www.rubylong.cn/Download.htm
安装好后 在安装目录下找到CreateControl.js以及griectl.cab web开发只需此两个文件就可完成
将griectl.cab 拷贝至项目的某个目录下
在CreateControl.js中
找到var GridReportCodeBase = 'codebase="/jxc/griectl.cab#Version=5,6,12,508"'; ' 加粗地方改为griectl.cab 在项目中位置 jxc为我的项目名 griectl.cab 我是直接放到项目根目录下
配置好后 在未安装Grid++Report web插件的客户端访问会自动下载安装
jsp页面
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<title>佳立信自定义打印格式 - <%=request.getAttribute("report")%></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script src="/jxc/template/gridReport/js/CreateControl.js" language="javascript"></script>
<SCRIPT LANGUAGE="JavaScript" FOR="ReportDesigner" EVENT="SaveReport()">
//保存模板时所做的处理
DefaultAction=false;
var val = prompt("请输入名称",LoadReportURL.substring(LoadReportURL.lastIndexOf("/")+1,LoadReportURL.lastIndexOf(".")));
if(val)
{
if(val!=null && ""!=val)
{
SaveReportURL="DesignReportSave.action?report="+val+".grf";
DefaultAction=true;
}
}
</SCRIPT>
</head>
<body style="margin:0">
<script language="javascript">
var Report = "<%=request.getAttribute("report") %>";
if (Report == "null")
Report = "";
else if (Report != "")
Report = "/jxc/grf/"+Report;
var Data = "<%=request.getAttribute("data") %>";
if (Data == "null")
Data = "";
else if (Data != "")
Data = "" + Data;
CreateDesigner(Report, "DesignReportSave.action", Data);
</script>
</body>
</html>
action中的方法
public String planPFormat() {
report="1a.grf";
data="gridGodownPrint.action?geOwner.id="+docId;
return SUCCESS;
}
public String DesignReportSave() {
if (report!=null && !"".equals(report)) {
report = charCode.toGBK(report);
}
return SUCCESS;
}
数据格式处理
返回至GenXmlDateForCGDD.jsp页面
public String gridPrint() {
items = new ArrayList<GodownEntry>();
StringBuffer XmlText = new StringBuffer ("<xml>\n");
boolean flag = true;
try {
if (geOwner!=null) {
geOwner = geOwnerService.getGe_OwnerById(geOwner.getId());
items = godownEntryService.getAllGodown(" as g where g.code='"+ geOwner.getCode() + "' order by g.id asc");
for (GodownEntry pro : items) {
XmlText.append("<row>");
XmlText.append("<code>"+geOwner.getCode()+"</code><customerName>"+geOwner.getSupplier().getSupplierName()+"</customerName><createTime>"+geOwner.getCreateTime()+"</createTime>" +
"<depotName>"+geOwner.getDepot().getDepotName()+"</depotName><departName>"+geOwner.getDepartment().getName()+"</departName><remark>"+geOwner.getRemark()+"</remark>");
XmlText.append("<managerName>"+geOwner.getManagerName()+"</managerName><createrName>"+geOwner.getCreatorName()+"</createrName>" +
"<materielName>"+pro.getMateriel().getMaterielName()+"</materielName><type>"+pro.getMateriel().getType()+"</type><unit>"+pro.getUnit()+"</unit>" +
"<color>"+pro.getColor()+"</color><mAmount>"+pro.getAmount()+"</mAmount>");
XmlText.append("<price>"+pro.getPrice()+"</price><discount>"+String.valueOf(Float.valueOf(pro.getDiscount()) / 100)+"</discount>" +
"<ratePrice>"+pro.getRatePrice()+"</ratePrice><rateSum>"+pro.getSum()+"</rateSum><amount>"+geOwner.getTotalAmount()+"</amount><sum>"+geOwner.getSum()+"</sum>");
XmlText.append("</row>\n");
}
}
else {
flag=false;
}
} catch (Exception e) {
flag=false;
}
if (!flag) {
XmlText.append("<row>");
XmlText.append("<code></code><customerName></customerName><createTime></createTime><depotName></depotName><departName></departName><remark></remark>");
XmlText.append("<managerName></managerName><createrName></createrName><materielName></materielName><type></type><unit></unit><color></color><mAmount></mAmount>");
XmlText.append("<price></price><discount></discount><ratePrice></ratePrice><rateSum></rateSum><amount></amount><sum></sum>");
XmlText.append("</row>\n");
}
XmlText.append("</xml>\n");
request.setAttribute("XmlText", XmlText.toString());
return SUCCESS;
}
GenXmlDateForCGDD.jsp
<%@ page contentType="text/html; charset=GBK"%>
<%@ page import="javax.servlet.jsp.JspWriter"%>
<%@ page import="javax.servlet.http.HttpServletResponse"%>
<%@ page import="java.util.zip.DeflaterOutputStream"%>
<%@ page import="java.lang.*, java.io.*, java.sql.*, java.util.*"%>
<%
try
{
Object XmlText = request.getAttribute("XmlText");
PrintWriter pw = response.getWriter();
pw.print(XmlText);
pw.close(); //终止后续不必要内容输出
}
catch(Exception e)
{
//output error message
PrintWriter pw = response.getWriter();
pw.print(e.toString());
}
%>
此处数据字段名在action数据处理格式中一定要有
这样就可以随心设置自己想要打印的格式了