安装打印控件 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();
}
<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(); }