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