`
yangjb
  • 浏览: 31933 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lodop打印控件

阅读更多
1.安装。
2.调用LodopFuncs.js文件。
3.增加OBJECT对象
<script language="javascript" src="page/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>
4.获取
<script language="javascript">
/*获取LODOP*/
function sppGetLopod(){
LODOP=getLodop(document.getElementById('LODOP'),document.getElementById('LODOP_EM')); 
return LODOP;
}
var LODOP;
//订单号
var invoiceids;
//表单数据
var dataArr;
var data;
//订单号数组
var invoiceidsArr;
var j =1;
//当前订单号
var sOrder;

/*页面单个打印调用*/
function print(invoiceid){
invoiceids=",'"+invoiceid+"'";
/*AJAX请求*/
ajaxOrderAction(invoiceids,1);

}

/*页面批量打印订单*/
function batchPrint(){
var obj =document.getElementsByName("items");
var invoiceids="";
    for(var i=0;i<obj.length;i++){
         if(obj[i].checked){
        //invoiceids+=",'"+obj[i].value+"'";
        temp=(obj[i].value.split("-"))[0]
        invoiceids+=",'"+temp+"'";
       }
}
if(invoiceids==""||invoiceids==null){
alert("请选择!");
}else{
invoiceidsArr = invoiceids.split(',');
next();
}
}

//下一个单子
function next(){
if( j<= invoiceidsArr.length-1){
//打印
sOrder = null;
sOrder = ","+invoiceidsArr[j];
//上次打印内容致空
dataArr = null;
/*AJAX请求*/
ajaxOrderAction(sOrder,2);
}else{
alert("打印完毕");
$("#fom").submit();
}
}

//等待时间
function waitTime(numberMillis){
var now = new Date();
var exitTime = now.getTime() + numberMillis; 
while (true) {
now = new Date();
if (now.getTime() > exitTime) return;
}
}


/*AJAX请求*/
function ajaxOrderAction(orderId,isbat){
/*AJAX请求*/
var url ="printOrderPrint.action?invoiceids="+orderId;
     $.get(url, function(data){
    splitData(data,isbat);
});
}

/*初始化*/
function prn_Init(orderStr) {
LODOP=sppGetLopod();
/*initstate  true||false*/
var initstate = LODOP.PRINT_INIT("票据打印"+orderStr);
if(initstate!=true){
alert("打印出错");
return false;
}
LODOP.SET_PRINT_PAGESIZE(0,0,0,"A4");
};


/*切割返回参数*/
function splitData(data,isbat){
dataArr = data.split("!@");
preparePrint(dataArr);

/*确认是否预览*/
confirmPreview(dataArr,isbat);
}

/*准备打印*/
function preparePrint(dataArr){
data = null;
data = dataArr;
/*初始化*/
prn_Init(data[3]);
/*LOGO打印*/
sppCreateImage(data[0],data[1]);
/*条码打印*/
sppPrintBarcode(data[2]);
/*订单号*/
sppOrderNumber(data[3]);
/*出库单号==条码*/
sppInvioceNumber(data[2]);
/*付款方式*/
sppPayment(data[4]);
/*下单人*/
sppCreator(data[5]);
/*订购和发货日期*/
sppDate(data[6],data[7]);
/*发货状态*/
sppOrderState(data[8]);
/*会员卡号*/
sppUserCardNumber(data[9]);
/*收货人姓名*/
sppConsignee(data[10]);
/*电话*/
sppPhone(data[11]);
/*邮编*/
sppPostcode(data[12]);
/*收货地址*/
sppAddress(data[13]);
/*商品列表表头*/
sppListTitle();
/*商品列表&合计*/
sppProdList(data);
/*商品品响数*/
sppProductCount(data[14]);
/*附加费*/
sppSurcharge(data[15]);
/*合计(第三部分)*/
sppTotal(data[16]);
/*已收款*/
sppGathering(data[17]);
/*应收款*/
sppReceivables(data[18]);
/*已付信息*/
sppPaidInformation(data[19]);
/*应收款金额合计*/
sppCharAggregate(data[20]);
/*下单人备注*/
sppMessage(data[21]);
/*留存联*/
sppSplit();

return true;
}

/*LOGO打印*/
function sppCreateImage(orderStyle,station) {
LODOP=sppGetLopod();
var path =$("#path").val();
var img = "<img src='"+path+"/page/images/Logoprint.gif' />";
LODOP.ADD_PRINT_IMAGE('0.5cm','1cm','5cm','3.5cm',img);
LODOP.ADD_PRINT_TEXT('1.5cm','9.5cm','5cm','3.5cm',orderStyle);
LODOP.ADD_PRINT_TEXT('1.5cm','17.5cm','5cm','3.5cm',station);
};

/*条码打印*/
function sppPrintBarcode(barcode){
LODOP=sppGetLopod();
LODOP.ADD_PRINT_BARCODE('2.5cm','7.5cm','5cm','2cm',"Code39",barcode);
};

/*订单号*/
function sppOrderNumber(orderNumber) {
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT('5cm','1cm','5cm','3.5cm',"订单号:   ");
LODOP.ADD_PRINT_TEXT('5cm','2.5cm','5cm','3.5cm',orderNumber);
};

/*出库单号*/
function sppInvioceNumber(invioceNumber) {
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT('5cm','5cm','5cm','3.5cm',"出库单号:   ");
LODOP.ADD_PRINT_TEXT('5cm','6.5cm','5cm','3.5cm',invioceNumber);
};

/*付款方式*/
function sppPayment(payment) {
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT('5cm','9.5cm','5cm','3.5cm',"付款方式:   ");
LODOP.ADD_PRINT_TEXT('5cm','11cm','5cm','3.5cm',payment);
};

/*下单人*/
function sppCreator(creator) {
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT('5cm','14.5cm','5cm','3.5cm',"下单人:   ");
LODOP.ADD_PRINT_TEXT('5cm','16.2cm','5cm','3.5cm',creator);
};

/*订购和发货日期*/
function sppDate(orderTime,sendTime) {
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT('5.5cm','1cm','5cm','3.5cm',"订购日期:   ");
LODOP.ADD_PRINT_TEXT('5.5cm','2.5cm','5cm','3.5cm',orderTime);
LODOP.ADD_PRINT_TEXT('5.5cm','7.5cm','5cm','3.5cm',"发货日期:   ");
LODOP.ADD_PRINT_TEXT('5.5cm','9cm','5cm','3.5cm',sendTime);
};

/*发票状态*/
function sppOrderState(orderState) {
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT('5.5cm','14.5cm','5cm','3.5cm',"发票状态:   ");
LODOP.ADD_PRINT_TEXT('5.5cm','16.2cm','5cm','3.5cm',orderState);
};

/*会员卡号*/
function sppUserCardNumber(userCardNumber) {
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT('6cm','1cm','5cm','3.5cm',"会员卡号:   ");
LODOP.ADD_PRINT_TEXT('6cm','2.5cm','5cm','3.5cm',userCardNumber);
};

/*收货人姓名*/
function sppConsignee(consignee) {
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT('6cm','5cm','5cm','3.5cm',"收货人姓名:   ");
LODOP.ADD_PRINT_TEXT('6cm','7cm','5cm','3.5cm',consignee);
};

/*电话*/
function sppPhone(phone) {
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT('6cm','9.5cm','5cm','3.5cm',"电话:   ");
LODOP.ADD_PRINT_TEXT('6cm','11cm','5cm','3.5cm',phone);
};

/*邮编*/
function sppPostcode(postcode) {
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT('6cm','14.5cm','5cm','3.5cm',"邮编:   ");
LODOP.ADD_PRINT_TEXT('6cm','16.2cm','5cm','3.5cm',postcode);
};

/*收货地址*/
function sppAddress(address) {
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT('6.5cm','1cm','5cm','3.5cm',"收货地址:   ");
LODOP.ADD_PRINT_TEXT('6.5cm','2.5cm','21cm','3.5cm',address);
};


/*商品列表表头*/
function sppListTitle() {
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT('7.5cm','1.5cm','5cm','3.5cm',"编码 ");
LODOP.ADD_PRINT_TEXT('7.5cm','4cm','5cm','3.5cm',"品名");
LODOP.ADD_PRINT_TEXT('7.5cm','13cm','5cm','3.5cm',"数量");
LODOP.ADD_PRINT_TEXT('7.5cm','15cm','5cm','3.5cm',"单价");
LODOP.ADD_PRINT_TEXT('7.5cm','17cm','5cm','3.5cm',"总计");
LODOP.ADD_PRINT_TEXT('7.8cm','1.5cm','21cm','1cm',"---------------------------------------------------------------------------------------------------------");
};

/*商品列表&合计*/
function sppProdList(ListSize){
LODOP=sppGetLopod();
for(var i=0;i<ListSize[14];i++){
var l1 = 8.1+i*1.2;
LODOP.ADD_PRINT_TEXT(l1+'cm','1.5cm','5cm','3.5cm',ListSize[22+i*5]);
LODOP.ADD_PRINT_TEXT(l1+'cm','4cm','8cm','3.5cm',ListSize[23+i*5]);
LODOP.ADD_PRINT_TEXT(l1+'cm','13cm','5cm','3.5cm',ListSize[24+i*5]);
LODOP.ADD_PRINT_TEXT(l1+'cm','15cm','5cm','3.5cm',ListSize[25+i*5]);
LODOP.ADD_PRINT_TEXT(l1+'cm','17cm','5cm','3.5cm',ListSize[26+i*5]);
LODOP.ADD_PRINT_TEXT((l1+0.6)+'cm','1.5cm','21cm','1cm',"---------------------------------------------------------------------------------------------------------");
}

var l2 = 8.1+ListSize[14]*1.2;
LODOP.ADD_PRINT_TEXT(l2+'cm','1.5cm','5cm','3.5cm',"合计");
LODOP.ADD_PRINT_TEXT(l2+'cm','13cm','5cm','3.5cm',ListSize[ListSize.length-3]);
LODOP.ADD_PRINT_TEXT(l2+'cm','17cm','5cm','3.5cm',ListSize[ListSize.length-2]);
LODOP.ADD_PRINT_TEXT((l2+0.6)+'cm','1.5cm','21cm','1cm',"---------------------------------------------------------------------------------------------------------");
}

/*商品品响数*/
function sppProductCount(productCount){
LODOP=sppGetLopod();
var l3 = 9.4+data[14]*1.2;
LODOP.ADD_PRINT_TEXT(l3+'cm','1cm','5cm','3.5cm',"商品品响数:  ");
LODOP.ADD_PRINT_TEXT(l3+'cm','3cm','5cm','3.5cm',productCount);
}

var l4;
/*附加费*/
function sppSurcharge(surcharge){
LODOP=sppGetLopod();
l4 = 9.9+data[14]*1.2;
LODOP.ADD_PRINT_TEXT(l4+'cm','1cm','5cm','3.5cm',"附加费:  ");
LODOP.ADD_PRINT_TEXT(l4+'cm','3cm','5cm','3.5cm',surcharge);
}

/*合计(第三部分)*/
function sppTotal(total){
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT(l4+'cm','4cm','5cm','3.5cm',"合计:  ");
LODOP.ADD_PRINT_TEXT(l4+'cm','5cm','5cm','3.5cm',total);
}

/*已收款*/
function sppGathering(gathering){
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT(l4+'cm','6.5cm','5cm','3.5cm',"已收款:  ");
LODOP.ADD_PRINT_TEXT(l4+'cm','8cm','5cm','3.5cm',gathering);
}

/*应收款*/
function sppReceivables(receivables){
LODOP=sppGetLopod();
LODOP.ADD_PRINT_TEXT(l4+'cm','9.5cm','5cm','3.5cm',"应收款:  ");
LODOP.ADD_PRINT_TEXT(l4+'cm','11cm','5cm','3.5cm',receivables);
}


/*已付信息*/
function sppPaidInformation(paidInformation){
LODOP=sppGetLopod();
var l5 = 10.4+data[14]*1.2;
LODOP.ADD_PRINT_TEXT(l5+'cm','1cm','5cm','3.5cm',"已付信息:  ");
LODOP.ADD_PRINT_TEXT(l5+'cm','3cm','5cm','3.5cm',paidInformation);
}

/*应收款金额合计*/
function sppCharAggregate(charAggregate){
LODOP=sppGetLopod();
var l6 = 10.9+data[14]*1.2;
LODOP.ADD_PRINT_TEXT(l6+'cm','1cm','5cm','3.5cm',"应收款金额合计:  ");
LODOP.ADD_PRINT_TEXT(l6+'cm','3.5cm','5cm','3.5cm',charAggregate);
}

/*下单人备注*/
function sppMessage(message){
LODOP=sppGetLopod();
var l7 = 11.4+data[14]*1.2;
LODOP.ADD_PRINT_TEXT(l7+'cm','1cm','5cm','3.5cm',"下单人备注:  ");
LODOP.ADD_PRINT_TEXT(l7+'cm','3cm','21cm','3.5cm',message);
}

/*留存联--14.2cm*/
function sppSplit(){
LODOP=sppGetLopod();
var l8 = 13.8+data[14]*1.2;
LODOP.ADD_PRINT_TEXT(l8+'cm','9.5cm','3cm','3.5cm',"留存联");
LODOP.ADD_PRINT_TEXT((l8+0.2)+'cm','1cm','21cm','1cm',"---------------------------------------------------------------------------------------------------------------------");
}

function confirmPreview(dataArr,isbat){
var print = LODOP;
if(isbat==2){
// print.PRINT();
var b = preparePrint(dataArr);
if(b){
// print.PRINT();
j +=1;
next();
}

}else{
if(confirm('要预览吗?'))
{
print.PREVIEW();
}else{
// print.PRINT();
var b = preparePrint(dataArr);
if(b){
// print.PRINT();
}
}
}
}
</script>

<table>
      <tr>
         <td>
<input type="button" value="批量打印" onclick=" batchPrint();"/>
</td>
       </tr>
</table>
         
         
             <table ">
              <caption>发货</caption>
                  <tr>
                    <th style="width:40px" ><a href="#"  onclick="selectAll();">全</a>|<a href="#"  onclick="unSelectAll();">否</a></th>   
<!-- <th><input type="checkbox" name="all" id="all" onclick="selectAll();"/></th>-->
                    <th style="width:140px">操作</th>
                    <th>单据类型</th> 
                    <th>发货单号</th>
                    <th>订单号</th>
                    <th>订单状态</th>
                    <th>支付方式</th>
<th>下单日期</th>             
                    <th>发货日期</th>
                    <th width="300">商品编码&nbsp;&nbsp;商品名称&nbsp;&nbsp; 商品数量&nbsp;&nbsp;商品单价</th>
                    <th>总金额</th>
                    <th>收货人姓名</th>
                    <th>电话</th>
                    <th>邮编</th>   
                    <th>地址</th>
           <th>客户取消时间</th>
           <th>是否有发票</th>
           <th>物流公司</th>
           <th>物流单号</th>
                  
                  </tr>
                  <s:iterator value="mapList" id="mapList">
                                  <tr>
                  <td>
<input type="checkbox" name="items" value="<s:property value="#mapList.INVOICEID"/>-<s:property value="#mapList.wuliu_id"/>-<s:property value="#mapList.wuliu_ordrid"/>-<s:property value="#mapList.STATUS" />" />
</td>
<td>
<span class="UpLayerNew">
<dt>
<a href="#" onclick="print('<s:property value="#mapList.INVOICEID"/>')">打印 </a>
</dt>
</span>
</td>
<td style="color:blue"><s:property value="#mapList.orderstatus"/></td>
      <td><a href="javascript:towuliu('<s:property value="#mapList.INVOICEID"/>');"><font color="blue"><s:property value="#mapList.INVOICEID"/></font></a></td>
                    <td><a href="javascript:showOrder('<s:property value="#mapList.INVOICEID"/>','<s:property value="#mapList.ORDRID"/>');"><font color="blue"><s:property value="#mapList.ORDRID"/></font></a></td>
                    <td style="color:blue"><s:property value="#mapList.STATUS" /></td>
                    <td style="color:blue"><s:property value="getBasePayById(#mapList.payid).payment"/></td>
                    <td style="color:blue"><s:date name="#mapList.datetime" format="yyyy-MM-dd HH:mm:ss"/></td>
                    <td style="color:blue"><s:date name="#mapList.SENDTIME" format="yyyy-MM-dd HH:mm:ss"/></td>
                    <td>
                    <table>
                    <s:iterator value="getprodList(#mapList.INVOICEID)" id="tmsInvoiceSubList">
                    <tr style="color:blue">
                    <td><s:property value="#tmsInvoiceSubList.prodid"/></td>
                    <td width="200"><s:property value="#tmsInvoiceSubList.prod_name"/></td>
                    <td><s:property value="#tmsInvoiceSubList.prod_cnt"/></td>
                    <td align="right"><s:property value="#tmsInvoiceSubList.prod_price"/></td>
                    </tr>
                    </s:iterator>
                    </table>
               </td>
               <td style="color:blue"><s:property value="#mapList.should_money"/></td>
                    <td style="color:blue"><s:property value="#mapList.RECEIVER_NAME"/></td>
                    <td style="color:blue"><s:property value="#mapList.LINK_TELE"/></td>
                    <td style="color:blue"><s:property value="#mapList.POST"/></td>
                    <td style="color:blue"><s:property value="#mapList.ADDRESS_INFO"/></td>
                    <td style="color:blue"><s:date name="#mapList.transdatetime" format="yyyy-MM-dd HH:mm:ss"/></td>
                    <td style="color:blue"><s:property value="#mapList.if_invoice"/></td>
                    <td style="color:blue"><s:property value="getBaseWulieComp(#mapList.wuliu_id).name"/></td>
                    <td style="color:blue"><s:property value="#mapList.wuliu_ordrid"/></td>
                  </tr>

5.调用函数
LODOP.函数名
(1)打印初始化(PRINT_INIT)
(2)设定纸张大小(SET_PRINT_PAGESIZE)
(3)增加打印项
---ADD_PRINT_HTM-增加超文本打印项(普通模式)
---ADD_PRINT_TABLE-增加表格打印项(超文本模式)
---ADD_PRINT_TEXT-增加纯文本打印项
---ADD_PRINT_IMAGE-增加图片打印项
---ADD_PRINT_BARCODE-增加条形码
(4)设置打印项风格(SET_PRINT_STYLEA)
(5)强制分页(NEWPAGEA)
(6)打印
---PREVIEW-打印预览
---PRINT-直接打印
分享到:
评论
1 楼 July01 2017-09-26  

最近了解到一款StratoIO打印控件,
功能如下:1、Html友好的打印方式
2、兼容主流浏览器
3、灵活配置的任务
4、交互式打印支持
5、丰富的管理面板和接口
6、个性化服务
浏览器和系统的兼容性都很好,而且不会崩溃。参考http://webprint.stratoio.com/features

相关推荐

Global site tag (gtag.js) - Google Analytics