Hibernate-easyui 在IE浏览器中打印

1.首先就是引入一个print.js的文件。下面就是print.js的内容,不用做任何的修改,直接复制粘贴就行。

/**
 * 打印js
 */

/**打印页面设置*/
function printsetup(){
	WebBrowser.execwb(8,1);  
}

/**打印页面预览  */
function printpreview(){
	WebBrowser.execwb(7,1);
	window.onfocus = complete;
}

function printit(){
	if (confirm('确定打印吗?')) {  
		WebBrowser.execwb(6,6);
		window.onfocus = complete;
	}
}

function printInit(top,bottom,left,rigt){
	var wb = document.getElementById("WebBrowser");
	if (wb){
		document.getElementById("printBtn").onclick = printit;
		document.getElementById("printpreviewBtn").onclick = printpreview;
		setupPage(top,bottom,left,rigt);
	}else{
	}
}

function complete(){
	window.onfocus = null;
}

/**打印帮助*/
function printhelp(){
	window.open('/admin/help/printHelp.jsp'); 
}

var HKEY_Root,HKEY_Path,HKEY_Key;    
HKEY_Root="HKEY_CURRENT_USER";    
HKEY_Path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";  

function setupPage(top,bottom,left,rigt) { 
   try{ 
	   if(!top){
		   top = "0.60";
	   }
	   if(!bottom){
		   bottom = "0.70";
	   }
	   if(!left){
		   left = "0.70";
	   }
	   if(!rigt){
		   rigt = "0.70";
	   }
	   var RegWsh = new ActiveXObject("WScript.Shell"); 
	   HKEY_Key="header" 
	   RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"") 
	   HKEY_Key="footer" 
	   RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&b  &p/&P  &b") //去掉了&u 因为我不想显示当前打印页的网址 
	   HKEY_Key="margin_top"; 
	   RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,top); 
	   HKEY_Key="margin_bottom"; 
	   RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,bottom); //0.39相当于把页面设置里面的边距设置为10 
	   HKEY_Key="margin_left"; 
	   RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,left); 
	   HKEY_Key="margin_right"; 
	   RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,rigt); 
	   HKEY_Key="Print_Background"; 
	   RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"yes"); 
	   HKEY_Key="Shrink_To_Fit"; 
	   RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"yes"); 
	
   } catch(e){
	   alert(e)
   } 
} 

2.就是打印的按钮,我加了一个点击事件。

<button onclick="dyhmc()">打印花名册</button>

3.写打印按钮的点击事件。选中一行的数据,获得到这行数据的id,id作为参数,传到后台,查询出相关的内容。

function dyhmc() {
		var row = $('.easyui-datagrid').datagrid('getSelected');
		if (row) {
			window.location.href = '${ctx}/admin/xsgl/bjxx/dyhmc/' + row.id;
		} else {
			$.messager.alert('提示', '未选择任何数据', 'info')
		}
	}

4.在conreoller层中,封装一下,30个学生存到一个list中。

@RequestMapping("/dyhmc/{id}")
	public String dyhmc(@PathVariable("id") Long bjid, Model model) {
		List<Xsxx> xsxxList = xsxxService.findXsByBjId(bjid);//根据班级的id,查询出这个班级中的所有的学生
		Map<String, Object> map = new HashMap<>();
		//得到学生的数量,30个人占一页显示
		int count = xsxxList.size()/30;
		int yu = count%30;//取余
		if(yu>0) {//判断余数是否大于0
			count = count + 1;
		}
		for(int i = 0;i<count;i++) {
			List<Xsxx> xsxx = new ArrayList<>();
			List<Xsxx> xsxx2 = new ArrayList<>();
			if(i == count - 1) {//30个人放在一个集合中
				xsxx = xsxxList.subList(i*30, xsxxList.size());
				map.put("xsxx", xsxx);
			}else {
				xsxx2 = xsxxList.subList(i*30, 30*(i+1));
				map.put("xsxx2", xsxx2);
			}
		}
		//得到的数据向前台传过去
		model.addAttribute("map", map);
		model.addAttribute("count", count);
		model.addAttribute("xsxxList", xsxxList);
		return "/xsgl/bjxx/dyhmc";//跳转到页面
	}

5.在service中根据班级的id,查询这个班级存在的所有的学生。

