public PrintLabel GetLabelFile(int eCommerceShipmentId, string LabelType)
        {
            PrintLabel file = new PrintLabel();

            file = new eCommerceShipmentRepository().GetLabelFile(eCommerceShipmentId, LabelType);
            return(file);
        }
        private void PrintCompetitor(PrintPageEventArgs ev,
                                     Structs.Competitor competitor, int serie,
                                     PrintLabel label)
        {
            Trace.WriteLine("Competitor: " + _competitors[_currentCompetitor].CompetitorId +
                            "\r\nSerie: " + _currentCompetitorSeries);

            var shooter = _commonCode.GetShooter(competitor.ShooterId);

            var y = label.Y + label.MarginalTop;
            var x = label.X + label.MarginalLeft;

            ev.Graphics.DrawString(
                shooter.Surname + " " + shooter.Givenname + " (" + shooter.CardNr + ")",
                _printFont, Brushes.Black,
                x, y, new StringFormat());
            y += _printFont.Height;

            ev.Graphics.DrawString(
                "Lag " + competitor.PatrolId + ", Serie " + (serie + 1),
                _printFont, Brushes.Black,
                x, y, new StringFormat());
            y += _printFont.Height;

            ev.Graphics.DrawString(
                _competition.Name + ", " + _competition.StartTime.ToShortDateString(),
                _printFont, Brushes.Black,
                x, y, new StringFormat());
            y += _printFont.Height;
        }
示例#3
0
        private void printTest04(PrintPageEventArgs ev)
        {
            PrintLabelDocument doc = CommonCode.Settings.PrinterSettings.LabelResultDocument;

            doc.DocumentSizeXPixels = ev.PageBounds.Width;
            doc.DocumentSizeYPixels = ev.PageBounds.Height;

            addTextLine(ev, "Test 4: Detta test visar hur WinShooter skriver ut resultatetiketter.");
            addTextLine(ev, "På papperet finns två rader med etiketter, fyra stycken på varje rad.");
            addTextLine(ev, "");
            addTextLine(ev, "Förutsättningen är att papperet är A4, dvs " +
                        doc.DocumentSizeXmm.ToString() + " mm x " + doc.DocumentSizeYmm.ToString() + " mm.");
            addTextLine(ev, "Varje etikett är " + doc.LabelXSizeMm.ToString() + " x " +
                        doc.LabelYSizeMm.ToString() + " mm.");
            addTextLine(ev, "Första etiketten börjar " + doc.LeftMarginMm + " mm in. " +
                        "Mellan varje etikett finns en marginal på " + doc.HorizontalInnerMarginMm + " i höjd.");

            int startLabel = 1 * doc.NrOfLabelsX;
            int endlabel   = doc.NrOfLabelsX * doc.NrOfLabelsY;

            for (int i = startLabel; i < endlabel; i++)
            {
                PrintLabel label = doc.GetLabel(i);
                printLabelBorders(ev, label);
                printCompetitor(ev, label, i - startLabel);
            }
        }
        private void printBtn_Click(object sender, EventArgs e)
        {
            String waybill_no                  = waybillNOTextBox.Text.Trim();
            String product_reg_code            = productRegCodeTextBox.Text.Trim();
            String endRegNo                    = endRegNoTextBox.Text.Trim();
            List <ProductRegInfo> productRegNo = WhApi.GetProductRegNo(waybill_no, product_reg_code, endRegNo);

            //打印商品登记号,每次打印两个
            if (productRegNo != null && productRegNo.Count > 0)
            {
                for (int i = 0; i < productRegNo.Count; i += 2)
                {
                    ProductRegInfo leftProductReg = productRegNo[i];
                    string         rightNum       = "";
                    string         rightComCode   = "";
                    string         leftNum        = leftProductReg.product_reg_code;
                    string         leftComCode    = leftProductReg.company_product_code;
                    if (i < productRegNo.Count - 1)
                    {
                        ProductRegInfo rightProductReg = productRegNo[i + 1];
                        rightComCode = productRegNo[i + 1].company_product_code;
                        rightNum     = productRegNo[i + 1].product_reg_code;
                    }
                    PrintLabel.ProductRegNoBarcodePrint(leftNum, rightNum, leftComCode, rightComCode);
                }
                PrintLabel.ProductRegNoBarcodePrint("", "", "", "");
            }
            MessageBox.Show("条码打印完成。");
            Init();
        }
示例#5
0
        public async Task <ActionResult> Save(PrintLabelViewModel model)
        {
            using (PrintLabelServiceClient client = new PrintLabelServiceClient())
            {
                PrintLabel obj = new PrintLabel()
                {
                    Key        = model.Code.ToUpper(),
                    Name       = model.Name.ToUpper(),
                    Content    = model.Content,
                    Type       = model.Type,
                    IsUsed     = model.IsUsed,
                    Editor     = User.Identity.Name,
                    EditTime   = DateTime.Now,
                    CreateTime = DateTime.Now,
                    Creator    = User.Identity.Name
                };
                MethodReturnResult rst = await client.AddAsync(obj);

                if (rst.Code == 0)
                {
                    rst.Message = string.Format(FMMResources.StringResource.PrintLabel_Save_Success
                                                , model.Name);
                }
                return(Json(rst));
            }
        }
        public PrintLabel GeneratePacakgelabel(int eCommerceShipmentId, int Id, string LabelType)
        {
            PrintLabel file = new PrintLabel();

            file = new eCommerceShipmentRepository().GeneratePacakgelabel(eCommerceShipmentId, Id, LabelType);

            return(file);
        }
示例#7
0
        private void printLabelBorders(PrintPageEventArgs ev,
                                       PrintLabel label)
        {
            Pen pen = new Pen(Brushes.Black, 1);

            ev.Graphics.DrawLine(pen, label.X, label.Y, label.X, label.Y + label.SizeY);
            ev.Graphics.DrawLine(pen, label.X, label.Y + label.SizeY, label.X + label.SizeX, label.Y + label.SizeY);

            ev.Graphics.DrawLine(pen, label.X + label.SizeX, label.Y + label.SizeY, label.X + label.SizeX, label.Y);
            ev.Graphics.DrawLine(pen, label.X + label.SizeX, label.Y, label.X, label.Y);
        }
