Example #1
0
        /// <summary>
        /// 初始化打印数据
        /// </summary>
        private void InitData()
        {
            //获取打印数据
            string address = Config.FullAddress.Replace("{batchNumber}", Config.BatchNumber);

            var data = GetPrintData(address);

            JObject obj = (JObject)JsonConvert.DeserializeObject(data);

            if (obj == null || obj["result"].ToString() == "False")
            {
                XMessageBox.Error("获取数据失败,请检查网络链接是否正常和模板参数是否设置正确。");
                return;
            }

            PrintData = JsonConvert.DeserializeObject <PrintDataModel>(obj["data"].ToString());

            using (var stream = new StreamWriter(Config.TemplateLocation(PrintData.PrintTemplate.FileName), false))
            {
                stream.Write(PrintData.FileContent);
            }

            if (PrintData != null && PrintData.Data != null && PrintData.Total > 0)
            {
                UpdateDataGridViewData(PrintData.Data);
                UpdateStatusBar($"加载数据:{PrintData.Data.Count}/{PrintData.Total}");
                int pageCount = PrintData.Total / 20;
                if (pageCount * 5 < PrintData.Total)
                {
                    pageCount += 1;
                }
                //从第二页开始获取数据
                for (int i = 2; i <= pageCount; i++)
                {
                    data = GetPrintData(address, i);
                    obj  = (JObject)JsonConvert.DeserializeObject(data);
                    var pData = JsonConvert.DeserializeObject <PrintDataModel>(obj["data"].ToString());
                    if (pData != null)
                    {
                        PrintData.Data.AddRange(pData.Data);
                        UpdateDataGridViewData(pData.Data);
                        UpdateStatusBar($"加载数据:{PrintData.Data.Count}/{PrintData.Total}");
                    }
                }
            }
        }
Example #2
0
        public Form_Print(PrintDataModel data, Configuration config, int index)
        {
            InitializeComponent();

            this.FormBorderStyle = FormBorderStyle.None;

            PrintData = data;
            Config    = config;
            Index     = index;

            this.Hide();
            ReportViewer1 = new ReportViewer();

            //this.Controls.Add(ReportViewer1);
            //ReportViewer1.Visible = true;
            //ReportViewer1.BringToFront();
            //ReportViewer1.Dock = DockStyle.Fill;
            ReportViewer1.LocalReport.EnableExternalImages = true;
            ReportViewer1.RenderingComplete += ReportView_RenderingComplete;
        }
Example #3
0
        public Form_PrintPreview(PrintDataModel printData, Configuration config, int index)
        {
            InitializeComponent();
            MyReportViewer = new ReportViewer
            {
                Anchor = ((AnchorStyles.Top | AnchorStyles.Bottom)
                          | AnchorStyles.Left)
                         | AnchorStyles.Right,
                Margin       = new Padding(10),
                AutoSizeMode = AutoSizeMode.GrowAndShrink,
                MinimumSize  = new Size(780, 600),
            };

            MyReportViewer.LocalReport.EnableExternalImages = true;
            this.Controls.Add(MyReportViewer);

            Config    = config;
            PrintData = printData;

            InitData(index);
        }