public List<Xsxx> findXsByBjId(Long bjid) {
		Map<String, Object> map = new HashMap<>();
		final String hql = "from Xsxx where bj_id = :bjid";
		map.put("bjid", bjid);
		List<Xsxx> xsxx = this.query(hql, map);
		if (xsxx == null) {
			return null;
		} else {
			return xsxx;
		}

	}

6.最后搭建打印的页面。去遍历循环,后台传过来的值。点击打印即可。

<body onload="printInit(0.4, 0.4, 0.4, 0.4)">
	<div align="center" class="noprint" style="margin-top: 10px;">
		<OBJECT ID="WebBrowser" name="WebBrowser" width="0" height="0"
			CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></OBJECT>
		<input type="button" class="button" value="打印帮助" onclick="printhelp()" />
		<input type="button" class="button" value="打印设置"
			onclick="printsetup()" /> <input type="button" class="button"
			value="打印预览" onclick="printpreview()" id="printpreviewBtn" /> <input
			type="button" class="button" value="直接打印"
			onclick="alert('正在加载请稍后。。。')" id="printBtn" /> <br> <br>
	</div>
	<div class="bjmc"
		style="width: 595px; text-align: center; font-size: 22px; margin: 0 0 10px 0">${map.xsxx[0].bjgl.bjmc}</div>
	<div style="width: 595px; height: 800px;">
		<c:forEach items="${map.xsxx2}" var="xsxx">
			<div id="dyhmc"
				style="float: left; width: 95px; margin: 10px; height: 105px">
				<img src="${ctx}/xszp?xh=${xsxx.bh}&sfzh=${xsxx.sfzh}"
					style="width: 95px; height: 105px;">
				<div style="text-align: center; width: 90px;">${xsxx.xm}</div>
			</div>
		</c:forEach>
	</div>
	<div class="pageNext" style="width: 595px; height: 800px;page-break-after: always;">
			<c:forEach items="${map.xsxx}" var="xs">
				<div id="dyhmc"
					style="float: left; width: 95px; margin: 10px; height: 105px">
					<img src="${ctx}/xszp?xh=${xs.bh}&sfzh=${xs.sfzh}"
						style="width: 95px; height: 105px;">
					<div style="text-align: center; width: 90px;">${xs.xm}</div>
				</div>
			</c:forEach>
	</div>
</body>

 

