项目一

在主页面的datagride中定义打印按钮的函数

  $('#dgs').datagrid({
        url: null,
        title: "包详情",
        toolbar: [{
            text: '新增',
            iconCls: 'icon-add',
            handler: function () {
                addIDs();
            }
        }, '-',
         {
             text: '删除',
             iconCls: 'icon-remove',
             handler: function () {
                 //删除
                 delIDs();
             }
         }, '-', {
            text: '保存',
            iconCls: 'icon-save',
            handler: function () {
                saveIDs();
            }
        },'-', {
            text: '刷新',
            iconCls: 'icon-reload',
            handler: function () {
                //refresh('dg', 'MES_MO_PK', '1000000016', 'admin');
                refIDs();
            }
        }, "-",{
            text: '打印包',
            iconCls: 'icon-print',
            handler: function () {
                //refresh('dg', 'MES_MO_PK', '1000000016', 'admin');
                Btn_PrintPack();
            }
        },
        ],
        columns: [[
            {
                field: 'ck',
                checkbox: true
            },
            { field: 'cInvCode', title: '存货编码', width: 100 },
            { field: 'cBatch', title: '批号', width: 100 },
            { field: 'cBatchProperty6', title: '基材', width: 100 },
            { field: 'cPKCode', title: '包号', width: 100, editor: 'textbox' },
            {
                field: 'iQuantity', title: '数量', width: 100,editor: 'textbox', formatter: function (val, rowData, rowIndex) {
                    if (val != null)
                        return parseFloat(val).toFixed(2);
                }
            },
            { field: 'cDefine1', title: '自定义I', width: 100, editor: 'textbox' },
            { field: 'cDefine2', title: '自定义II', width: 100, editor: 'textbox' },
            { field: 'cDefine3', title: '自定义III', width: 100, editor: 'textbox' },
            { field: 'Autoid', title: '唯一标识', width: 100, hidden: true },
        ]]
    });

打印在主页面上的具体实现

function Btn_PrintPack()
    {
        var dgrow = $('#dg').datagrid('getSelected');
        var dgsRows = $('#dgs').datagrid('getSelections');
        if (dgrow === null || dgsRows === null) {
            alert("请选择行!");
            return;
        }
        var outArray = new Array();

        for (var i = 0; i < dgsRows.length; i++) {
            outArray.push({ "cInvName": dgrow.cInvName, "cInvCode": dgsRows[i].cInvCode, "cBatch": dgsRows[i].cBatch, "cBatchProperty6": dgsRows[i].cBatchProperty6, "cPKCode": dgsRows[i].cPKCode, "iQuantity": dgsRows[i].iQuantity, "Autoid": dgsRows[i].Autoid });
        }
        var a = JSON.stringify(outArray);
        //alert(a);
        sessionStorage.setItem("k", a);
        var _url = "../../../GenerateQRCodeTag/EntryBillforPurchaseTagShow.html"
        window.open(_url, '_blank', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no');
    }

EntryBillforPurchaseTagShow页面的具体实现

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <meta charset="utf-8" />
    <link href="../jquery-easyui-1.5.3/demo/demo.css" rel="stylesheet" />
    <link href="../jquery-easyui-1.5.3/themes/icon.css" rel="stylesheet" />
    <link href="../jquery-easyui-1.5.3/themes/default/easyui.css" rel="stylesheet" />
    <style>
        @media print{
            .toolbar {
            display:none;
            }
        }
        .toolbar{
            border:1px solid #6A9BFA;
            background:#E8F7E8;
        }
        .paging {
        page-break-after:always
        }
        td {
        font-size:12px;
        color:#000000;
        }
    </style>
    <!--<script src="../jquery-easyui-1.5.3/jquery.easyui.min.js"></script>-->
    <script src="../jquery-easyui-1.5.3/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            initialHtmlPage();
        });
        function initialHtmlPage() {
            var getData = sessionStorage.getItem("k");
            $.post("../../../GenerateQRCodeTag/SingleAndMutiplySelectionPU.ashx?test=1", getData, function (data) {
                $("#a").html(data);
            })
        }
    </script>
</head>
<body style="overflow-y:auto;height:800px">
    <div style="margin:0 auto;width:700px;">
        <div class="toolbar">
            <object id="WebBrowser" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" width="0"></object>
            <input type="button" name="name" value="打印" onclick="document.all.WebBrowser.ExecWB(7,1)" />
        </div>
        <table id="a" cellpadding="0" cellspacing="0" style="margin:0;padding:0;text-align:right;font-size:20px" width="650" height="100">
            
        </table>

    </div>
