现在的位置: 首页 > 综合 > 正文

WEB打印控件Lodop打印

2014年06月23日 ⁄ 综合 ⁄ 共 6378字 ⁄ 字号 评论关闭

安装打印控件 install_lodop32.exe 或 install_lodop64.exe

完成安装界面:

引入LodopFuncs.js文件
jsp中

	<script type="text/javascript" src="js/LodopFuncs.js"></script> 
	<object  id="LODOP" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0>  
		<embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0></embed> 
	</object> 
	<button id="doPrintBnt" type="button" class="btn2" onclick="doPrint()">打 印</button>

js文件代码

function doPrint(){
        //LODOP=getLodop(document.getElementById('LODOP_OB'),document.getElementById('LODOP_EM')); 
		storeStatus = combo_storeStatus.getComboText();//库存状态
		drugName = $("#drugName").val();//药品名称
		// alert(storeStatus+" "+drugName);
		if(storeStatus=='' || storeStatus==null){
			storeStatus='';
		}
		if(drugName=='' || drugName==null){
			drugName='';
		}
       	// LODOP.NEWPAGE();
		// LODOP.PRINT_INITA(0,0,"210mm","297mm","");
		// LODOP.SET_PRINT_PAGESIZE(1,2200,0,"A4");
		var strHTML="<table border='0' width='100%' >"; 
		$.ajax({
			async:false,
			cache:false,
			type: "post",
			url: "drugmanage/printwarning.htm",
			data:"storeStatus="+storeStatus+"&drugName="+drugName,
			error:function(){
				alert('fail');
			},
			success:function(data){
				var textHtm='<style>.biangeng_9{ background:none; border:0px; border-bottom:1px solid #000;text-align:center} '
				         +'</style>'
				         +'<table width="700" border="0" cellspacing="0" cellpadding="0" class="biangeng_5">'
	                     +'<tr>'
	                     +'<td colspan="2" style="font-size:20px; font-weight:bold; text-align:center; height:49px;">库存预警单</td>'
	                     +'</tr>'
	                     +' </table>';
				var textHtml='<table width="700" border="1" width="100%" cellspacing="0" cellpadding="0" bgcolor="#000000" class="mar3" style="font-size:14px;">'
		                 +'         <tr bgcolor="#FFFFFF" align="center">'
		                 +'               <td  align="center" >库存状态</td>'
		                 +'               <td  align="center" >药品名称</td> '
		                 +'               <td  align="center" >药品规格</td>'
		                 +'               <td  align="center" >产地名称</td>'
		                 +'               <td  align="center" >单位</td>'
		                 +'               <td  align="center" >药品进价</td>'
		                 +'               <td  align="center" >药品售价</td>'
		                 +'               <td  align="center" >库存下限</td>'
		                 +'               <td  align="center" >库存上限</td>'
		                 +'               <td  align="center" >当前库存</td>'
		                 +'       </tr>'
		    
		       var json=eval("("+data+")");
		       alert(json.pprice);
		       var pagenum=1;
		       if(json.length%33==0){
		       	pagenum =json.length/33;
		       }else if(json.length>33){
		       	pagenum =parseInt((json.length/33).toString().split("."))+1;
		       }
				//LODOP.ADD_PRINT_HTM(0,10,663,"60mm","<style>  tr{height:50px;} td {font-size:13px;height:20px;} input{border:none; border:1px solid #000;}</style>"+textHtm); 	
				for(var j=0;j<pagenum;j++){
			     	var textHtml2="";
				   for (var i=j*33;(i<json.length)&&(i<(j*33+33));i++){
					     var medname=json[i].medname.substring(0,8);
					     var spec=json[i].spec.substring(0,8);
					     var mafname=json[i].mafname.substring(0,8);
					     var packagetype=json[i].packagetype;
					     var pprice=json[i].pprice;
					     var sprice=json[i].sprice;
					     var minvalue=json[i].minvalue;
					     var maxvalue=json[i].maxvalue;
					     var qty=json[i].qty;
					     var statu;
						if(parseFloat(json[i].maxvalue)<parseFloat(json[i].qty)){
							statu = "过多";
						}else if(parseFloat(json[i].minvalue)>parseFloat(json[i].qty)){
							statu = "不足";
						}else{
							statu = "正常";
						}
					     
				     	textHtml2+='<tr bgcolor="#FFFFFF" align="center">'
						+'<td >'+statu+'</td>'
						+'<td >'+medname+'</td>'
						+'<td >'+spec+'</td>'
						+'<td >'+mafname+'</td>'
						+'<td >'+packagetype+'</td>'
						+'<td >'+pprice+'</td>'
						+'<td >'+sprice+'</td>'
						+'<td >'+minvalue+'</td>'
						+'<td >'+maxvalue+'</td>'
						+'<td >'+qty+'</td>'
						+'</tr>'
						//strHTML=strHTML+textHtml2;
					   }
					strHTML=strHTML+"<tr><td>";
					var string1="<style>  tr{height:50px;} td {font-size:13px;height:20px;} input{border:none; border:1px solid #000;}</style>"+textHtm
					var string2="<style>  tr{height:50px;} td {font-size:13px;height:20px;} input{border:none; border:1px solid #000;}</style>"+textHtml+textHtml2;
					strHTML=strHTML+string1+string2+"</table>";
					strHTML=strHTML+"</td></tr>";		
					}
					
			//LODOP.ADD_PRINT_TABLE(0,10,766,"270mm",strHTML);
					LODOP.PRINT_INIT("盘点单打印");
					LODOP.SET_PRINT_PAGESIZE(2,0,0,"A4");
					LODOP.ADD_PRINT_TABLE(0,0,'100%','83%',strHTML);
					LODOP.SET_PRINT_STYLEA(0,"Vorient",3);
					LODOP.ADD_PRINT_TEXT(10,700,133,20,"第#页/共&页");
					LODOP.SET_PRINT_STYLEA(0,"ItemType",2);
					LODOP.SET_PRINT_STYLEA(0,"Horient",1);	
					//LODOP.PRINT_DESIGN(); 	
					LODOP.PREVIEW();
					//LODOP.PRINT();
			}		
		});
		// LODOP.PRINT_DESIGN(); 	
}	