如题,项目要用到jeasyui,所以必须要下载它的demo,获取相应的js,css等等的文件 jeasyui的下载地址:http://www.jeasyui.com/download/index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <link href="easyui/themes/default/easyui.css" rel="stylesheet" type="text/css" /> <link href="easyui/themes/icon.css" rel="stylesheet" type="text/css" /> <link href="easyui/demo.css" rel="stylesheet" type="text/css" /> <script src="easyui/jquery.min.js" type="text/javascript"></script> <script src="easyui/jquery.easyui.min.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { $("#tab").datagrid({ // width: 600, //宽度 height: 400, //高度 singleSelect: true, //选一行的设置 fitColumns:true, url: "EditorUserHandler.ashx", //请求路径 title: "用户信息", //标题 iconCls: "icon-add", //图标 // collapsible: true, //隐藏按钮 //冻结列 // frozenColumns: [[{ field: "chk", "checkbox": true}]], //复选框 //列 rownumbers: false, //传输参数 queryParams: { "action": "query" }, pagination: true, toolbar: "#tool" }); $("#tab").datagrid('getPager').pagination({ beforePageText: "第", afterPageText: "页", displayMsg: "当前 {from} - {to}条数据 共{total} 条数据", pageSize: 10, pageList: [5, 10, 15, 20, 30] }); }) </script> <!--//打印--> <script type="text/javascript"> function CreateFormPage(strPrintName, printDatagrid) { var tableString = '<div><table width="100%"><tr style="text-align:center;"><td colspan="2" style="font-size:24px; font-weight:bold;"><span style="text-decoration:underline;"> </span>年<span style="text-decoration:underline;"> </span>半年广东省房屋市政工程安全生产文明施工示范工地申报项目汇总表</td></tr><tr><td style="text-align:left;">地区(部门)公 章: </td><td style="text-align:right;">报送时间: 年 月 日</td></tr></table> <table cellspacing="0" class="pb">'; var frozenColumns = printDatagrid.datagrid("options").frozenColumns; // 得到frozenColumns对象 var columns = printDatagrid.datagrid("options").columns; // 得到columns对象 var nameList = ''; // 载入title if (typeof columns != 'undefined' && columns != '') { $(columns).each(function (index) { tableString += '\n<tr>'; if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') { for (var i = 0; i < frozenColumns[index].length; ++i) { if (!frozenColumns[index][i].hidden) { tableString += '\n<th width="' + frozenColumns[index][i].width + '"'; if (typeof frozenColumns[index][i].rowspan != 'undefined' && frozenColumns[index][i].rowspan > 1) { tableString += ' rowspan="' + frozenColumns[index][i].rowspan + '"'; } if (typeof frozenColumns[index][i].colspan != 'undefined' && frozenColumns[index][i].colspan > 1) { tableString += ' colspan="' + frozenColumns[index][i].colspan + '"'; } if (typeof frozenColumns[index][i].field != 'undefined' && frozenColumns[index][i].field != '') { nameList += ',{"f":"' + frozenColumns[index][i].field + '", "a":"' + frozenColumns[index][i].align + '"}'; } tableString += '>' + frozenColumns[0][i].title + '</th>'; } } } for (var i = 0; i < columns[index].length; ++i) { if (!columns[index][i].hidden) { tableString += '\n<th width="' + columns[index][i].width + '"'; if (typeof columns[index][i].rowspan != 'undefined' && columns[index][i].rowspan > 1) { tableString += ' rowspan="' + columns[index][i].rowspan + '"'; } if (typeof columns[index][i].colspan != 'undefined' && columns[index][i].colspan > 1) { tableString += ' colspan="' + columns[index][i].colspan + '"'; } if (typeof columns[index][i].field != 'undefined' && columns[index][i].field != '') { nameList += ',{"f":"' + columns[index][i].field + '", "a":"' + columns[index][i].align + '"}'; } tableString += '>' + columns[index][i].title + '</th>'; } } tableString += '\n</tr>'; }); } // 载入内容 var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行 var nl = eval('([' + nameList.substring(1) + '])'); for (var i = 0; i < rows.length; ++i) { tableString += '\n<tr>'; $(nl).each(function (j) { var e = nl[j].f.lastIndexOf('_0'); tableString += '\n<td'; if (nl[j].a != 'undefined' && nl[j].a != '') { tableString += ' style="text-align:' + nl[j].a + ';"'; } tableString += '>'; if (e + 2 == nl[j].f.length) { tableString += rows[i][nl[j].f.substring(0, e)]; } else tableString += rows[i][nl[j].f]; tableString += '</td>'; }); tableString += '\n</tr>'; } tableString += '\n</table></div>'; window.showModalDialog("/print.htm", tableString, "location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;"); } </script> <!--//导出--> <script type="text/javascript"> function ChangeToTable(printDatagrid) { var tableString = '<table cellspacing="0" class="pb">'; var frozenColumns = printDatagrid.datagrid("options").frozenColumns; // 得到frozenColumns对象 var columns = printDatagrid.datagrid("options").columns; // 得到columns对象 var nameList = new Array(); // 载入title if (typeof columns != 'undefined' && columns != '') { $(columns).each(function (index) { tableString += '\n<tr>'; if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') { for (var i = 0; i < frozenColumns[index].length; ++i) { if (!frozenColumns[index][i].hidden) { tableString += '\n<th width="' + frozenColumns[index][i].width + '"'; if (typeof frozenColumns[index][i].rowspan != 'undefined' && frozenColumns[index][i].rowspan > 1) { tableString += ' rowspan="' + frozenColumns[index][i].rowspan + '"'; } if (typeof frozenColumns[index][i].colspan != 'undefined' && frozenColumns[index][i].colspan > 1) { tableString += ' colspan="' + frozenColumns[index][i].colspan + '"'; } if (typeof frozenColumns[index][i].field != 'undefined' && frozenColumns[index][i].field != '') { nameList.push(frozenColumns[index][i]); } tableString += '>' + frozenColumns[0][i].title + '</th>'; } } } for (var i = 0; i < columns[index].length; ++i) { if (!columns[index][i].hidden) { tableString += '\n<th width="' + columns[index][i].width + '"'; if (typeof columns[index][i].rowspan != 'undefined' && columns[index][i].rowspan > 1) { tableString += ' rowspan="' + columns[index][i].rowspan + '"'; } if (typeof columns[index][i].colspan != 'undefined' && columns[index][i].colspan > 1) { tableString += ' colspan="' + columns[index][i].colspan + '"'; } if (typeof columns[index][i].field != 'undefined' && columns[index][i].field != '') { nameList.push(columns[index][i]); } tableString += '>' + columns[index][i].title + '</th>'; } } tableString += '\n</tr>'; }); } // 载入内容 var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行 for (var i = 0; i < rows.length; ++i) { tableString += '\n<tr>'; for (var j = 0; j < nameList.length; ++j) { var e = nameList[j].field.lastIndexOf('_0'); tableString += '\n<td'; if (nameList[j].align != 'undefined' && nameList[j].align != '') { tableString += ' style="text-align:' + nameList[j].align + ';"'; } tableString += '>'; if (e + 2 == nameList[j].field.length) { tableString += rows[i][nameList[j].field.substring(0, e)]; } else tableString += rows[i][nameList[j].field]; tableString += '</td>'; } tableString += '\n</tr>'; } tableString += '\n</table>'; return tableString; } function Export(strXlsName, exportGrid) { var f = $('<form action="export.aspx" method="post" id="fm1"></form>'); var i = $('<input type="hidden" id="txtContent" name="txtContent" />'); var l = $('<input type="hidden" id="txtName" name="txtName" />'); i.val(ChangeToTable(exportGrid)); i.appendTo(f); l.val(strXlsName); l.appendTo(f); f.appendTo(document.body).submit(); try { document.body.removeChild(f); } catch (e) { } } </script> </head> <body> <a href="javascript:void(0);" onclick="CreateFormPage('打印测试', $('#tab'));">打印</a> <a href="javascript:void(0);" onclick="Export('导出excel', $('#tab'));">导出</a> <table id="tab"> <thead> <tr> <th data-options="field:'flid',width:80" rowspan="2">编号</th> <th data-options="field:'flname',width:100" rowspan="2">姓名</th> <th colspan="3">详细信息</th> <th colspan="2">登录信息</th> </tr> <tr> <th data-options="field:'fladdress',width:80,align:'right'">地址</th> <th data-options="field:'flphone',width:80,align:'right'">电话</th> <th data-options="field:'flemail',width:240">邮箱</th> <th data-options="field:'flloginname',width:60,align:'center'">登录名</th> <th data-options="field:'flloginpwd',width:60,align:'center'">密码</th> </tr> </thead></table> <div id="tool"> <table border="0" cellspacing="0" cellpadding="0" width="100%" class="easyui-datagrid"> <!--<tr> <td style=" padding-left:2px"> <a href="#" class="easyui-linkbutton" id="id_add" iconcls="icon-add" plain="true" onclick="add_dg();" >添加</a> <a href="#" class="easyui-linkbutton" id="id_edit" iconCls="icon-edit" plain="true" onclick="edit_dg();">修改</a> <a href="#" class="easyui-linkbutton" id="id_cancel " onclick="delete_dg();" iconcls="icon-cancel" plain="true">删除</a> </td> </tr>--> </table> </div> <br /> <div id="dd_dg" style=" display:none"> <form id="fm_dg"> 编号:<input id="flid" name="flid" class="easyui-numberbox" type="text" required="true" missingMessage="请输入编号" /> <br /> 姓名:<input id="flname" name="flname" class="easyui-validatebox" required="true" missingMessage="请输入姓名"/> <br /> 地址:<input id="fladdress" name="fladdress" class="easyui-validatebox" type="text" required="true" missingMessage="请输入地址" /> <br /> 电话:<input id="flphone" name="flphone" class="easyui-validatebox" type="text" required="true" missingMessage="请输入电话" /> <br /> 邮箱:<input id="flMail" name="flMail" class="easyui-validatebox" type="text" validType="email" required="true" missingMessage="请输入邮箱" /> <br /> 登录名:<input id="flloginname" name="flloginname" class="easyui-validatebox" type="text" required="true" missingMessage="请输入登录名" /> <br /> 密码:<input type="password" id="flloginpwd" name="flloginpwd" class="easyui-validatebox" required="true" missingMessage="请输入密码" /> <br /> </form> </div> </body> </html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值