</body>
</html>
SingleAndMutiplySelectionPU一般处理程序实现的具体
public class SingleAndMutiplySelectionPU : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            StringBuilder sb = new StringBuilder();
            string test = context.Request.QueryString["test"];
            {
                if (test == "1")
                {
                    List<SelectList> dicParameter = GetParameter(context);

                    for (int i = 0; i < dicParameter.Count; i++)
                    {
                        sb.AppendFormat("<tr><td width ='250px'> 物料名称:<ins id = 'nameOfStorage'>{0}</ins></td><td width = '250px'> 重量:<ins id = 'valueOfQuantity'>{1}</ins></td><td rowspan = '3' align = 'center'><img id = 'QRCodePic' src =../../../GenerateQRCodeTag/GetQRCodeUrl.ashx?cType=PU&StorageName={0}&StorageCode={2}&Material={3}&Batch={4}&PKCode={5}&IQuantity={1}&AutoID={6} style = 'height:100px;width:100px;margin-top:3px' /></td></tr>", dicParameter[i].cInvName, dicParameter[i].iQuantity, dicParameter[i].cInvCode, dicParameter[i].cBatchProperty6, dicParameter[i].cBatch, dicParameter[i].cPKCode, dicParameter[i].Autoid);
                        sb.AppendFormat("<tr><td width = '250px'> 物料批号:<ins id = 'batchOfStorage'>{0}</ins></td><td width= '250px'> 基材:<ins id = 'codeOfMaterial'>{1}</ins></td></tr>", dicParameter[i].cBatch, dicParameter[i].cBatchProperty6);
                        sb.AppendFormat("<tr><td width = '250px'> 仓库:<ins id ='wareHouse'>{0}</ins></td><td width ='250px'> 时间:<ins id = 'valueOfTime'>{1}</ins></td></tr>", 55, new DateTime().ToShortDateString());
                        sb.AppendFormat("<tr class='paging'></tr>");
                    }
                }
            }

            context.Response.Write(sb.ToString());
        }
        private List<SelectList> GetParameter(HttpContext context)//获取前台传过来的流数据
        {
            StreamReader reader = new StreamReader(context.Request.InputStream);
            String strJson = HttpUtility.UrlDecode(reader.ReadToEnd());
            JavaScriptSerializer jss = new JavaScriptSerializer();
            List<SelectList> dicParameter = jss.Deserialize<List<SelectList>>(strJson);
            return dicParameter;
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
    public partial class SelectList//接收ajax传过来的json对象数据
    {
        public string cInvName { get; set; }
        public string cInvCode { get; set; }
        public string cBatch { get; set; }
        public string cBatchProperty6 { get; set; }
        public string cPKCode { get; set; }
        public string iQuantity { get; set; }
        public string Autoid { get; set; }
    }

处理二维码图片的一般处理程序

  public void GenerateQRCode(string str, HttpContext context)
        {
            Bitmap bt;
            string enCodeString = str;
            QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
            qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
            qrCodeEncoder.QRCodeScale = 5;
            qrCodeEncoder.QRCodeVersion = 41;
            qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
            bt = qrCodeEncoder.Encode(enCodeString.ToString(), Encoding.UTF8);
            //string path = "/tempImage/" + Guid.NewGuid().ToString() + ".jpg";
            //string strPath = context.Request.MapPath(path);
            //bt.Save(strPath);
            //return path;
            MemoryStream stream = new MemoryStream();
            bt.Save(stream, ImageFormat.Jpeg);
            context.Response.Clear();
            context.Response.ContentType = "image/jpeg";
            context.Response.BinaryWrite(stream.ToArray());
            #region
            //var encoder = new QrEncoder(ErrorCorrectionLevel.M);
            //int moduleSize = 9;
            //QrCode qrCode = encoder.Encode(str);
            //GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(moduleSize, QuietZoneModules.Two), Brushes.Black, Brushes.White);
            //MemoryStream memoryStream = new MemoryStream();
            //render.WriteToStream(qrCode.Matrix, ImageFormat.Jpeg, memoryStream);
            //return memoryStream;
            #endregion
        }
context.Response.ContentType = "text/plain";
            string type = context.Request.QueryString["cType"];
            string linkStr=null;
            switch (type)
            {
                case "PU":
                    linkStr = GenerateStrContentPU(context);
                    break;
                
            } 
            GenerateQRCode(linkStr, context);

 

转载于:https://www.cnblogs.com/lingxiuhan/p/8028987.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值