Example #4
0
        //打印IQC
        public string GetPrintCodeConvertStr(PrintDataModel PrintData)
        {
            try
            {
                byte[] result = new byte[] { };
                result = new byte[] { 0x1B, 0x40 };                                //打印机复位
                result = result.Concat(new byte[] { 0x1B, 0x33, 0x00 }).ToArray(); //设置行间距为0

                result = result.Concat(new byte[] { 0x1B, 0x61, 0x01 }).ToArray(); //设置居中
                result = result.Concat(new byte[] { 0x1D, 0x21, 0x01 }).ToArray(); //设置倍高

                result = result.Concat(Encoding.Default.GetBytes("来料抽样")).ToArray();
                result = result.Concat(new byte[] { 0x0D }).ToArray();             //回车并打印

                result = result.Concat(new byte[] { 0x1d, 0x48, 0x02 }).ToArray(); //设置02条码内容打印在条码下方 00不打印
                result = result.Concat(new byte[] { 0x1D, 0x77, 0x02 }).ToArray(); //设置条码宽度 1 2 3 4
                result = result.Concat(new byte[] { 0x1D, 0x68, 0x20 }).ToArray(); //设置条码高度
                result = result.Concat(new byte[] { 0x1D, 0x66, 0x00 }).ToArray(); //设置条码字体

                result = result.Concat(new byte[] { 0x1D, 0x6B, 0x45, 0x0D }).ToArray();

                result = result.Concat(Encoding.Default.GetBytes(PrintData.YBBQ)).ToArray();
                string ProductDescribe  = CutByteString(PrintData.ProductDescribe, 34);
                string Describe         = CutByteString(PrintData.Describe, 38);
                string productshortname = GetProductLastShortName(PrintData.ProductShortName).PadRight(14);

                result = result.Concat(new byte[] { 0x1B, 0x61, 0x00 }).ToArray();  //左对齐
                result = result.Concat(new byte[] { 0x1B, 0x21, 0x00 }).ToArray();  // 还原默认字体大小,取消下划线,取消粗体模式
                result = result.Concat(new byte[] { 0x1d, 0x21, 0x00 }).ToArray();  //设置不倍高
                result = result.Concat(Encoding.Default.GetBytes("┏━━━━┳━━━━━━┳━━┳━━━━━━━┓\n")).ToArray();
                result = result.Concat(Encoding.Default.GetBytes("┃采购单号┃" + PrintData.POName.PadRight(12) + "┃物料┃" + GetProductLastShortName(PrintData.ProductShortName).PadRight(14) + "┃\n")).ToArray();
                result = result.Concat(Encoding.Default.GetBytes("┣━━━━╋━━━━━━┻━━┻━━━━━━━┫\n")).ToArray();
                result = result.Concat(Encoding.Default.GetBytes("┃物料描述┃" + ProductDescribe + "┃\n")).ToArray();
                result = result.Concat(Encoding.Default.GetBytes("┣━━┳━┻━┳━━┳━━━┳━━━━┳━━━┫\n")).ToArray();
                result = result.Concat(Encoding.Default.GetBytes("┃AQL1┃" + PrintData.AQL1.PadRight(6) + "┃AQL2┃" + PrintData.AQL2.PadRight(6) + "┃抽样方式┃" + PrintData.CYFS.PadRight(4) + "┃\n")).ToArray();
                result = result.Concat(Encoding.Default.GetBytes("┣━━╋━━━┻━━┻━━━┻━━━━┻━━━┫\n")).ToArray();
                result = result.Concat(Encoding.Default.GetBytes("┃备注┃" + Describe + "┃\n")).ToArray();
                result = result.Concat(Encoding.Default.GetBytes("┗━━┻━━━━━━━━━━━━━━━━━━━┛\n")).ToArray();

                result = result.Concat(new byte[] { 0x1B, 0x61, 0x01 }).ToArray();   //设置居中
                //result = result.Concat(new byte[] { 0x1D, 0x21, 0x01 }).ToArray();  //设置倍高
                result = result.Concat(Encoding.Default.GetBytes("打印日期:" + PrintData.SendDate.ToString("yyyy-MM-dd") + " \n\n\n\n\n\n\n")).ToArray();

                return(Convert.ToBase64String(result));
            }
            catch (Exception)
            {
                byte[] result = new byte[] { };
                result = result.Concat(Encoding.Default.GetBytes("打印发生意外,请联系管理员")).ToArray();
                return(Convert.ToBase64String(result));
            }
            //byte[] result = new byte[] { };
            //result = new byte[] { 0x1B, 0x40 };       //打印机复位
            //result = result.Concat(new byte[] { 0x1B, 0x33, 0x00 }).ToArray();   //设置行间距为0

            //result = result.Concat(new byte[] { 0x1B, 0x61, 0x01 }).ToArray();    //设置居中
            //result = result.Concat(new byte[] { 0x1D, 0x21, 0x01 }).ToArray();  //设置倍高
            //result = result.Concat(Encoding.Default.GetBytes("抽样物料")).ToArray();
            //result = result.Concat(new byte[] { 0x0D }).ToArray();   //回车并打印

            //result = result.Concat(new byte[] { 0x1d, 0x48, 0x02 }).ToArray();    //设置02条码内容打印在条码下方 00不打印
            //result = result.Concat(new byte[] { 0x1D, 0x77, 0x02 }).ToArray();    //设置条码宽度 1 2 3 4
            //result = result.Concat(new byte[] { 0x1D, 0x68, 0x20 }).ToArray();  //设置条码高度
            //result = result.Concat(new byte[] { 0x1D, 0x66, 0x00 }).ToArray();  //设置条码字体

            //result = result.Concat(new byte[] { 0x1D, 0x6B, 0x45, 0x0C }).ToArray();      ////打印code128条码

            //result = result.Concat(Encoding.Default.GetBytes(PrintData.YBBQ.Trim())).ToArray();
            //result = result.Concat(new byte[] { 0x1B, 0x61, 0x00 }).ToArray();	//左对齐
            //result = result.Concat(new byte[] { 0x1B, 0x21, 0x00 }).ToArray();  // 还原默认字体大小,取消下划线,取消粗体模式
            //result = result.Concat(new byte[] { 0x1d, 0x21, 0x00 }).ToArray();    //设置不倍高
            //result = result.Concat(Encoding.Default.GetBytes("┏━━━━┳━━━━━━┳━━━━┳━━━━━┓\n")).ToArray();
            //result = result.Concat(Encoding.Default.GetBytes("┃送检单号┃"+ PrintData.SendQCReportId.PadRight(12) + "┃物料代码┃"+ PrintData.ProductShortName.PadRight(10) + "┃\n")).ToArray(); //.PadRight()
            //result = result.Concat(Encoding.Default.GetBytes("┣━━━━╋━━━━━━┻━━━━┻━━━━━┫\n")).ToArray();
            //result = result.Concat(Encoding.Default.GetBytes("┃物料描述┃" + PrintData.ProductDescribe.PadRight(30) + "┃\n")).ToArray();
            //result = result.Concat(Encoding.Default.GetBytes("┣━━━━╋━━━━━━┳━━━━┳━━━━━┫\n")).ToArray();
            //result = result.Concat(Encoding.Default.GetBytes("┃抽样方式┃"+ PrintData.CYFS.PadRight(12) + "┃检查水平┃"+PrintData.CYSP.PadRight(10) + "┃\n")).ToArray();
            //result = result.Concat(Encoding.Default.GetBytes("┣━━┳━┻━┳━━┳━┻━┳━━┻┳━━━━┫\n")).ToArray();
            //result = result.Concat(Encoding.Default.GetBytes("┃AQL1┃" + PrintData.AQL1.PadRight(6) + "┃AQL2┃" + PrintData.AQL2.PadRight(6) + "┃样本量┃" + PrintData.SampleSize.PadRight(6) + "┃\n")).ToArray();
            //result = result.Concat(Encoding.Default.GetBytes("┗━━┻━━━┻━━┻━━━┻━━━┻━━━━┛\n")).ToArray();

            //result = result.Concat(new byte[] { 0x1B, 0x61, 0x01 }).ToArray();    //设置居中
            //result = result.Concat(new byte[] { 0x1D, 0x21, 0x01 }).ToArray();  //设置倍高
            //result = result.Concat(Encoding.Default.GetBytes("送检日期:2011-05-17\n\n\n")).ToArray();
        }