Beispiel #1
0
 private void ShowForm()
 {
     form = new frmWait();
     form.StartPosition = FormStartPosition.CenterScreen;
     form.TopMost       = false;
     form.Show();
 }
Beispiel #2
0
        private void cmdGerar_Click(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("Confirma a geração da consiliação financeira do período");
            sb.Append(" '");
            sb.Append(this.prdDataEmissao.Data_Inicial.ToShortDateString());
            sb.Append("' a '");
            sb.Append(this.prdDataEmissao.Data_Termino.ToShortDateString());
            sb.Append("'?");

            DialogResult dr = MsgBox.Show(sb.ToString()
                                          , "Atenção"
                                          , MessageBoxButtons.YesNo
                                          , MessageBoxIcon.Question);

            if (dr == DialogResult.Yes)
            {
                frmWait f = new frmWait("Aguarde, gerando consiliação financeira", frmWait.Tipo_Imagem.Wait);

                Financeiro.ConsiliacaoFinanceira cf = new Financeiro.ConsiliacaoFinanceira();
                cf.Gerar_Consiliacao(this.prdDataEmissao.Data_Inicial, this.prdDataEmissao.Data_Termino);

                f.Close();
                f.Dispose();

                MsgBox.Show("Consiliação financeira realizada com sucesso!"
                            , "Atenção"
                            , MessageBoxButtons.OK
                            , MessageBoxIcon.Information);
            }
        }
Beispiel #3
0
 protected virtual void SafeCloseWaitFrm()
 {
     if (_frmWait != null && !_frmWait.Disposing && !_frmWait.IsDisposed)
     {
         _frmWait.Close();
     }
     _frmWait = null;
 }
Beispiel #4
0
 public OpenPriceFileThread(string filePath, PriceFormat?priceFormat, PriceEncode encode, string delimiter, DataTableMarking dataTableMarking)
 {
     _filePath         = filePath;
     _priceFormat      = priceFormat;
     _delimiter        = delimiter;
     _dataTableMarking = dataTableMarking;
     _handle           = new Thread(ThreadProc);
     _formWait         = new frmWait();
     _priceEncode      = encode;
 }