后台action代码

	@RequestMapping(value = "/printwarning", method = RequestMethod.POST)
	public void printwarning(HttpServletRequest request,HttpServletResponse response) throws Exception {
		response.setContentType("text/html;charset=utf-8");
		
		Bas_hospitals basHospitals = (Bas_hospitals) request.getSession().getAttribute("login_hospital");
		Bas_dept basDept = (Bas_dept) request.getSession().getAttribute("login_dept");
		String hosnum = basHospitals.getHosnum();
		String nodecode = basHospitals.getNodecode();
		String deptid = basDept.getDeptcode();
		
		String storeStatus = request.getParameter("storeStatus");
		String drugName = request.getParameter("drugName");
		
		DBOperator db = null;
		PrintWriter pw = null;
		try {
			db = new DBOperator();
			pw = response.getWriter();
			
			List showList = null;
			
			String medFlagStr = "";
			String sqlMedFlag = "select t.herbsflag,t.cnmflag,t.wmflag,t.materialflag from bas_dept t where hosnum=? and deptcode=?";
			Map<String, String> medFlagMap = (Map<String, String>) db.findOne(sqlMedFlag, new Object[] { basDept.getHosnum(),basDept.getDeptcode() });
			if ("Y".equals(medFlagMap.get("herbsflag"))){
				medFlagStr += "'中草药',";
			}
			if ("Y".equals(medFlagMap.get("cnmflag"))){
				medFlagStr += "'中成药',";
			}
			if ("Y".equals(medFlagMap.get("wmflag"))){
				medFlagStr += "'西药',";
			}
			if("Y".equals(medFlagMap.get("materialflag"))){
				medFlagStr += "'卫生材料',";
			}
			
			if(medFlagStr.length()>0){
				medFlagStr = medFlagStr.substring(0,medFlagStr.length()-1);
				String sql = "select s.medcode,m.medname,m.mafname,c.spec,c.packagetype,decode(i.retailprice, null, m.sprice, i.retailprice) as sprice," +
						"decode(i.pprice, null, m.pprice, i.pprice) as pprice," +
						"s.minvalue,s.maxvalue,decode(y.qty, null, 0, y.qty) as qty " +
						"from med_safestock s join med_inuse i on i.hosnum = s.hosnum and i.nodecode = s.nodecode and s.medcode = i.medcode " +
						"join med_main m on s.medcode = m.medcode " +
						"join med_spec c on m.speccode = c.speccode " +
						"left join mw_inventory y on s.hosnum = y.hosnum and s.deptcode = y.deptid and s.medcode = y.medcode " +
						"where s.hosnum = ? and s.nodecode = ? and s.deptcode = ? and c.rootclassname in ("+medFlagStr+") ";
				if(drugName!=null && !"".equals(drugName)){
					sql += "and (m.medname like '%" + drugName + "%' or m.inputcpy like '%" + drugName.toUpperCase() 
						+ "%' or m.inputcwb like '%" + drugName.toUpperCase() + "%') ";
				}
				if(storeStatus != null && !storeStatus.equals("")&& !storeStatus.equals("全部")){
					if("过多".equals(storeStatus)){
						sql += "and decode(y.qty,null,0,y.qty)>s.maxvalue ";
					}else{
						sql += "and decode(y.qty,null,0,y.qty)<s.minvalue ";
					}
				}
				sql += "order by c.rootclassname desc,s.medcode";
				showList = db.find(sql, new Object[]{hosnum,nodecode,deptid});
			}else{
				showList = new ArrayList();
			}
            JSONArray json = JSONArray.fromObject(showList);
            pw.print(json.toString());
		}catch(Exception e){
			e.printStackTrace();
			db.rollback();
		}finally{
			db.freeCon();
		}
		pw.flush();
		pw.close();
	}

抱歉!评论已关闭.