示例#8
0
        private void PrintButton_Click(object sender, RoutedEventArgs e)
        {
            locationstr = null;
            StringBuilder sb = new StringBuilder();

            if (GroupCompany == null && GroupCompanyName == null)
            {
                sb.AppendLine("請輸入公司名稱!");
            }
            if (m_NTList.Count <= 0)
            {
                sb.AppendLine("沒有填寫內容!");
            }
            if (sb.Length > 0)
            {
                MessageBox.Show(sb.ToString(), "注意", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }
            if (GroupCompany != null)
            {
                companyStr = GroupCompany.Name;
                switch (locations)
                {
                case 0:
                    locationstr = "石牌";
                    break;

                case 1:
                    locationstr = "蘆洲";
                    break;

                case 2:
                    locationstr = "內湖";
                    break;
                }
            }
            else
            {
                companyStr = GroupCompanyName.Trim();
            }

            foreach (NTItem item in m_NTList)
            {
                PrintLabel pl = null;
                if (item.Number > 0)
                {
                    pl = new PrintLabel((short)item.Number, companyStr, locationstr, item);
                }
            }
            if ((bool)Result_Addone.IsChecked)
            {
                PrintLabel pl = new PrintLabel((short)1, companyStr, locationstr, null);
            }
        }
        //获取打印标签信息
        public PrintLabel GetLabel(string labelCode)
        {
            PrintLabel label = null;

            using (PrintLabelServiceClient client = new PrintLabelServiceClient())
            {
                MethodReturnResult <PrintLabel> result = client.Get(labelCode);
                if (result.Code <= 0)
                {
                    label = result.Data;
                }
            }
            return(label);
        }
        private void printBtn_Click(object sender, EventArgs e)
        {
            String        order_no     = orderNoTextBox.Text.Trim();
            String        product_code = productCodeTextBox.Text.Trim();
            List <String> productRegNo = WhApi.GetProductRegNo(order_no, product_code);

            //打印商品登记号,每次打印两个
            if (productRegNo != null && productRegNo.Count > 0)
            {
                for (int i = 0; i < productRegNo.Count; i += 2)
                {
                    string rightNum = "";
                    string leftNum  = productRegNo[i];
                    if (i < productRegNo.Count - 1)
                    {
                        rightNum = productRegNo[i + 1];
                    }
                    PrintLabel.BarcodePrint(leftNum, rightNum);
                }
            }
        }
示例#11
0
        private void printCompetitor(PrintPageEventArgs ev,
                                     PrintLabel label,
                                     int i)
        {
            Font  printFont = new Font("Times New Roman", 12);
            float y         = label.Y + label.MarginalTop;
            float x         = label.X + label.MarginalLeft;

            string shooterClass = "A" + i.ToString();

            ev.Graphics.DrawString(
                shooterClass,
                printFont, Brushes.Black,
                x, y, new StringFormat());

            float indent = ev.Graphics.MeasureString("RES", printFont).Width;

            x = x + indent;

            ev.Graphics.DrawString(
                "Skytt nr " + i.ToString(),
                printFont, Brushes.Black,
                x, y, new StringFormat());
            y += printFont.Height;

            ev.Graphics.DrawString(
                "PSK Test",
                printFont, Brushes.Black,
                x, y, new StringFormat());
            y += printFont.Height;

            string resultString = "6/12";

            ev.Graphics.DrawString(
                resultString,
                printFont, Brushes.Black,
                x, y, new StringFormat());

            y += printFont.Height;
        }
示例#12
0
        private static void PrintLabel(Fill selectedFill)
        {
            var printControl = new PrintLabel(selectedFill);
            printControl.Width = 8.27 * 96;
            printControl.Height = 11.69 * 96;

            //Create a fixed Document and Print the document
            FixedDocument fixedDoc = new FixedDocument();
            PageContent pageContent = new PageContent();
            FixedPage fixedPage = new FixedPage();
            fixedPage.Height = 11.69 * 96;
            fixedPage.Width = 8.27 * 96;

            fixedPage.Children.Add(printControl);
            ((System.Windows.Markup.IAddChild)pageContent).AddChild(fixedPage);
            fixedDoc.Pages.Add(pageContent);

            PrintDialog dialog = new PrintDialog();
            if (dialog.ShowDialog() == true)
            {
                //dialog.PrintVisual(_PrintCanvas, "My Canvas");
                dialog.PrintDocument(fixedDoc.DocumentPaginator, "Print label");
            }
        }
示例#13
0
 public Form1()
 {
     InitializeComponent();
     PrintDlegateFunc = new PrintLabel(PrintFunc);
 }
示例#14
0
        private void printCompetitor(PrintPageEventArgs ev,
                                     Structs.Competitor competitor,
                                     PrintLabel label)
        {
            Trace.WriteLine("Competitor: " + competitor.CompetitorId);

            ResultsReturn result = CommonCode.ResultsGetCompetitor(competitor);

            float y = label.Y + label.MarginalTop;
            float x = label.X + label.MarginalLeft;

            string shooterClass = getShooterClassString(
                CommonCode.GetCompetitor(result.CompetitorId));

            ev.Graphics.DrawString(
                shooterClass,
                printFont, Brushes.Black,
                x, y, new StringFormat());

            float indent = ev.Graphics.MeasureString("RES", printFont).Width;

            x = x + indent;

            ev.Graphics.DrawString(
                result.ShooterName,
                printFont, Brushes.Black,
                x, y, new StringFormat());
            y += printFont.Height;

            Structs.Club club = CommonCode.GetClub(
                result.ClubId);

            ev.Graphics.DrawString(
                club.Name,
                printFont, Brushes.Black,
                x, y, new StringFormat());
            y += printFont.Height;

            string resultString = "";

            switch (CommonCode.CompetitionCurrent.Type)
            {
            case Structs.CompetitionTypeEnum.Field:
                resultString = getResultStringField(result);
                break;

            case Structs.CompetitionTypeEnum.MagnumField:
                resultString = getResultStringField(result);
                break;

            case Structs.CompetitionTypeEnum.Precision:
                resultString = result.HitsTotal.ToString() + " p";
                break;
            }

            ev.Graphics.DrawString(
                resultString,
                printFont, Brushes.Black,
                x, y, new StringFormat());

            y += printFont.Height;
        }
示例#15
0
        public ActionResult Save(NameplatePrintViewModel model)
        {
            System.DateTime    dateStartTime;
            System.DateTime    dateEndTime;
            TimeSpan           tSpan;
            string             lotNumber = "";
            MethodReturnResult result    = new MethodReturnResult();

            try
            {
                dateStartTime = System.DateTime.Now;
                dateEndTime   = System.DateTime.Now;
                //获取批值。
                lotNumber = model.LotNumber.ToUpper();
                result    = GetLot(lotNumber);
                if (result.Code > 0)
                {
                    return(Json(result));
                }
                Lot obj = (result as MethodReturnResult <Lot>).Data;
                //获取打印机名称
                ClientConfig printer = null;
                if (!string.IsNullOrEmpty(model.PrinterName))
                {
                    using (ClientConfigServiceClient client = new ClientConfigServiceClient())
                    {
                        MethodReturnResult <ClientConfig> rst = client.Get(model.PrinterName);
                        if (rst.Code > 0)
                        {
                            return(Json(rst));
                        }
                        printer = rst.Data;
                    }
                }
                //获取打印条码内容
                PrintLabel label = null;
                if (!string.IsNullOrEmpty(model.PrintLabelCode))
                {
                    using (PrintLabelServiceClient client = new PrintLabelServiceClient())
                    {
                        MethodReturnResult <PrintLabel> rst = client.Get(model.PrintLabelCode);
                        if (rst.Code > 0)
                        {
                            return(Json(rst));
                        }
                        label = rst.Data;
                    }
                }
                //获取IV测试数据及其对应的分档数据。
                IVTestData ivtest = null;
                using (IVTestDataServiceClient client = new IVTestDataServiceClient())
                {
                    PagingConfig cfg = new PagingConfig()
                    {
                        IsPaging = false,
                        Where    = string.Format(@"Key.LotNumber='{0}' AND IsDefault=1"
                                                 , model.LotNumber),
                        OrderBy = "Key.TestTime Desc"
                    };
                    MethodReturnResult <IList <IVTestData> > rst = client.Get(ref cfg);
                    if (rst.Code > 0)
                    {
                        return(Json(rst));
                    }
                    if (rst.Data.Count <= 0)
                    {
                        LogHelper.WriteLogInfo(string.Format("GetIVDataError>{0}IV测试数据不存在。", model.LotNumber));
                        rst.Message = string.Format("{0} IV测试数据不存在。", model.LotNumber);
                        rst.Code    = 1000;
                        return(Json(rst));
                    }
                    ivtest = rst.Data[0];
                }
                //获取工单分档规则
                WorkOrderPowerset wop = null;
                using (WorkOrderPowersetServiceClient client = new WorkOrderPowersetServiceClient())
                {
                    MethodReturnResult <WorkOrderPowerset> rst = client.Get(new WorkOrderPowersetKey()
                    {
                        Code         = ivtest.PowersetCode,
                        ItemNo       = ivtest.PowersetItemNo ?? -1,
                        OrderNumber  = obj.OrderNumber,
                        MaterialCode = obj.MaterialCode
                    });
                    if (rst.Code > 0)
                    {
                        return(Json(rst));
                    }
                    wop = rst.Data;
                }

                //根据物料编码获取物料数据,进一步获取产品类型。
                Material material = null;
                using (MaterialServiceClient client = new MaterialServiceClient())
                {
                    MethodReturnResult <Material> rst = client.Get(obj.MaterialCode);
                    if (rst.Code > 0)
                    {
                        return(Json(rst));
                    }
                    material = rst.Data;
                }

                #region //检查打印铭牌的LOG日志
                using (IVTestDataPrintLogServiceClient client = new IVTestDataPrintLogServiceClient())
                {
                    int itemNo = 1;
                    if (model.IsRepeatPrint == false)
                    {
                        MethodReturnResult <IVTestDataPrintLog> rst = client.Get(new IVTestDataPrintLogKey()
                        {
                            LotNumber     = ivtest.Key.LotNumber,
                            EquipmentCode = ivtest.Key.EquipmentCode,
                            TestTime      = ivtest.Key.TestTime,
                            ItemNo        = itemNo
                        });
                        if (rst.Code == 0 && rst.Data != null)
                        {
                            //表示重复打印过
                            result = new MethodReturnResult()
                            {
                                Code    = 1001,
                                Message = string.Format("批次({0})已打印铭牌。", ivtest.Key.LotNumber)
                            };
                            return(Json(result));
                        }
                    }
                }
                #endregion //End 检查打印铭牌的LOG日志

                bool bSuccess = true;
                //打印动态内容。
                if (printer != null && label != null)
                {
                    //获取工单打印规则
                    WorkOrderPrintSet woprint = null;
                    using (WorkOrderPrintSetServiceClient client = new WorkOrderPrintSetServiceClient())
                    {
                        MethodReturnResult <WorkOrderPrintSet> rst = client.Get(new WorkOrderPrintSetKey()
                        {
                            OrderNumber  = obj.OrderNumber,
                            MaterialCode = obj.MaterialCode,
                            LabelCode    = model.PrintLabelCode
                        });
                        if (rst.Code > 0)
                        {
                            return(Json(rst));
                        }
                        woprint = rst.Data;
                    }

                    dynamic d = new ExpandoObject();
                    d.PrintQty        = woprint.Qty;
                    d.LotNumber       = lotNumber;
                    d.PM              = ivtest.CoefPM;
                    d.ISC             = ivtest.CoefISC;
                    d.VOC             = ivtest.CoefVOC;
                    d.IPM             = ivtest.CoefIPM;
                    d.VPM             = ivtest.CoefVPM;
                    d.FF              = ivtest.CoefFF;
                    d.StandardPower   = string.Format("{0:0.0}", wop.StandardPower);
                    d.StandardFuse    = wop.StandardFuse;
                    d.StandardIsc     = wop.StandardIsc;
                    d.StandardVoc     = wop.StandardVoc;
                    d.StandardVPM     = wop.StandardVPM;
                    d.StandardIPM     = wop.StandardIPM;
                    d.PowerName       = wop.PowerName;
                    d.PowerDifference = wop.PowerDifference;
                    d.ProductType     = string.Format("JNM{1}{2}-{0}"
                                                      , wop == null ? string.Empty : Convert.ToString(wop.StandardPower)
                                                      , material.Key.StartsWith("1201") ? "M" : "P"
                                                      , material.MainRawQtyPerLot);
                    d.ProductSpec = material.Spec.Replace("*", "x");

                    dateEndTime   = System.DateTime.Now;
                    tSpan         = dateEndTime - dateStartTime;
                    dateStartTime = dateEndTime;

                    LogHelper.WriteLogInfo(string.Format(@"BeforePrintLabel{3}>从{0:yyyy-MM-dd HH:mm:ss} 到 {1:yyyy-MM-dd HH:mm:ss} ,时间间隔{2}",
                                                         dateStartTime.ToString(), dateEndTime.ToString(), tSpan.TotalMilliseconds, lotNumber
                                                         )
                                           );

                    //根据打印机类型,调用不同的打印方法。
                    using (IPrintHelper helper = PrintHelperFactory.CreatePrintHelper(label.Content))
                    {
                        if (printer.ClientType == EnumClientType.NetworkPrinter)
                        {
                            string[] vals = printer.IPAddress.Split(':');
                            string   port = "9100";
                            if (vals.Length > 1)
                            {
                                port = vals[1];
                            }
                            bSuccess = helper.NetworkPrint(vals[0], port, label.Content, d);
                        }
                        else if (printer.ClientType == EnumClientType.RawPrinter)
                        {
                            bSuccess = helper.RAWPrint(printer.IPAddress, label.Content, d);
                        }
                        else
                        {
                            bSuccess       = false;
                            result.Code    = 1001;
                            result.Message = "打印失败,打印机类型不正确。";
                            return(Json(result));
                        }
                    }

                    if (bSuccess)
                    {
                        #region //Add Print Log
                        using (IVTestDataPrintLogServiceClient client = new IVTestDataPrintLogServiceClient())
                        {
                            int itemNo = 1;
                            IVTestDataPrintLog ivdpl = new IVTestDataPrintLog()
                            {
                                CoefFF          = ivtest.CoefFF,
                                CoefIPM         = ivtest.CoefIPM,
                                CoefISC         = ivtest.CoefISC,
                                CoefPM          = ivtest.CoefPM,
                                CoefVOC         = ivtest.CoefVOC,
                                CoefVPM         = ivtest.CoefVPM,
                                CreateTime      = DateTime.Now,
                                Creator         = User.Identity.Name,
                                CTM             = ivtest.CTM,
                                LabelCode       = model.PrintLabelCode,
                                PowersetCode    = ivtest.PowersetCode,
                                PowersetItemNo  = ivtest.PowersetItemNo.Value,
                                PowersetSubCode = ivtest.PowersetSubCode,
                                PrintTime       = DateTime.Now,
                                Key             = new IVTestDataPrintLogKey()
                                {
                                    LotNumber     = ivtest.Key.LotNumber,
                                    EquipmentCode = ivtest.Key.EquipmentCode,
                                    TestTime      = ivtest.Key.TestTime,
                                    ItemNo        = itemNo
                                }
                            };
                            client.Add(ivdpl);
                        }
                        #endregion
                    }
                }
                else
                {
                    bSuccess = false;
                }

                //返回打印结果。
                StringBuilder sbMessage = new StringBuilder();
                if (bSuccess == false)
                {
                    result.Code = 1001;
                    sbMessage.AppendFormat("批次 {0} 打印操作失败。<br/>", model.LotNumber);
                }
                else
                {
                    sbMessage.AppendFormat("批次 {0} 打印操作成功。<br/>", model.LotNumber);
                }
                sbMessage.Append("<table border='1px' width='100%'><tr><td>");
                sbMessage.AppendFormat("<font size='14px' color='red'>档位:{0}</font>", wop.PowerName);
                sbMessage.Append("</td><td>");
                sbMessage.AppendFormat("<font size='14px' color='red'>子档位:{0}</font>  ", ivtest.PowersetSubCode);
                sbMessage.AppendFormat("<img src='/ZPVM/WorkOrderPowersetDetail/ShowPicture?OrderNumber={0}&MaterialCode={1}&Code={2}&ItemNo={3}&SubCode={4}&TimeStamp={5}' width='150px'/>"
                                       , obj.OrderNumber
                                       , obj.MaterialCode
                                       , ivtest.PowersetCode
                                       , ivtest.PowersetItemNo
                                       , ivtest.PowersetSubCode
                                       , DateTime.Now.Ticks);
                sbMessage.Append("</td><td>");
                sbMessage.AppendFormat("<font size='14px' color='blue'>花色:{0}</font><br/>", obj.Color);
                sbMessage.Append("</td><td>");
                sbMessage.AppendFormat("<br/><font size='14px' color='blue'>等级:{0}</font><br/>", obj.Grade);
                sbMessage.Append("</td><tr></table>");

                sbMessage.AppendFormat("<font size='10px' color='blue'>功率:{0}</font><br/>", ivtest.CoefPM);
                sbMessage.AppendFormat("<font size='10px' color='blue'>ISC:{0}</font><br/>", ivtest.CoefISC);
                sbMessage.AppendFormat("<font size='10px' color='blue'>IPM:{0}</font><br/>", ivtest.CoefIPM);
                sbMessage.AppendFormat("<font size='10px' color='blue'>VOC:{0}</font><br/>", ivtest.CoefVOC);
                sbMessage.AppendFormat("<font size='10px' color='blue'>VPM:{0}</font><br/>", ivtest.CoefVPM);
                result.Message = sbMessage.ToString();
            }
            catch (Exception ex)
            {
                LogHelper.WriteLogError(string.Format(@"PrintLabel{0}失败", lotNumber), ex);
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(Json(result));
        }
        //在线打印
        private Boolean OnlineLogic()
        {
            var    product_order_no = numTextBox.Text.Trim();
            string jpExpSecId       = null;
            string expressCompany   = null;
            string store            = null;
            //获取订单详情
            var orderInfo = WhApi.PostOrderInfos(product_order_no);
            var pacIndex  = 0;

            //不能打印出库状态的订单
            if (orderInfo.delivery_state.Equals("24"))
            {
                MessageBox.Show("打印出库失败。(订单状态错误)");
                InitControl();
                return(false);
            }
            if (orderInfo.IsNull())
            {
                InitControl();
            }
            else if (orderInfo.products.IsNull() || orderInfo.products.Count == 0)
            {
                MessageBox.Show("没查询到订单的商品信息。");
            }
            else
            {
                //判断是否有日本号,如果有直接打印,如果没有先分配日本号再打印
                if (orderInfo.jp_express_no.IsNullOrEmpty())
                {
                    //判断是否有默认快递公司
                    if (orderInfo.jp_express_section_id.IsNullOrEmpty() || orderInfo.products.Count > 1)
                    {
                        if (jpExpSecId.IsNullOrEmpty() && expressDataGrid.SelectedRows.Count == 0)
                        {
                            MessageBox.Show("请选择快递公司再进行操作。");
                            return(false);
                        }
                        else
                        {
                            if (expressDataGrid.SelectedRows.Count != 0)
                            {
                                jpExpSecId     = expressDataGrid.SelectedRows[0].Cells[0].Value.ToString();
                                store          = expressDataGrid.SelectedRows[0].Cells[3].Value.ToString();
                                expressCompany = expressDataGrid.SelectedRows[0].Cells[1].Value.ToString();
                            }
                            if (WhApi.DistributionJpNo(product_order_no, jpExpSecId))
                            {
                                orderInfo = WhApi.PostOrderInfos(product_order_no);
                            }
                        }
                    }
                    else
                    {
                        if (WhApi.DistributionJpNo(product_order_no, orderInfo.jp_express_section_id))
                        {
                            orderInfo      = WhApi.PostOrderInfos(product_order_no);
                            expressCompany = orderInfo.jp_express_company;
                            store          = orderInfo.city_code;
                        }
                    }
                }
                else
                {
                    store          = orderInfo.city_code;
                    expressCompany = orderInfo.jp_express_company;
                }
                for (int c = 0; c < orderInfo.products.Count; c++)
                {
                    if (orderInfo.products[c].check_flag.Equals("N"))
                    {
                        MessageBox.Show("商品[" + orderInfo.products[c].product_code + "],未审查派送公司。操作失败!");
                        return(false);
                    }
                }
                //添加额外信息
                AddExtraInfo(orderInfo, store);
                switch (expressCompany)
                {
                case "SAGAWA":
                    PrintLabel.OWHSagawaLablePrint(orderInfo, pacIndex);
                    break;

                case "JP_EMS":
                    PrintLabel.JapanEmsPrint(orderInfo, pacIndex);
                    break;

                case "JP_EMS_SMALL":
                    PrintLabel.JapanEmsSmallPrint(orderInfo, pacIndex);
                    break;

                case "SAGAWA_HIKIYAKU":
                    PrintLabel.SagawaHikiyakuPrint(orderInfo, pacIndex);
                    break;

                case "YAMATO":
                    PrintLabel.YamatoLablePrint(orderInfo, pacIndex);
                    break;
                }
            }
            return(true);
        }
示例#17
0
        public ActionResult Save(BoxPrintViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            try
            {
                model.BoxNo1 = model.BoxNo1 != null?model.BoxNo1.Trim().ToUpper() : model.BoxNo1;

                model.BoxNo = model.BoxNo != null?model.BoxNo.Trim().ToUpper() : model.BoxNo;

                //获取包装数据。
                result = GetBox(model);
                if (result.Code > 0)
                {
                    return(Json(result));
                }
                //获取打印机名称
                ClientConfig printer = null;
                using (ClientConfigServiceClient client = new ClientConfigServiceClient())
                {
                    MethodReturnResult <ClientConfig> rst = client.Get(model.PrinterName);
                    if (rst.Code > 0)
                    {
                        return(Json(rst));
                    }
                    printer = rst.Data;
                }
                //获取打印条码内容
                PrintLabel label = null;
                using (PrintLabelServiceClient client = new PrintLabelServiceClient())
                {
                    MethodReturnResult <PrintLabel> rst = client.Get(model.PrintLabelCode);
                    if (rst.Code > 0)
                    {
                        return(Json(rst));
                    }
                    label = rst.Data;
                }
                IList <Package> lst = (result as MethodReturnResult <IList <Package> >).Data;
                //打印动态内容。
                dynamic d = new ExpandoObject();
                d.PrintQty = model.PrintQty;
                bool bSuccess = false;
                //根据打印机类型,调用不同的打印方法。
                using (IPrintHelper helper = PrintHelperFactory.CreatePrintHelper(label.Content))
                {
                    if (printer.ClientType == EnumClientType.NetworkPrinter)
                    {
                        string[] vals = printer.IPAddress.Split(':');
                        string   port = "9100";
                        if (vals.Length > 1)
                        {
                            port = vals[1];
                        }
                        foreach (Package obj in lst)
                        {
                            if (SetPrintObject(obj, ref d) == false)
                            {
                                continue;
                            }
                            bSuccess = helper.NetworkPrint(vals[0], port, label.Content, d);
                        }
                    }
                    else if (printer.ClientType == EnumClientType.RawPrinter)
                    {
                        foreach (Package obj in lst)
                        {
                            if (SetPrintObject(obj, ref d) == false)
                            {
                                continue;
                            }
                            bSuccess = helper.RAWPrint(printer.IPAddress, label.Content, d);
                        }
                    }
                    else
                    {
                        result.Code    = 1001;
                        result.Message = "打印失败,打印机类型不正确。";
                        return(Json(result));
                    }
                }
                //返回打印结果。
                if (bSuccess == false)
                {
                    result.Code    = 1001;
                    result.Message = string.Format("电池箱 {0}-{1} 标签打印失败。", model.BoxNo, model.BoxNo1);
                }
                else
                {
                    result.Message = string.Format("电池箱 {0}-{1} 标签打印操作成功。", model.BoxNo, model.BoxNo1);
                }
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(Json(result));
        }
示例#18
0
        /// <summary>
        /// Update
        /// </summary>
        public override void update()
        {
            CswNbtMetaDataObjectClass     PrintLabelOc   = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswNbtMetaDataObjectClass.NbtObjectClass.PrintLabelClass);
            CswNbtMetaDataObjectClassProp ControlTypeOcp = _CswNbtSchemaModTrnsctn.createObjectClassProp(new CswNbtWcfMetaDataModel.ObjectClassProp(PrintLabelOc)
            {
                PropName    = CswNbtObjClassPrintLabel.PropertyName.ControlType,
                FieldType   = CswNbtMetaDataFieldType.NbtFieldType.List,
                ListOptions = CswNbtObjClassPrintLabel.ControlTypes.Options.ToString(),
                IsRequired  = true
            });

            _CswNbtSchemaModTrnsctn.MetaData.SetObjectClassPropDefaultValue(ControlTypeOcp, ControlTypeOcp.getFieldTypeRule().SubFields.Default.Name, CswNbtObjClassPrintLabel.ControlTypes.jZebra);

            foreach (CswNbtObjClassPrintLabel PrintLabel in PrintLabelOc.getNodes(forceReInit: true, includeSystemNodes: false))
            {
                if (null != PrintLabel)
                {
                    PrintLabel.ControlType.Value = CswNbtObjClassPrintLabel.ControlTypes.jZebra;
                    PrintLabel.postChanges(ForceUpdate: false);
                }
            }

            _CswNbtSchemaModTrnsctn.MetaData.SetObjectClassPropDefaultValue(ControlTypeOcp, ControlTypeOcp.getFieldTypeRule().SubFields.Default.Name, CswNbtObjClassPrintLabel.ControlTypes.jZebra);

            _CswNbtSchemaModTrnsctn.createObjectClassProp(new CswNbtWcfMetaDataModel.ObjectClassProp(PrintLabelOc)
            {
                PropName    = CswNbtObjClassPrintLabel.PropertyName.LabelName,
                FieldType   = CswNbtMetaDataFieldType.NbtFieldType.Text,
                SetValOnAdd = true
            });

            foreach (CswNbtObjClassPrintLabel PrintLabel in PrintLabelOc.getNodes(forceReInit: true, includeSystemNodes: false))
            {
                if (null != PrintLabel)
                {
                    PrintLabel.ControlType.Value = CswNbtObjClassPrintLabel.ControlTypes.jZebra;
                }
            }

            CswNbtMetaDataNodeType PrintLabelNt = PrintLabelOc.getLatestVersionNodeTypes().FirstOrDefault();

            if (null != PrintLabelNt)
            {
                CswNbtObjClassPrintLabel PrintLabel = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId(PrintLabelNt.NodeTypeId, CswNbtNodeCollection.MakeNodeOperation.WriteNode, OverrideUniqueValidation: false);
                if (null != PrintLabel)
                {
                    PrintLabel.ControlType.Value = CswNbtObjClassPrintLabel.ControlTypes.jZebra;
                    //Whitespace is treated literally
                    PrintLabel.EplText.Text = @"I8,1,001
q664
S2
OD
JF
WN
D7
ZB
Q300,37
N
B41,85,0,3,3,8,50,N,""{Barcode}""
A41,140,0,3,1,1,N,""{Barcode}""
P1";
                    try
                    {
                        PrintLabel.LabelName.Text = "Default Barcode Label";
                    }
                    catch (Exception Ex)
                    {
                        CswNbtMetaDataNodeTypeProp LabelNameNtp = PrintLabelNt.getNodeTypeProp("Label Name");
                        if (null != LabelNameNtp)
                        {
                            PrintLabel.Node.Properties[LabelNameNtp].AsText.Text = "Default Barcode Label";
                        }
                    }
                    CswNbtMetaDataObjectClass ContainerOc = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswNbtMetaDataObjectClass.NbtObjectClass.ContainerClass);
                    foreach (Int32 ContainerId in ContainerOc.getNodeTypeIds())
                    {
                        PrintLabel.NodeTypes.SelectedNodeTypeIds.Add(ContainerId.ToString());
                    }
                    PrintLabel.postChanges(ForceUpdate: false);
                }
            }
        } //Update()
示例#19
0
        // Sub procedure: Print barcode, by generating a text file in shared folder and let another application print it
        private void printBarcode(string dir, string id, string m_model, DataGridView dgv1, ref DataGridView dgv2, ref TextBox txt)
        {
            PrintLabel tf = new PrintLabel();

            tf.createBoxidFiles(dir, id, m_model, dgv1, ref dgv2, ref txt);
        }
示例#20
0
        private MethodReturnResult PrintPrivate(BoxViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            //不需要进行标签打印。
            if (model.PrintQty <= 0 ||
                string.IsNullOrEmpty(model.PrinterName) ||
                string.IsNullOrEmpty(model.PrintLabelCode))
            {
                return(result);
            }
            //获取打印机名称
            ClientConfig printer = null;

            using (ClientConfigServiceClient client = new ClientConfigServiceClient())
            {
                MethodReturnResult <ClientConfig> rst = client.Get(model.PrinterName);
                if (rst.Code > 0)
                {
                    return(rst);
                }
                printer = rst.Data;
            }
            //获取打印条码内容
            PrintLabel label = null;

            using (PrintLabelServiceClient client = new PrintLabelServiceClient())
            {
                MethodReturnResult <PrintLabel> rst = client.Get(model.PrintLabelCode);
                if (rst.Code > 0)
                {
                    return(rst);
                }
                label = rst.Data;
            }
            //获取箱数据
            Package box = new Package();

            using (PackageQueryServiceClient client = new PackageQueryServiceClient())
            {
                MethodReturnResult <Package> rst = client.Get(model.BoxNo);
                if (rst.Code <= 0 && rst.Data != null)
                {
                    box = rst.Data;
                }
                else
                {
                    result = rst;
                    if (result.Code == 1002)
                    {
                        result.Message = string.Format("箱 {0} 数据不存在。", model.BoxNo);
                    }
                    return(result);
                }
            }
            if (box.Quantity <= 0)
            {
                result.Code    = 2001;
                result.Message = string.Format("箱 {0} 中数量为零,请确认。", model.BoxNo);
                return(result);
            }
            //获取箱第一包的数据
            string      packageNo = string.Empty;
            PackageInfo obj       = new PackageInfo();

            using (PackageQueryServiceClient client = new PackageQueryServiceClient())
            {
                PagingConfig cfg = new PagingConfig()
                {
                    PageNo   = 0,
                    PageSize = 1,
                    Where    = string.Format("Key.PackageNo='{0}' AND Key.ObjectType='{1}'"
                                             , model.BoxNo
                                             , Convert.ToInt32(EnumPackageObjectType.Packet)),
                    OrderBy = "ItemNo"
                };
                MethodReturnResult <IList <PackageDetail> > rst = client.GetDetail(ref cfg);
                if (rst.Code <= 0 && rst.Data != null && rst.Data.Count > 0)
                {
                    packageNo = rst.Data[0].Key.ObjectNumber;
                }
            }
            if (!string.IsNullOrEmpty(packageNo))
            {
                using (PackageInfoServiceClient client = new PackageInfoServiceClient())
                {
                    MethodReturnResult <PackageInfo> rst = client.Get(packageNo);
                    if (rst.Code <= 0 && rst.Data != null)
                    {
                        obj = rst.Data;
                    }
                    else
                    {
                        result = rst;
                        return(result);
                    }
                }
            }
            //根据打印数量设置打印机模板。
            using (IPrintHelper helper = PrintHelperFactory.CreatePrintHelper(label.Content))
            {
                //打印动态内容。
                dynamic d = new ExpandoObject();
                d.CartonNo = model.BoxNo.ToUpper();
                d.Color    = obj.Color;
                d.Date     = box.CreateTime.Value.ToString("yyyy.MM.dd");
                d.Eff      = obj.EfficiencyName;
                d.Grade    = obj.Grade;
                d.PartNo   = obj.ConfigCode;
                d.PNType   = obj.PNType;
                d.ProdID   = obj.ProductId;
                d.Qty      = string.Format("{0}PCS", box.Quantity);
                d.PrintQty = model.PrintQty;
                bool bSuccess = false;
                //根据打印机类型,调用不同的打印方法。
                if (printer.ClientType == EnumClientType.NetworkPrinter)
                {
                    string[] vals = printer.IPAddress.Split(':');
                    string   port = "9100";
                    if (vals.Length > 1)
                    {
                        port = vals[1];
                    }
                    bSuccess = helper.NetworkPrint(vals[0], port, label.Content, d);
                }
                else if (printer.ClientType == EnumClientType.RawPrinter)
                {
                    bSuccess = helper.RAWPrint(printer.IPAddress, label.Content, d);
                }
                else
                {
                    result.Code    = 1001;
                    result.Message = "打印失败,打印机类型不正确。";
                    return(result);
                }
                //返回打印结果。
                if (bSuccess == false)
                {
                    result.Code    = 1001;
                    result.Message = "箱标签打印失败。";
                    return(result);
                }
            }
            return(result);
        }
 public void When([FromBody] PrintLabel cmd)
 {
     appService.When(cmd);
 }
        private MethodReturnResult PrintPrivate(LotCreateDetailViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            //不需要进行标签打印。
            if (model.PrintQty <= 0 ||
                string.IsNullOrEmpty(model.PrinterName) ||
                string.IsNullOrEmpty(model.PrintLabelCode))
            {
                return(result);
            }

            char splitChar = ',';

            //获取批次号值。
            string[] lotNumbers = Request["LotNumber"].ToUpper().Split(splitChar);

            //获取打印机名称
            ClientConfig printer = null;

            using (ClientConfigServiceClient client = new ClientConfigServiceClient())
            {
                MethodReturnResult <ClientConfig> rst = client.Get(model.PrinterName);
                if (rst.Code > 0)
                {
                    return(rst);
                }
                printer = rst.Data;
            }
            //获取打印条码内容
            PrintLabel label = null;

            using (PrintLabelServiceClient client = new PrintLabelServiceClient())
            {
                MethodReturnResult <PrintLabel> rst = client.Get(model.PrintLabelCode);
                if (rst.Code > 0)
                {
                    return(rst);
                }
                label = rst.Data;
            }
            //根据打印数量设置打印机模板。
            using (IPrintHelper helper = PrintHelperFactory.CreatePrintHelper(label.Content))
            {
                foreach (string lotNumber in lotNumbers)
                {
                    //打印动态内容。
                    dynamic d = new ExpandoObject();
                    d.LotNumber = lotNumber;
                    d.PrintQty  = model.PrintQty;
                    bool bSuccess = false;
                    //根据打印机类型,调用不同的打印方法。
                    if (printer.ClientType == EnumClientType.NetworkPrinter)
                    {
                        string[] vals = printer.IPAddress.Split(':');
                        string   port = "9100";
                        if (vals.Length > 1)
                        {
                            port = vals[1];
                        }
                        bSuccess = helper.NetworkPrint(vals[0], port, label.Content, d);
                    }
                    else if (printer.ClientType == EnumClientType.RawPrinter)
                    {
                        bSuccess = helper.RAWPrint(printer.IPAddress, label.Content, d);
                    }
                    else
                    {
                        result.Code    = 1001;
                        result.Message = "打印失败,打印机类型不正确。";
                        return(result);
                    }
                    //返回打印结果。
                    if (bSuccess == false)
                    {
                        result.Code    = 1001;
                        result.Message = "批次标签打印失败。";
                        return(result);
                    }
                }
            }
            return(result);
        }
        //打印标签
        private void OnlineLogic()
        {
            //更新当前包裹号对应包裹信息
            var    waybillNo       = numTextBox.Text.Trim();
            string jpExpSecId      = null;
            string excludePackaged = "N";
            string expressCompany  = null;
            string store           = null;
            var    packageInfo     = new PackageInfo();

            if (printLabelCheckBox.Checked && expressDataGrid.RowCount > 0 && expressDataGrid.SelectedRows[0] != null)
            {
                jpExpSecId     = expressDataGrid.SelectedRows[0].Cells[0].Value.ToString();
                expressCompany = expressDataGrid.SelectedRows[0].Cells[1].Value.ToString();
                store          = expressDataGrid.SelectedRows[0].Cells[3].Value.ToString();
            }
            if (packageCheckBox.Checked)
            {
                packageInfo.waybill_id     = waybillNo;
                packageInfo.package_id     = "1";
                packageInfo.package_size_l = lengthTextBox.Text;
                packageInfo.package_size_w = widthTextBox.Text;
                packageInfo.package_size_h = heightTextBox.Text;
                if (weightTextBox.Text.IsNullOrEmpty())
                {
                    MessageBox.Show("包裹尚未称重!");
                    InitControl();
                    return;
                }
                packageInfo.package_weight = weightTextBox.Text;
            }
            else
            {
                packageInfo = null;
            }
            //更新包裹数据,获取运单信息
            var waybillInfo = SxApi.PostWaybillInfos(waybillNo, packageInfo, jpExpSecId, excludePackaged);

            if (waybillInfo.IsNull() || waybillInfo.packages.IsNull())
            {
                MessageBox.Show("未查询到包裹信息!");
                InitControl();
                return;
            }
            //显示packages详情
            packagesDataGrid.DataSource = waybillInfo.packages;
            if (printLabelCheckBox.Checked)
            {
                AddExtraInfo(waybillInfo, store);
                for (var pacIndex = 0; pacIndex < waybillInfo.packages.Count; pacIndex++)
                {
                    switch (expressCompany)
                    {
                    case "SAGAWA":
                        PrintLabel.SagawaLablePrint(waybillInfo, pacIndex);
                        break;

                    case "JP_EMS":
                        PrintLabel.JapanEmsPrint(waybillInfo, pacIndex);
                        break;

                    case "JP_EMS_SMALL":
                        PrintLabel.JapanEmsSmallPrint(waybillInfo, pacIndex);
                        break;

                    case "SAGAWA_HIKIYAKU":
                        PrintLabel.SagawaHikiyakuPrint(waybillInfo, pacIndex);
                        break;

                    case "YAMATO":
                        PrintLabel.YamatoLablePrint(waybillInfo, pacIndex);
                        break;

                    case "SAGAWA_BBC":
                        PrintLabel.SagawaBBCLablePrint(waybillInfo, pacIndex);
                        break;

                    case "SAGAWA_SUK":
                        PrintLabel.SagawaSUKLablePrint(waybillInfo, pacIndex);
                        break;
                    }
                    packagesDataGrid.Rows[pacIndex].Selected = true;
                    packagesDataGrid.Refresh();
                }
            }
            //初始化控件,跳转焦点
            InitControl();
        }
示例#24
0
        public ActionResult Save(LotPrintViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            try
            {
                //获取批值。
                result = GetLot(model);
                if (result.Code > 0)
                {
                    return(Json(result));
                }
                //获取打印机名称
                ClientConfig printer = null;
                using (ClientConfigServiceClient client = new ClientConfigServiceClient())
                {
                    MethodReturnResult <ClientConfig> rst = client.Get(model.PrinterName);
                    if (rst.Code > 0)
                    {
                        return(Json(rst));
                    }
                    printer = rst.Data;
                }
                //获取打印条码内容
                PrintLabel label = null;
                using (PrintLabelServiceClient client = new PrintLabelServiceClient())
                {
                    MethodReturnResult <PrintLabel> rst = client.Get(model.PrintLabelCode);
                    if (rst.Code > 0)
                    {
                        return(Json(rst));
                    }
                    label = rst.Data;
                }

                IList <Lot> lst = (result as MethodReturnResult <IList <Lot> >).Data;
                //打印动态内容。
                dynamic d = new ExpandoObject();
                d.PrintQty = model.PrintQty;
                bool     bSuccess   = false;
                DateTime PrintStart = DateTime.Now;

                using (IPrintHelper helper = PrintHelperFactory.CreatePrintHelper(label.Content))
                {
                    //根据打印机类型,调用不同的打印方法。
                    if (printer.ClientType == EnumClientType.NetworkPrinter)
                    {
                        string[] vals = printer.IPAddress.Split(':');
                        string   port = "9100";

                        if (vals.Length > 1)
                        {
                            port = vals[1];
                        }

                        foreach (Lot obj in lst)
                        {
                            PrintStart = DateTime.Now;          //打印开始时间

                            d.LotNumber = obj.Key.ToString().ToUpper().Trim();
                            bSuccess    = helper.NetworkPrint(vals[0], port, label.Content, d);

                            //打印日志
                            using (PrintLogServiceClient client = new PrintLogServiceClient())
                            {
                                PrintLog logobj = new PrintLog()
                                {
                                    LotNumber      = obj.Key,                             //批次号
                                    ClientName     = Request.UserHostAddress,             //客户端
                                    PrintQty       = model.PrintQty,                      //打印数量
                                    PrintLabelCode = model.PrintLabelCode,                //打印标签代码
                                    PrinterName    = model.PrinterName,                   //打印机名称
                                    PrintType      = printer.ClientType.GetDisplayName(), //打印机类型
                                    IsSucceed      = true,                                //打印是否成功
                                    PrintData      = "",                                  //打印数据
                                    Creator        = User.Identity.Name,                  //创建人
                                    CreateTime     = PrintStart,                          //创建日期
                                    FinishTime     = DateTime.Now                         //编辑日期
                                };

                                result = client.Add(logobj);

                                if (result.Code > 0)
                                {
                                    return(Json(result));
                                }
                            }
                        }
                    }
                    else if (printer.ClientType == EnumClientType.RawPrinter)
                    {
                        foreach (Lot obj in lst)
                        {
                            PrintStart = DateTime.Now;          //打印开始时间

                            d.LotNumber = obj.Key;
                            bSuccess    = helper.RAWPrint(printer.IPAddress, label.Content, d);

                            //打印日志
                            using (PrintLogServiceClient client = new PrintLogServiceClient())
                            {
                                PrintLog logobj = new PrintLog()
                                {
                                    LotNumber      = obj.Key.ToString().ToUpper().Trim(), //批次号
                                    ClientName     = Request.UserHostAddress,             //客户端
                                    PrintQty       = model.PrintQty,                      //打印数量
                                    PrintLabelCode = model.PrintLabelCode,                //打印标签代码
                                    PrinterName    = model.PrinterName,                   //打印机名称
                                    PrintType      = printer.ClientType.GetDisplayName(), //打印机类型
                                    IsSucceed      = true,                                //打印是否成功
                                    PrintData      = "",                                  //打印数据
                                    Creator        = User.Identity.Name,                  //创建人
                                    CreateTime     = PrintStart,                          //创建日期
                                    FinishTime     = DateTime.Now                         //编辑日期
                                };

                                result = client.Add(logobj);

                                if (result.Code > 0)
                                {
                                    return(Json(result));
                                }
                            }
                        }
                    }
                    else
                    {
                        result.Code    = 1001;
                        result.Message = "打印失败,打印机类型不正确。";
                        return(Json(result));
                    }
                }

                //返回打印结果。
                if (bSuccess == false)
                {
                    result.Code    = 1001;
                    result.Message = string.Format("批次 {0} - {1} 打印失败。", model.LotNumber, model.LotNumber1);
                }
                else
                {
                    result.Message = string.Format("批次 {0} - {1} 打印操作成功。", model.LotNumber, model.LotNumber1);
                }
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(Json(result));
        }
示例#25
0
        public ActionResult Save(LotPrintViewModel model)
        {
            MethodReturnResult result = new MethodReturnResult();

            try
            {
                //获取批值。
                result = GetLot(model);
                if (result.Code > 0)
                {
                    return(Json(result));
                }
                //获取打印机名称
                ClientConfig printer = null;
                using (ClientConfigServiceClient client = new ClientConfigServiceClient())
                {
                    MethodReturnResult <ClientConfig> rst = client.Get(model.PrinterName);
                    if (rst.Code > 0)
                    {
                        return(Json(rst));
                    }
                    printer = rst.Data;
                }
                //获取打印条码内容
                PrintLabel label = null;
                using (PrintLabelServiceClient client = new PrintLabelServiceClient())
                {
                    MethodReturnResult <PrintLabel> rst = client.Get(model.PrintLabelCode);
                    if (rst.Code > 0)
                    {
                        return(Json(rst));
                    }
                    label = rst.Data;
                }

                IList <Lot> lst = (result as MethodReturnResult <IList <Lot> >).Data;
                //打印动态内容。
                dynamic d = new ExpandoObject();
                d.PrintQty = model.PrintQty;
                bool bSuccess = false;
                using (IPrintHelper helper = PrintHelperFactory.CreatePrintHelper(label.Content))
                {
                    //根据打印机类型,调用不同的打印方法。
                    if (printer.ClientType == EnumClientType.NetworkPrinter)
                    {
                        string[] vals = printer.IPAddress.Split(':');
                        string   port = "9100";
                        if (vals.Length > 1)
                        {
                            port = vals[1];
                        }
                        foreach (Lot obj in lst)
                        {
                            d.LotNumber = obj.Key;
                            bSuccess    = helper.NetworkPrint(vals[0], port, label.Content, d);
                        }
                    }
                    else if (printer.ClientType == EnumClientType.RawPrinter)
                    {
                        foreach (Lot obj in lst)
                        {
                            d.LotNumber = obj.Key;
                            bSuccess    = helper.RAWPrint(printer.IPAddress, label.Content, d);
                        }
                    }
                    else
                    {
                        result.Code    = 1001;
                        result.Message = "打印失败,打印机类型不正确。";
                        return(Json(result));
                    }
                }
                //返回打印结果。
                if (bSuccess == false)
                {
                    result.Code    = 1001;
                    result.Message = string.Format("批次 {0} - {1} 打印失败。", model.LotNumber, model.LotNumber1);
                }
                else
                {
                    result.Message = string.Format("批次 {0} - {1} 打印操作成功。", model.LotNumber, model.LotNumber1);
                }
            }
            catch (Exception ex)
            {
                result.Code    = 1000;
                result.Message = ex.Message;
                result.Detail  = ex.ToString();
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return(Json(result));
        }
示例#26
0
        private MethodReturnResult PrintPrivate(PackageViewModel model, PackageInfo obj)
        {
            MethodReturnResult result = new MethodReturnResult();

            //不需要进行标签打印。
            if (model.PrintQty <= 0 ||
                string.IsNullOrEmpty(model.PrinterName) ||
                string.IsNullOrEmpty(model.PrintLabelCode))
            {
                return(result);
            }
            //获取打印机名称
            ClientConfig printer = null;

            using (ClientConfigServiceClient client = new ClientConfigServiceClient())
            {
                MethodReturnResult <ClientConfig> rst = client.Get(model.PrinterName);
                if (rst.Code > 0)
                {
                    return(rst);
                }
                printer = rst.Data;
            }
            //获取打印条码内容
            PrintLabel label = null;

            using (PrintLabelServiceClient client = new PrintLabelServiceClient())
            {
                MethodReturnResult <PrintLabel> rst = client.Get(model.PrintLabelCode);
                if (rst.Code > 0)
                {
                    return(rst);
                }
                label = rst.Data;
            }
            //根据打印数量设置打印机模板。
            using (IPrintHelper helper = PrintHelperFactory.CreatePrintHelper(label.Content))
            {
                //打印动态内容。
                dynamic d = new ExpandoObject();
                d.PackageNo = model.PackageNo.ToUpper();
                d.ProdId    = obj.ProductId;
                d.PartNo    = obj.ConfigCode;
                d.Grade     = obj.Grade;
                d.Color     = obj.Color;
                d.PNType    = obj.PNType;
                d.Eff       = obj.EfficiencyName;
                d.Qty       = string.Format("{0}PCS", model.Qty);
                d.PrintQty  = model.PrintQty;
                bool bSuccess = false;
                //根据打印机类型,调用不同的打印方法。
                if (printer.ClientType == EnumClientType.NetworkPrinter)
                {
                    string[] vals = printer.IPAddress.Split(':');
                    string   port = "9100";
                    if (vals.Length > 1)
                    {
                        port = vals[1];
                    }
                    bSuccess = helper.NetworkPrint(vals[0], port, label.Content, d);
                }
                else if (printer.ClientType == EnumClientType.RawPrinter)
                {
                    bSuccess = helper.RAWPrint(printer.IPAddress, label.Content, d);
                }
                else
                {
                    result.Code    = 1001;
                    result.Message = "打印失败,打印机类型不正确。";
                    return(result);
                }
                //返回打印结果。
                if (bSuccess == false)
                {
                    result.Code    = 1001;
                    result.Message = "包装标签打印失败。";
                    return(result);
                }
            }
            return(result);
        }