コード例 #1
0
        /// <summary>
        /// 初始化信息
        /// </summary>
        void InitData()
        {
            if (base.IsHandleCreated)
            {
                base.Invoke(new EventHandler(delegate
                {
                    btnOk.Enabled     = false;
                    buttonEx2.Enabled = false;
                }));
            }
            if (btnOk.IsHandleCreated)
            {
                btnOk.Invoke(new EventHandler(delegate
                {
                    btnOk.Enabled = false;
                }));
            }
            if (buttonEx2.IsHandleCreated)
            {
                buttonEx2.Invoke(new EventHandler(delegate
                {
                    buttonEx2.Enabled = false;
                }));
            }
            //else
            //{
            //    base.Invoke(new EventHandler(delegate
            //    {
            //        btnOk.Enabled = false;
            //        buttonEx2.Enabled = false;
            //    }));
            //}
            bool isAll = true;

            //1、初始化的基本信息2、各基本信息所占总初始化信息的百分比
            //需要初始化的信息:商品分类10、商品条码20、商品40、支付方式10、基础信息类型,基础信息数据10、营业员10
            try
            {
                int progressValue         = this.progressBar1.Value;
                List <ThreadStruct> _list = new List <ThreadStruct>();

                _list.Add(new ThreadStruct()
                {
                    Desc = "数据库基本", Method = "InitDB", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "门店信息", Method = "Getbrninfo", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "商品分类", Method = "Getitemcls", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "商品条形码", Method = "Getbarcode", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "商品", Method = "Getiteminfo", Percent = 10
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "商品价格", Method = "Getbraprc", Percent = 10
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "商品库存", Method = "Getbrastock", Percent = 10
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "基础信息类型", Method = "Getbasecode", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "基础信息数据", Method = "Getbase", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "营业员", Method = "Getoper", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "支付方式", Method = "Getpayinfo", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "快捷键", Method = "Getkey", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "促销规则", Method = "Getprule", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "促销", Method = "Getpmaster", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "促销详细", Method = "Getpdetail", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "组合商品", Method = "Getcomb", Percent = 5
                });
                _list.Add(new ThreadStruct()
                {
                    Desc = "供应商", Method = "Getsup", Percent = 5
                });
                //_list.Add(new ThreadStruct() { Desc = "POS机设置", Method = "GetPosSet", Percent = 5 });

                foreach (ThreadStruct ts in _list)
                {
                    Thread.Sleep(500);
                    if (ts.Method == "InitDB")
                    {
                        if (!Gfunc.InitDB())
                        {
                            isAll = false;
                            MessageBox.Show("更新" + ts.Desc + "时错误", Gattr.AppTitle);
                            this.Invoke(new EventHandler(delegate
                            {
                                buttonEx2.Enabled = true;
                            }));
                            break;
                        }
                    }
                    else
                    {
                        if (InvokeServices(ts.Method, true))
                        {
                            progressValue = progressBar1.Value + ts.Percent;
                            this.Invoke((MethodInvoker)(() => SetControlText("正在更新" + ts.Desc + "信息操作,已完成" + (progressValue) + "%", progressValue)));
                        }
                        else
                        {
                            isAll = false;
                            MessageBox.Show("更新" + ts.Desc + "时错误", Gattr.AppTitle);
                            this.Invoke(new EventHandler(delegate
                            {
                                buttonEx2.Enabled = true;
                            }));
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LoggerHelper.Log("MsmkLogger", ex.ToString(), LogEnum.ExceptionLog);
            }
            finally
            {
                //Gattr.Bll.dbClose();
            }
            if (isAll)
            {
                DialogResult = System.Windows.Forms.DialogResult.OK;
            }
        }