java实现热敏打印机打印小票

来源:互联网 发布:阿里云邮箱满了怎么办 编辑:程序博客网 时间:2024/06/02 23:26

// 以下是热敏打印机的开发步骤(只适用于IE浏览器)
1.下载BTP-2002CPV2.22.zip和POSOCX-V1.23.zip
2.安装
    POSOCX-V1.23.zip 是安装打印机
    BTP-2002CPV2.22.zip 是注册

3.jsp页面:
3.1 引入js文件(xxx.js指自己的posocx的js文件)

<script type="text/javascript" src="<%=basePath%>/xxx.js" charset="utf-8"></script>

3.2 在页面的最大的div的最后引入posocx对象(注册表中搜索posocx,clsid是注册号)

<div>    <!-- 页面的内容 -->    <object id="POSOCX" classid="clsid:自己的注册码"  width="0" height="0" align="center" hspace="0">    </object></div>

3.3 调用方法:(打印上下联)

var posObj = document.getElementById("POSOCX");//调用自己js文件中的打印方法// 这是***.js中的方法



结合dwz实现打印小票,则稍微复杂一些。

情境描述:

    form表单提交,后台操作成功后,dwz弹框操作成功,我们点击确定则退出。现在想要修改弹框信息(提示是否打印小票),并且弹框上有两个按钮,确定和取消。点击确定我们打印,取消不打印。

jsp页面:

<div class="pageContent">    <form method="post" action="test.action?flag=${flag }"        class="pageForm required-validate"        onsubmit="return validateCallback1(this, test1);">        <!-- 页面的内容 -->    </form>    <!-- 页面的内容 -->    <object id="POSOCX" classid="clsid:自己的注册码"  width="0" height="0" align="center" hspace="0">    </object></div>

js开发过程如下:
我们常用场景:
如form标签中加上属性:

onsubmit="return validateCallback(this, dialogAjaxDone);" 

表单提交处理后,会弹框显示操作成功。
分析dwz的源代码,发现dwz.ajax.js中的validateCallback方法有三个参数,

/** * 普通ajax表单提交 * @param {Object} form * @param {Object} callback * @param {String} confirmMsg 提示确认信息 */function validateCallback(form, callback, confirmMsg) { // form 提交的表单对象,callback回调函数,confirmMsg是提示确认信息。    var $form = $(form);    if (!$form.valid()) {        return false;    }    var _submitFn = function(){        $.ajax({            type: form.method || 'POST',            url:$form.attr("action"),            data:$form.serializeArray(),   // 此处是form表单的数据            dataType:"json",            cache: false,            success: callback || DWZ.ajaxDone,  // 回调            error: DWZ.ajaxError        });    }    if (confirmMsg) {        alertMsg.confirm(confirmMsg, {okCall: _submitFn});    } else {        _submitFn();    }    return false;}

我们想要实现自己的功能,肯定需要传递自己的callback方法。
控制器中我们:

resp.getWriter().write("{\"message\":\"操作成功!\",\"navTabId\":\"main\",\"callbackType\":\"closeCurrent\",\"statusCode\":\"200\"}");

查看dwz的dialogAjaxDone源码:

/** * dialog上的表单提交回调函数 * 当前navTab页面有pagerForm就重新加载 * 服务器转回navTabId,可以重新载入指定的navTab. statusCode=DWZ.statusCode.ok表示操作成功, 自动关闭当前dialog *  * form提交后返回json数据结构,json格式和navTabAjaxDone一致 */function dialogAjaxDone(json){    DWZ.ajaxDone(json);    if (json[DWZ.keys.statusCode] == DWZ.statusCode.ok){        if (json.navTabId){ // 重新加载页面            navTab.reload(json.forwardUrl, {navTabId: json.navTabId});        } else {            var $pagerForm = $("#pagerForm", navTab.getCurrentPanel());            var args = $pagerForm.size()>0 ? $pagerForm.serializeArray() : {}            navTabPageBreak(args, json.rel);        }        if ("closeCurrent" == json.callbackType) {             $.pdialog.closeCurrent();        }        // 我们可以在这里写自己的代码。此处我们需要form表单中的数据,但是jquery取不到。怎么办?        //我们想到了validateCallback方法,他帮我们提交数据,他里面绝对有form的数据。前面查看validateCallback方法源码已经知道。    }}
0 0
原创粉丝点击