/// <summary>
        /// 初始化数据显示控件
        /// </summary>
        /// <param name="bill">打印设置主表信息</param>
        private void InitDataGridView(View_P_PrintBillForVehicleBarcode bill)
        {
            m_printBill = bill;

            if (bill != null)
            {
                IQueryable <View_P_PrintListForVehicleBarcode> printList =
                    m_productBarcodeServer.GetPrintSettingList(m_printBill.打印编号);

                if (printList.Count() > 0)
                {
                    btnPrint.Enabled             = true;
                    btnPrintSelectedList.Enabled = true;

                    txtPrintRemark.Text = m_printBill.打印说明;

                    dataGridView1.Rows.Clear();

                    foreach (var item in printList)
                    {
                        dataGridView1.Rows.Add(new object[] { 0, m_printBill.打印编号, item.打印规则编号, item.产品类型名称,
                                                              item.打印起始编号, item.打印结束编号, item.打印份数, item.打印模式, item.产品日期,
                                                              item.条形码构建规则, item.条形码示例 });

                        dataGridView1.Rows[dataGridView1.Rows.Count - 1].Tag = item;
                    }
                }
            }
        }
        /// <summary>
        /// 保存设置
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (!CheckData())
            {
                return;
            }

            if (dataGridView1.Rows.Count == 0)
            {
                MessageDialog.ShowErrorMessage("还没有设置条形码列表,不允许进行此操作");
                return;
            }

            View_P_PrintBillForVehicleBarcode bill = m_printBill;

            if (bill == null)
            {
                bill = new View_P_PrintBillForVehicleBarcode();

                bill.工号     = BasicInfo.LoginID;
                bill.打印设置日期 = ServerTime.Time;
                bill.是否已经打印 = false;
                bill.打印说明   = txtPrintRemark.Text.Trim();
            }

            List <P_PrintListForVehicleBarcode> printList = new List <P_PrintListForVehicleBarcode>();

            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                View_P_PrintListForVehicleBarcode data = dataGridView1.Rows[i].Tag as View_P_PrintListForVehicleBarcode;

                P_PrintListForVehicleBarcode listInfo = new P_PrintListForVehicleBarcode();

                listInfo.BillID      = data.打印编号;
                listInfo.BuildRuleID = data.打印规则编号;
                listInfo.BeginNumber = data.打印起始编号;
                listInfo.EndNumber   = data.打印结束编号;
                listInfo.PrintDegree = data.打印份数;
                listInfo.Date        = data.产品日期;
                listInfo.PrintMode   = data.打印模式编号;

                printList.Add(listInfo);
            }

            if (m_productBarcodeServer.SavePrintSetting(bill, printList, out m_error))
            {
                m_printBill = m_productBarcodeServer.GetPrintSetting(bill.打印编号);

                InitDataGridView(m_printBill);

                btnPrint.Enabled             = true;
                btnPrintSelectedList.Enabled = true;

                MessageDialog.ShowPromptMessage("操作成功");
            }
            else
            {
                MessageDialog.ShowErrorMessage(m_error);
            }
        }
        public 打印CVT出厂条形码(AuthorityFlag authFlag, View_P_PrintBillForVehicleBarcode bill)
        {
            InitializeComponent();

            m_authorityFlag = authFlag;

            cmbPrintMode.DataSource    = m_productBarcodeServer.GetPrintMode();
            cmbPrintMode.DisplayMember = "PrintMode";

            InitDataGridView(bill);
        }
        /// <summary>
        /// 保存打印设置
        /// </summary>
        /// <param name="bill">打印主表信息</param>
        /// <param name="printList">打印明细信息</param>
        /// <param name="error">出错时返回的出错信息</param>
        /// <returns>操作是否成功的标志</returns>
        public bool SavePrintSetting(View_P_PrintBillForVehicleBarcode bill,
                                     List <P_PrintListForVehicleBarcode> printList, out string error)
        {
            error = null;

            try
            {
                DepotManagementDataContext ctx = CommentParameter.DepotDataContext;
                bool printFlag = false;

                if (bill.打印编号 != 0)
                {
                    var result = from r in ctx.P_PrintBillForVehicleBarcode
                                 where r.ID == bill.打印编号
                                 select r;

                    if (result.Count() > 0)
                    {
                        printFlag = result.Single().PrintFlag;
                        ctx.P_PrintBillForVehicleBarcode.DeleteAllOnSubmit(result);
                    }
                }

                P_PrintBillForVehicleBarcode billInfo = new P_PrintBillForVehicleBarcode();

                billInfo.PrintFlag = printFlag;
                billInfo.UserCode  = bill.工号;
                billInfo.Date      = bill.打印设置日期;
                billInfo.Remark    = bill.打印说明;

                billInfo.P_PrintListForVehicleBarcode.AddRange(printList);

                ctx.P_PrintBillForVehicleBarcode.InsertOnSubmit(billInfo);
                ctx.SubmitChanges();

                bill.打印编号 = billInfo.ID;
                return(true);
            }
            catch (Exception exce)
            {
                error = exce.Message;
                return(false);
            }
        }