Beispiel #5
0
        private void frmPrincipal_Load(object sender, EventArgs e)
        {
            this.Text = this.Text.Replace("[versao]", Global.VersaoSistema);

            if (Global.VerificarResolucaoVideo())
            {
                MessageBox.Show("A resolução de vídeo atual é compatível com o Sistema" +
                                " no entanto, para uma melhor visualização, recomenda-se" +
                                " utilizar 1024x768 ou superior.", "Aviso importante", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            if (selecionaempresa)
            {
                if (empresanaoliberada)
                {
                    MessageBox.Show("A empresa selecionada não está acessível para uso devido sua licença de funcionamento não estar liberada." +
                                    " Para demais esclarecimentos, entre em contato com nosso suporte técnico.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else
                {
                    if (empresainexistente)
                    {
                        MessageBox.Show("A empresa selecionada não está acessível. Para solucionar esse problema, selecione-a novamente ou escolha outra empresa.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }

                Cursor = Cursors.WaitCursor;
                if (new frmSelecionaEmpresa().ShowDialog() == DialogResult.OK) //APLICA CONFIGURAÇÕES
                {
                    frmWait wait = new frmWait("Lendo as novas configurações...");
                    wait.Show();
                    Application.DoEvents();

                    Ativaempresa = false;

                    //Atalhos();

                    MontaMenuModulo("01", treeListCadastros);
                    MontaMenuModulo("02", treeListVendas);
                    MontaMenuModulo("03", treeListRelatorios);
                    //MontaMenuModulo("04", treeListImpressos);
                    //MontaMenuModulo("05", treeListDocumentos);
                    //MontaMenuModulo("06", treeListIntegracoes);
                    //MontaMenuModulo("07", treeListUtilitarios);
                    //MontaMenuModulo("08", treeListAjuda);

                    empresa = new EmpresaDTO().Deserializar();
                    CarregaConfiguracoes(empresa);
                    dialogResult = DialogResult.Cancel;

                    wait.Close();
                }
                Cursor = Cursors.Default;
            }
        }
Beispiel #6
0
        private void Salvar()
        {
            try
            {
                if (this.ValidaCampos())
                {
                    return;
                }

                Cursor = Cursors.WaitCursor;
                //VALIDAR CONFIGURAÇÃO
                using (frmWait wait = new frmWait("Testando conexão com o Banco de Dados..."))
                {
                    wait.Show();
                    Application.DoEvents();
                    if (!ping.Send(conexaoDTO))
                    {
                        MessageBox.Show("Não foi possível estabelecer uma conexão válida. Verifique os dados informados e tente novamente.", "Falha de conexão", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        Cursor = Cursors.Default;
                        wait.Close();
                        return;
                    }
                    wait.Close();
                }
                if (isSerializable)
                {
                    //APLICAR DIRETIVAS DE SEGURANÇA

                    conexaoDTO.Conexoes.Add(conexaoDTO);
                    conexaoDTO.Serializar();
                }
                else
                {
                    switch (tpOperacao)
                    {
                    case Enumeradores.TipoOperacao.Insert:
                        bndConexaoGrid.Add(ConexaoDTOBindingSource.Current);
                        break;

                    case Enumeradores.TipoOperacao.Update:
                        bndConexaoGrid.List[bndConexaoGrid.Position] = ConexaoDTOBindingSource.Current;
                        break;
                    }
                }
                DialogResult = DialogResult.OK;
                this.Close();
            }
            catch (Exception ex)
            {
                Cursor = Cursors.Default;
                MessageBox.Show("Não foi possível efetuar a operação.\n\n" +
                                "Motivo: " + ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            Cursor = Cursors.Default;
        }
Beispiel #7
0
 protected virtual void OpenWaitFrm()
 {
     pnlMain.Visible = false;
     pnlWait.Visible = true;
     SafeCloseWaitFrm();
     _frmWait = new frmWait
     {
         TimeOut = 9999
     };
     _frmWait.Show();
 }
        public frmUserList()
        {
            frmWait frmWait      = new frmWait();
            Thread  splashThread = new Thread(new ThreadStart(
                                                  () => { frmWait.ShowDialog(); }));//Application.Run(frmWait);

            splashThread.SetApartmentState(ApartmentState.MTA);
            splashThread.Start();
            InitializeComponent();
            RetrieveData();
            splashThread.Abort();
        }
        public frmUserDetail()
        {
            frmWait frmWait      = new frmWait();
            Thread  splashThread = new Thread(new ThreadStart(
                                                  () => { Application.Run(frmWait); }));

            splashThread.SetApartmentState(ApartmentState.MTA);
            splashThread.Start();
            InitializeComponent();
            RetrieveUserRole();
            RetrieveDetail();
            splashThread.Abort();
        }
        private void ThreadRun()
        {
            ThreadSetBtnEnabel(false);
            frmWait f = new frmWait("正在生成路径请稍候....");

            f.Show();
            f.Refresh();
            string message = dpicbll.ProductRoutePoint(f, f.PgbWait, FileID);

            f.Close();
            MessageBox.Show(message);
            ThreadSetBtnEnabel(true);
            SaveThread.Abort();
        }
Beispiel #11
0
        public ReportBase()
        {
            if (Propriedades.FormMain != null && Propriedades.FormMain.ActiveMdiChild != null)
            {
                fwait = new frmWait("Aguarde, gerando relatório.");
                this.dt_DataSet.EnforceConstraints = false;
                this.Copia_DataSet_FormOrigem();
            }

            InitializeComponent();

            CompSoft.compFrameWork.Impressoras imp;
            this.PrinterName = imp.Impressora_Padrao;
        }
        public frmStudentList()
        {
            frmWait frmWait      = new frmWait();
            Thread  splashThread = new Thread(new ThreadStart(
                                                  () => { Application.Run(frmWait); }));//Application.Run(frmWait);

            splashThread.SetApartmentState(ApartmentState.MTA);
            splashThread.Start();
            currentCellIndex = -1;
            InitializeComponent();
            gshd();
            RetrieveData();
            splashThread.Abort();
        }
 private static void FreeWaitingForm()
 {
     _waitingState = "";
     _isVisible    = false;
     if (_waitForm == null)
     {
         return;
     }
     _waitForm.Hide();
     if (!_waitForm.IsDisposed)
     {
         _waitForm.Dispose();
     }
     _waitForm = null;
 }
Beispiel #14
0
        private void cmdEnviarXMLEmail_Click(object sender, EventArgs e)
        {
            frmWait f = new frmWait("Aguarde, enviando e-mail com NF-e em anexo...", frmWait.Tipo_Imagem.Informacao);

            foreach (DataRow row in this.DataSetLocal.Tables["Notas_Fiscais_Lotes_Itens"].Select())
            {
                Dados_Arquivo_NFe daNFe = new Dados_Arquivo_NFe();
                daNFe.Carregar_Dados(Convert.ToInt32(row["Nota_fiscal_Lote"]));

                ERP.NFe.Enviar_XML_Email envMail_Nfe;
                envMail_Nfe.Enviar_XML(daNFe);
            }

            f.Close();
            f.Dispose();
        }
        public panelArchLogs()
        {
            InitializeComponent();
            this._waitScreen        = new frmWait();
            this._waitScreen.Parent = this._formPadre;
            clsRepo repo = new clsRepo();

            foreach (string clase in repo.getEntidadesNombre())
            {
                cmbTabla.Items.Add(clase);
            }
            if (cmbTabla.Items.Count > 0)
            {
                cmbTabla.SelectedIndex = 0;
            }
        }
Beispiel #16
0
        private void btnRecalculo_Click(object sender, EventArgs e)
        {
            frmWait wait = new frmWait("Recalculando o orçamento...");

            wait.Show();
            Application.DoEvents();
            try
            {
                Recalcula();
            }
            catch
            {
                throw;
            }
            wait.Close();
        }
 private static void DisplayWaitingForm()
 {
     if (_waitForm != null)
     {
         if (!_waitForm.IsDisposed)
         {
             _waitForm.Dispose();
         }
         _waitForm  = null;
         _isVisible = false;
     }
     try
     {
         if (_isAborted)
         {
             return;
         }
         _waitForm = new frmWait();
         if (_cancelable)
         {
             _waitForm.btnCancel.Enabled = true;
             _waitForm.btnCancel.Click  += new EventHandler(btnCancel_Click);
         }
         try
         {
             _isVisible = true;
             _waitForm.Show();
             _waitForm.Focus();
             while (!_isAborted)
             {
                 System.Threading.Thread.Sleep(15);
                 _waitForm.lblMessage.Text = _waitingState;
                 Application.DoEvents();
                 _waitForm.lblMessage.Text = _waitingState;
             }
             _isVisible = false;
         }
         finally
         {
             FreeWaitingForm();
         }
     }
     finally
     {
         _isVisible = false;
     }
 }
Beispiel #18
0
        /// <summary>
        /// Validar licença de funcionamento.
        /// </summary>
        /// <returns>Verdadeiro caso empresa esteja liberada para funcionamento</returns>
        private bool Acesso()
        {
            frmWait wait = new frmWait("Verificando licença de funcionamento...");

            wait.Show();
            Application.DoEvents();

            try
            {
                List <FilialDTO> filiais  = filialGL.GetGridFilial("filial", string.Empty);
                MechTechAtivaDTO ativacao = null;
                try
                {
                    ativacao = mechtechativaGL.GetMechTechAtivaByFilial(filiais[0].Filial);
                }
                catch { }
                if (ativacao != null)
                {
                    List <MechTechEmpresaDTO> empresasliberadas = mechtechempresaGL.GetMechTechEmpresaByID_MechTechAtiva(ativacao.Id);
                    if (empresasliberadas.Count <= 0)
                    {
                        MessageBox.Show("A empresa não pode ser ativada para uso devido sua licença de funcionamento não estar liberada." +
                                        " Para demais esclarecimentos, entre em contato com nosso suporte técnico.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        wait.Close();
                        return(false);
                    }

                    MechTechEmpresaDTO empresaliberada = empresasliberadas.Find(delegate(MechTechEmpresaDTO item) { return(item.CNPJ == ((EmpresaDTO)EmpresaDTOBindingSource.Current).Cnpj); });
                    if (empresaliberada == null)
                    {
                        MessageBox.Show("A empresa não pode ser ativada para uso devido sua licença de funcionamento não estar liberada." +
                                        " Para demais esclarecimentos, entre em contato com nosso suporte técnico.", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        wait.Close();
                        return(false);
                    }
                }
            }
            catch
            {
                wait.Close();
                throw;
            }

            wait.Close();
            return(true);
        }
Beispiel #19
0
        private void CarregaConfiguracoes(EmpresaDTO obj)
        {
            //REINDERIZAR CONFIGURAÇÕES
            if (parent != null)
            {
                frmWait wait = new frmWait("Lendo as novas configurações...");
                wait.Show();
                Application.DoEvents();

                PropertyInfo propriedade;
                MethodInfo   metodo;

                propriedade = Application.OpenForms[Global.MainForm].GetType().GetProperty("Ativaempresa");
                propriedade.SetValue(parent, false, null);

                propriedade = Application.OpenForms[Global.MainForm].GetType().GetProperty("DialogResult");
                propriedade.SetValue(parent, DialogResult.OK, null);

                //metodo = Application.OpenForms[Global.MainForm].GetType().GetMethod("Atalhos");
                //metodo.Invoke(parent, null);

                metodo = Application.OpenForms[Global.MainForm].GetType().GetMethod("MontaMenuModulo");
                metodo.Invoke(parent, new object[] { "01", new TreeList() });
                //metodo = Application.OpenForms[Global.MainForm].GetType().GetMethod("MontaMenuModulo");
                //metodo.Invoke(parent, new object[] { "02", new TreeList() });
                //metodo = Application.OpenForms[Global.MainForm].GetType().GetMethod("MontaMenuModulo");
                //metodo.Invoke(parent, new object[] { "03", new TreeList() });
                //metodo = Application.OpenForms[Global.MainForm].GetType().GetMethod("MontaMenuModulo");
                //metodo.Invoke(parent, new object[] { "04", new TreeList() });
                //metodo = Application.OpenForms[Global.MainForm].GetType().GetMethod("MontaMenuModulo");
                //metodo.Invoke(parent, new object[] { "05", new TreeList() });
                //metodo = Application.OpenForms[Global.MainForm].GetType().GetMethod("MontaMenuModulo");
                //metodo.Invoke(parent, new object[] { "06", new TreeList() });
                //metodo = Application.OpenForms[Global.MainForm].GetType().GetMethod("MontaMenuModulo");
                //metodo.Invoke(parent, new object[] { "07", new TreeList() });
                //metodo = Application.OpenForms[Global.MainForm].GetType().GetMethod("MontaMenuModulo");
                //metodo.Invoke(parent, new object[] { "08", new TreeList() });

                metodo = Application.OpenForms[Global.MainForm].GetType().GetMethod("CarregaConfiguracoes");
                metodo.Invoke(parent, new object[] { obj });

                wait.Close();
            }
        }
Beispiel #20
0
        private void Salvar(bool navegacao)
        {
            try
            {
                if (this.ValidaCampos())
                {
                    return;
                }

                if (orcamentoDTO.Produtoservico.Count() <= 0)
                {
                    MessageBox.Show("Orçamento não calculado. Impossível prosseguir.", "Cálculo de Orçamento", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                Cursor = Cursors.WaitCursor;
                frmWait wait = new frmWait("Gravando...");
                wait.Show();
                Application.DoEvents();

                switch (tpOperacao)
                {
                case Enumeradores.TipoOperacao.Insert:
                    orcamentoDTO.Id = orcamentoGL.Insert((OrcamentoDTO)OrcamentoDTOBindingSource.Current);
                    break;

                case Enumeradores.TipoOperacao.Update:
                    orcamentoGL.Update((OrcamentoDTO)OrcamentoDTOBindingSource.Current);
                    break;
                }

                wait.Close();
                MessageBox.Show("Orçamento gravado com sucesso.", "Orçamento", MessageBoxButtons.OK, MessageBoxIcon.Information);
                if (!navegacao)
                {
                    this.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível efetuar a operação em consequência do seguinte erro: " + ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            Cursor = Cursors.Default;
        }
        private void btnSignin_Click(object sender, EventArgs e)
        {
            frmWait frmWait = new frmWait();
            Thread  cl      = new Thread(new ThreadStart(
                                             () => { frmWait.captionLoad("¡ÓÅѧµÃǨÊͺ..."); frmWait.ShowDialog(); }
                                             ));

            cl.Start();
            if (authentication.checkUser(txtUsername.Text, txtPassword.Text))
            {
                cl.Abort();
                this.Hide();
            }
            else
            {
                cl.Abort();
                this.Activate();
                MessageBoxAdv.Show("ª×èͼÙéãªéËÃ×ÍÃËÑʼèÒ¹äÁè¶Ù¡µéͧ ¡ÃسҷÓÃÒ¡ÒÃãËÁèÍÕ¡¤ÃÑé§", "ÃÒ§ҹ¤ÇÒÁ¼Ô´¾ÅÒ´", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
Beispiel #22
0
        private void AcionaMirrorLocal()
        {
            frmWait wait = new frmWait("Procurando por atualizações...");

            wait.Show();
            Application.DoEvents();

            if (!ProcurarAtualizacoesNovo(null))
            {
                Environment.Exit(Environment.ExitCode);
            }

            wait.NewMessage = "Copiando novos arquivos...";
            Application.DoEvents();

            if (!CopiarNovosArquivos(null))
            {
                Environment.Exit(Environment.ExitCode);
            }
        }
Beispiel #23
0
        private object Show(EventHandler <WaitWindowEventArgs> workerMethod, string message, List <object> args)
        {
            //	Validate Parameters
            if (workerMethod == null)
            {
                throw new ArgumentException("No worker method has been specified.", "workerMethod");
            }
            else
            {
                this._WorkerMethod = workerMethod;
            }

            this._Args = args;

            if (string.IsNullOrEmpty(message))
            {
                message = "Por favor espere mientras se procesa la operacion...";
            }

            this._GUI = new frmWait(this);
            this._GUI.MessageLabel.Text = message;

            this._GUI.ShowDialog();

            object result = this._GUI._Result;

            Exception _Error = this._GUI._Error;

            this._GUI.Dispose();

            if (_Error != null)
            {
                throw _Error;
            }
            else
            {
                return(result);
            }
        }
Beispiel #24
0
        private void f0063_user_AfterRefreshData()
        {
            frmWait f = new frmWait("Aguarde, gerando fluxo de caixa do periodo selecionado.", CompSoft.Tools.frmWait.Tipo_Imagem.Atencao);

            //-- Faz apresentação em formas diferente.
            DataTable dt_mes    = this.Gerar_Agrupamentos(Tipos_Agrupamentos.Mes);
            DataTable dt_semana = this.Gerar_Agrupamentos(Tipos_Agrupamentos.Semana);

            if (!this.BindingSource.ContainsKey(dt_mes.TableName.ToLower()))
            {
                this.BindingSource.Add(dt_mes.TableName.ToLower(), new BindingSource(dt_mes, null));
            }

            if (!this.BindingSource.ContainsKey(dt_semana.TableName.ToLower()))
            {
                this.BindingSource.Add(dt_semana.TableName.ToLower(), new BindingSource(dt_semana, null));
            }

            this.Adicionar_DataSet(ref dt_mes);
            this.Adicionar_DataSet(ref dt_semana);

            //-- Calcula o saldo dia-a-dia.
            this.Calcula_Saldo(this.DataSetLocal.Tables["Fluxo"]);
            this.Calcula_Saldo(this.DataSetLocal.Tables["Mes"]);
            this.Calcula_Saldo(this.DataSetLocal.Tables["Semana"]);

            //-- Carrega dados...
            this.grdFluxoData.DataSource         = this.DataSetLocal.Tables["Fluxo"];
            this.grdFluxoData.BindingSource.Sort = "Referencia asc";

            this.grdFluxoMes.DataSource         = this.DataSetLocal.Tables["Mes"];
            this.grdFluxoMes.BindingSource.Sort = "data asc";

            this.grdFluxoSemana.DataSource         = this.DataSetLocal.Tables["Semana"];
            this.grdFluxoSemana.BindingSource.Sort = "data asc";

            f.Close();
        }
 private void ThreadRun()
 {
     ThreadSetBtnEnabel(false);
     frmWait f = new frmWait("正在生成路径请稍候....");
     f.Show();
     f.Refresh();
     string message = dpicbll.ProductRoutePoint(f, f.PgbWait, FileID);
     f.Close();
     //MessageBox.Show(message);
     ThreadSetBtnEnabel(true);
     SaveThread.Abort();
 }
Beispiel #26
0
        /// <summary>
        /// Responsável por efetuar toda validação a nível de estrutura do Banco de dados.
        /// </summary>
        private void DataBaseStructure()
        {
            OpenForm form = OpenForm.Splash;

            frmWait wait = new frmWait();

            // frmSplashScreen waitSplash = new frmSplashScreen();

            //if (Application.OpenForms.Count == 1)
            //    Splash.Status = "Verificando a estrutura do Banco de dados...";
            //else
            //{

            if (Global.Id_UsuarioAtivo > 0) //42350
            {
                form = OpenForm.Main;
            }


            if (form == OpenForm.Splash)
            {
                Splash.Status = "Verificando a estrutura do Banco de dados...";
            }
            else
            {
                wait.NewMessage = "Verificando a estrutura do Banco de dados...";
            }
            wait.Show();
            Application.DoEvents();
            //}

            //ESTRUTURA BASE
            List <EstruturaTabelaDTO> tablesbase    = new List <EstruturaTabelaDTO>();
            List <EstruturaObjetoDTO> objectsbase   = new List <EstruturaObjetoDTO>();
            List <EstruturaFuncaoDTO> functionsbase = new List <EstruturaFuncaoDTO>();

            try
            {
                tablesbase    = estruturatabelaGL.GetListAll();
                objectsbase   = estruturaobjetoGL.GetListAll();
                functionsbase = estruturafuncaoGL.GetListAll();
            }
            catch
            {
                if (form == OpenForm.Splash)
                {
                    Splash.Close();
                }
                MessageBox.Show("Ocorreu uma falha geral a nível de estrutura do Banco de dados. Verifique junto ao suporte técnico as possíveis causas para solução do problema.", "Falha catastrófica", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Environment.Exit(Environment.ExitCode);
            }
            //

            //INÍCIO
            try
            {
                DatabaseStructureDTO databasestructure = null;
                try
                {
                    databasestructure = databasestructureGL.GetSchema(Global.EmpresaAtiva);
                }
                catch { }
                if (databasestructure == null) //SEM SCHEMA
                {
                    //ESTRUTURA
                    if (form == OpenForm.Splash)
                    {
                        Splash.Status = "Criando a estrutura " + Global.EmpresaAtiva;
                    }
                    else
                    {
                        wait.NewMessage = "Criando a estrutura " + Global.EmpresaAtiva;
                        Application.DoEvents();
                    }
                    databasestructureGL.CreateSchema(Global.EmpresaAtiva);

                    //TABELAS/OBJETOS
                    if (form == OpenForm.Splash)
                    {
                        Splash.Status = "Criando as tabelas e objetos para " + Global.EmpresaAtiva;
                    }
                    else
                    {
                        wait.NewMessage = "Criando as tabelas e objetos para " + Global.EmpresaAtiva;
                        Application.DoEvents();
                    }
                    estruturatabelaGL.Create();

                    //FUNÇÕES
                    if (form == OpenForm.Splash)
                    {
                        Splash.Status = "Criando os procedimentos para " + Global.EmpresaAtiva;
                    }
                    else
                    {
                        wait.NewMessage = "Criando os procedimentos para " + Global.EmpresaAtiva;
                        Application.DoEvents();
                    }
                    estruturafuncaoGL.Create();
                }
                else //COM SCHEMA
                {
                    //TABELAS
                    List <DatabaseStructureDTO> tables = databasestructureGL.GetTables(Global.EmpresaAtiva);
                    if (tables.Count != tablesbase.Count)
                    {
                        List <EstruturaTabelaDTO> tablecreate = new List <EstruturaTabelaDTO>();
                        foreach (EstruturaTabelaDTO estruturabase in tablesbase)
                        {
                            DatabaseStructureDTO estrutura = tables.Find(delegate(DatabaseStructureDTO item) { return(item.Name.Equals(estruturabase.Nometabela)); });
                            if (estrutura == null)
                            {
                                tablecreate.Add(estruturabase);
                            }
                        }
                        if (tablecreate.Count > 0)
                        {
                            if (form == OpenForm.Splash)
                            {
                                Splash.Status = "Criando as tabelas e objetos para " + Global.EmpresaAtiva;
                            }
                            else
                            {
                                wait.NewMessage = "Criando as tabelas e objetos para " + Global.EmpresaAtiva;
                                Application.DoEvents();
                            }
                            estruturatabelaGL.Create(tablecreate);
                        }
                    }

                    //OBJETOS
                    List <DatabaseStructureDTO> objects = databasestructureGL.GetObjects(Global.EmpresaAtiva);
                    if (objects.Count != objectsbase.Count)
                    {
                        List <EstruturaObjetoDTO> objectcreate = new List <EstruturaObjetoDTO>();
                        foreach (EstruturaObjetoDTO estruturabase in objectsbase)
                        {
                            DatabaseStructureDTO estrutura = objects.Find(delegate(DatabaseStructureDTO item) { return(item.Name.Equals(estruturabase.Nomeobjeto)); });
                            if (estrutura == null)
                            {
                                objectcreate.Add(estruturabase);
                            }
                        }
                        if (objectcreate.Count > 0)
                        {
                            if (form == OpenForm.Splash)
                            {
                                Splash.Status = "Criando os objetos para " + Global.EmpresaAtiva;
                            }
                            else
                            {
                                wait.NewMessage = "Criando os objetos para " + Global.EmpresaAtiva;
                                Application.DoEvents();
                            }
                            estruturaobjetoGL.Create(objectcreate);
                        }
                    }

                    //FUNÇÕES
                    List <DatabaseStructureDTO> functions = databasestructureGL.GetProcs(Global.EmpresaAtiva);
                    if (functions.Count != functionsbase.Count)
                    {
                        List <EstruturaFuncaoDTO> functioncreate = new List <EstruturaFuncaoDTO>();
                        foreach (EstruturaFuncaoDTO estruturabase in functionsbase)
                        {
                            DatabaseStructureDTO estrutura = functions.Find(delegate(DatabaseStructureDTO item) { return(item.Name.Equals(estruturabase.Nomefuncao)); });
                            if (estrutura == null)
                            {
                                functioncreate.Add(estruturabase);
                            }
                        }
                        if (functioncreate.Count > 0)
                        {
                            if (form == OpenForm.Splash)
                            {
                                Splash.Status = "Criando os procedimentos para " + Global.EmpresaAtiva;
                            }
                            else
                            {
                                wait.NewMessage = "Criando os procedimentos para " + Global.EmpresaAtiva;
                                Application.DoEvents();
                            }
                            estruturafuncaoGL.Create(functioncreate);
                        }
                    }
                }
            }
            catch
            {
                if (form == OpenForm.Splash)
                {
                    Splash.Close();
                }
                MessageBox.Show("Ocorreu uma falha geral a nível de estrutura do Banco de dados. Verifique junto ao suporte técnico as possíveis causas para solução do problema.", "Falha catastrófica", MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw;
            }
            wait.Close();
        }
        /// <summary>
        /// 线程运行  生成轨迹
        /// </summary>
        private void ThreadRun()
        {
            try
            {
                string strOutMessage ;
                SetHistoryBtnEnabel(false);
                int step = 100 / EmpMoverList.Count;
                frmWait f = new frmWait("正在生成历史轨迹,请稍候....");
                f.Show();
                if (this.PageIndex == 0)
                {
                    #region[时间选择]
                    foreach (EmpMoverModel emm in EmpMoverList)
                    {
                        f.Refresh();
                        //Czlt-2012-04-20 注销
                        //List<string> list = dpicbll.GetRouteInfoByEmpID(emm.EmpID, dtpStart.Value.ToString("yyyy-MM-dd HH:mm:ss"), dtpEnd.Value.ToString("yyyy-MM-dd HH:mm:ss"), int.Parse(FileID));
                        strOutMessage = string.Empty;
                        List<string> list = dpicbll.GetRouteInfoByEmpID(emm.EmpID, dtpStart.Value.ToString("yyyy-MM-dd HH:mm:ss"), dtpEnd.Value.ToString("yyyy-MM-dd HH:mm:ss"), int.Parse(FileID), out strOutMessage);
                        if (list != null && list.Count >= 5)
                            this.MapGis.AddMover(list[0], list[1], list[2], list[3], list[4], MoverZFilePath, MoverFFilePath, emm.EmpID);
                        else
                            NoRoutePeoples.Add(emm.EmpName);
                        //this.MapGis.SetPaintMover(emm.EmpID);
                        f.PgbWait.Value += step;
                    }
                    if (NoRoutePeoples.Count == 0 && EmpMoverList.Count != 0)
                    {
                        //this.MapGis.StartMoving();
                        //this.btnHistoryRoute.Enabled = false;
                        MapgisStartMoving();
                    }
                    else
                    {
                        if (NoRoutePeoples.Count == EmpMoverList.Count)
                        {
                            MessageBox.Show("选择的人员均没有可播放的历史轨迹!", "提示", MessageBoxButtons.OK);
                            SetHistoryBtnEnabel(true);
                        }
                        else
                        {
                            string message = string.Empty;
                            for (int i = 0; i < NoRoutePeoples.Count; i++)
                            {
                                if (i == 0)
                                    message = NoRoutePeoples[i];
                                else
                                    message = message + "," + NoRoutePeoples[i];
                            }
                            if (message.Length > 0)
                                message.Remove(message.Length - 2);
                            MessageBox.Show(message + "等人员没有可播放的历史轨迹!", "提示", MessageBoxButtons.OK);
                            MapgisStartMoving();
                        }
                    }
                    #endregion
                }
                else
                {
                    #region[班次选择]
                    foreach (EmpMoverModel emm in EmpMoverList)
                    {
                        f.Refresh();
                        //List<string> list = dpicbll.GetRouteInfoByEmpID(emm.EmpID, dtpban.Value.ToString("yyyy-MM-dd 00:00:00"), dtpban.Value.ToString("yyyy-MM-dd 23:59:59"), int.Parse(FileID));

                        strOutMessage = string.Empty;
                        List<string> list = dpicbll.GetRouteInfoByEmpID(emm.EmpID, dtpban.Value.ToString("yyyy-MM-dd 00:00:00"), dtpban.Value.ToString("yyyy-MM-dd 23:59:59"), int.Parse(FileID),out strOutMessage);
                        if (list != null && list.Count >= 5)
                            this.MapGis.AddMover(list[0], list[1], list[2], list[3], list[4], MoverZFilePath, MoverFFilePath, emm.EmpID);
                        else
                            NoRoutePeoples.Add(emm.EmpName);
                        f.PgbWait.Value += step;
                    }
                    if (NoRoutePeoples.Count == 0)
                    {
                        MapgisStartMoving();
                    }
                    else
                    {
                        if (NoRoutePeoples.Count == EmpMoverList.Count)
                        {
                            MessageBox.Show("选择的所有人员均没有可播放的历史轨迹!", "提示", MessageBoxButtons.OK);
                            SetHistoryBtnEnabel(true);
                        }
                        else
                        {
                            string message = string.Empty;
                            foreach (string str in NoRoutePeoples)
                            {
                                message = message + str + ",";
                            }
                            if (message.Length > 0)
                                message.Remove(message.Length - 1);
                            MessageBox.Show(message + "等人员没有可播放的历史轨迹!", "提示", MessageBoxButtons.OK);
                            MapgisStartMoving();
                        }
                    }
                    #endregion
                }
                f.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("历史轨迹生成失败!", "提示", MessageBoxButtons.OK);
                SetHistoryBtnEnabel(true);
            }
            finally
            {
                NoRoutePeoples.Clear();
                System.Threading.Thread.CurrentThread.Abort();
            }
        }