/// <summary>
        /// 写打印日志
        /// </summary>
        /// <param name="log">日志信息</param>
        /// <param name="error">出错时返回的出错信息</param>
        /// <returns>操作是否成功的标志</returns>
        public bool WritePrintLog(P_PrintLogForVehicleBarcode log, out string error)
        {
            error = null;

            try
            {
                DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

                ctx.P_PrintLogForVehicleBarcode.InsertOnSubmit(log);
                ctx.SubmitChanges();

                return(true);
            }
            catch (Exception exce)
            {
                error = exce.Message;
                return(false);
            }
        }
        /// <summary>
        /// 打印指定列表
        /// </summary>
        /// <param name="listPrint">要打印列表</param>
        private void Print(List <View_P_PrintListForVehicleBarcode> listPrint)
        {
            for (int i = 0; i < listPrint.Count; i++)
            {
                List <string> lstPrintInfo = new List <string>();

                View_P_PrintListForVehicleBarcode data = listPrint[i];

                if (m_productBarcodeServer.IsPrint(data))
                {
                    if (MessageDialog.ShowEnquiryMessage(string.Format("{0},产品日期:{1},打印起始编号【{2}】,打印结束编号【{3}】的条形码有部分或全部条形码已经打印过,是否继续打印?",
                                                                       data.产品类型名称, data.产品日期.ToString("yyyy年MM月"),
                                                                       data.打印起始编号, data.打印结束编号)) == DialogResult.No)
                    {
                        return;
                    }
                }

                if (data.打印模式 == "按序打完所有条码后再按打印次数打下一遍")
                {
                    for (int k = 0; k < data.打印份数; k++)
                    {
                        for (int j = data.打印起始编号; j <= data.打印结束编号; j++)
                        {
                            lstPrintInfo.Add(m_productBarcodeServer.GetFormatStringOfBuildRule(data.打印规则编号, data.产品日期, j));
                        }
                    }
                }
                else
                {
                    for (int j = data.打印起始编号; j <= data.打印结束编号; j++)
                    {
                        for (int k = 0; k < data.打印份数; k++)
                        {
                            lstPrintInfo.Add(m_productBarcodeServer.GetFormatStringOfBuildRule(data.打印规则编号, data.产品日期, j));
                        }
                    }
                }

                foreach (var barcode in lstPrintInfo)
                {
                    if (!PrintPartBarcode.PrintBarcodeForVehicle(barcode))
                    {
                        MessageDialog.ShowErrorMessage(string.Format("打印 {0} 失败!", barcode));
                        return;
                    }
                }

                P_PrintLogForVehicleBarcode log = new P_PrintLogForVehicleBarcode();

                log.BeginNumber = data.打印起始编号;
                log.EndNumber   = data.打印结束编号;
                log.BuildRuleID = data.打印规则编号;

                log.UserCode = BasicInfo.LoginID;
                log.Date     = ServerTime.Time;

                log.ProductDate = data.产品日期;
                log.Reason      = m_printBill.打印说明;
                log.PrintDegree = data.打印份数;
                log.PrintMode   = data.打印模式编号;

                if (!m_productBarcodeServer.WritePrintLog(log, out m_error))
                {
                    MessageDialog.ShowErrorMessage(m_error);
                }
            }
        }