示例#1
0
        public FormMain()
        {
            string strNameFileINI = string.Empty;

            createHCmdArg(Environment.GetCommandLineArgs(), ref strNameFileINI);

            InitializeComponent();

            m_formWait = FormWait.This;

            m_handler = new HHandlerQueue(strNameFileINI);
            m_handler.Start();
            m_handler.Activate(true);

            m_panelWork   = new PanelWork(); m_panelWork.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelWork); m_panelWork.Start();
            m_panelConfig = new PanelConfig(); m_panelConfig.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelConfig); m_panelConfig.Start();

            работаToolStripMenuItem.CheckOnClick           =
                конфигурацияToolStripMenuItem.CheckOnClick =
                    true;

            работаToolStripMenuItem.CheckStateChanged       += new EventHandler(работаToolStripMenuItem_CheckStateChanged);
            конфигурацияToolStripMenuItem.CheckStateChanged += new EventHandler(конфигурацияToolStripMenuItem_CheckStateChanged);

            m_TabCtrl.EventHTabCtrlExClose += new HTabCtrlEx.DelegateHTabCtrlEx(onCloseTabPage);
        }
示例#2
0
        ///
        /// danasa 9-2010
        private void onCloseEmpresas(object sender, EventArgs e)
        {
            /// danasa 20-9-2010
            FormWait fw = new FormWait();

            this.Cursor = Cursors.WaitCursor;
            try
            {
                fw.Show();
                fw.DisplayMessage("Parando os serviços");
                this.PararServicos();
                fw.DisplayMessage("Lendo as empresas");
                Empresa.CarregaConfiguracao();
                fw.DisplayMessage("Iniciando os serviços");
                this.ExecutaServicos();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                fw.Dispose();
                this.Cursor = Cursors.Default;
            }
        }
示例#3
0
        public FormMain()
        {
            string strNameFileINI = string.Empty;

            createHCmdArg(Environment.GetCommandLineArgs(), ref strNameFileINI);

            InitializeComponent();

            m_formWait = FormWait.This;

            _statePanelWork = PanelWork.STATE.Unknown;

            //// настраиваемые параметры манагера состояний объектов
            //HHandlerQueue.MSEC_TIMERFUNC_UPDATE = 1006;
            //HHandlerQueue.MSEC_CONFIRM_WAIT = 6666;
            m_handler = new HHandlerQueue(strNameFileINI);
            m_handler.EventInteraction += new DelegateObjectFunc(onEventInteraction);
            m_handler.Start(); m_handler.Activate(true);
            //m_handler.EventCrashed += new HHandlerQueue.EventHandlerCrashed(onCrashed);

            m_panelWork   = new PanelWork(); m_panelWork.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelWork);
            m_panelConfig = new PanelConfig(); m_panelConfig.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelConfig);
            //m_handler.Push();
            m_panelCS = new PanelClientServer(new PanelClientServer.InteractionParameters(
                                                  //@"NE2844, NE3336"
                                                  //, @"MainPipe"
                                                  )); m_panelCS.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelCS);
            // автоматическое изменение состояния п.меню
            работаToolStripMenuItem.CheckOnClick                 =
                конфигурацияToolStripMenuItem.CheckOnClick       =
                    взаимодействиеToolStripMenuItem.CheckOnClick =
                        true;
            // п.п.меню заблокированы - изменение состояния только программно
            //взаимодействиеToolStripMenuItem.CheckStateChanged += new EventHandler(взаимодействиеToolStripMenuItem_CheckStateChanged);
            //работаToolStripMenuItem.CheckStateChanged += new EventHandler(работаToolStripMenuItem_CheckStateChanged);
            конфигурацияToolStripMenuItem.CheckStateChanged += new EventHandler(конфигурацияToolStripMenuItem_CheckStateChanged);

            m_TabCtrl.EventHTabCtrlExClose += new HTabCtrlEx.DelegateHTabCtrlEx(onCloseTabPage);

            switch (s_state_execute)
            {
            case STATE_EXECUTE.MINIMIZE:
                Message msg = new Message();
                msg.Msg    = 0x112;
                msg.WParam = (IntPtr)(0xF020);
                WndProc(ref msg);
                break;

            case STATE_EXECUTE.NORMALIZE:
                this.OnMaximumSizeChanged(null);
                break;
            }
        }
示例#4
0
        public void GameStart(bool breakloop)
        {
            noOfCycles = int.Parse(textBoxInput.Text);

            if (!checkBoxMaxSpeed.Checked)
            {
                timerRun.Start();
            }
            else
            {
                var t = Task.Run(() =>
                {
                    var fw = new FormWait();

                    var tw = Task.Run(() =>
                    {
                        this.Invoke((MethodInvoker) delegate
                        {
                            fw.ShowDialog(this);
                        });
                    });

                    CycleValue = 0;
                    while (CycleValue < noOfCycles && buttonStartStop.Text == "Stop")
                    {
                        this.Invoke((MethodInvoker) delegate
                        {
                            if (fw.getState() == false && CycleValue < noOfCycles)
                            {
                                buttonStartStop.Text    = "Continue";
                                buttonRandomise.Enabled = true;
                                buttonReset.Enabled     = true;
                            }

                            gm.NextState();
                            CycleValue++;
                            if (CycleValue == noOfCycles)
                            {
                                buttonStartStop.Text    = "Start";
                                buttonRandomise.Enabled = true;
                                buttonReset.Enabled     = true;
                            }
                        });
                    }
                    this.Invoke((MethodInvoker) delegate
                    {
                        fw.Close();
                    });
                });
            }
        }
示例#5
0
        public FormMain()
        {
            string strNameFileINI = string.Empty;

            createHCmdArg(Environment.GetCommandLineArgs(), ref strNameFileINI);

            InitializeComponent();

            m_formWait = FormWait.This;

            //// настраиваемые параметры манагера состояний объектов
            //HHandlerQueue.MSEC_TIMERFUNC_UPDATE = 1006;
            //HHandlerQueue.MSEC_CONFIRM_WAIT = 6666;
            m_handler = new HHandlerQueue(strNameFileINI);
            m_handler.Start(); m_handler.Activate(true);
            //m_handler.EventCrashed += new HHandlerQueue.EventHandlerCrashed(onCrashed);

            m_panelWork   = new PanelWork(); m_panelWork.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelWork); m_panelWork.Start();
            m_panelConfig = new PanelConfig(); m_panelConfig.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelConfig); m_panelConfig.Start();
            m_panelCS     = new PanelClienServer(new string[] {
                //"NE2844", "NE3336",
                "NE3963"
                , "ITC563"
                //,"VNE3963"
            }); m_panelCS.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelCS); m_panelCS.Start();

            работаToolStripMenuItem.CheckOnClick                 =
                конфигурацияToolStripMenuItem.CheckOnClick       =
                    взаимодействиеToolStripMenuItem.CheckOnClick =
                        true;

            взаимодействиеToolStripMenuItem.CheckStateChanged += new EventHandler(взаимодействиеToolStripMenuItem_CheckStateChanged);
            работаToolStripMenuItem.CheckStateChanged         += new EventHandler(работаToolStripMenuItem_CheckStateChanged);
            конфигурацияToolStripMenuItem.CheckStateChanged   += new EventHandler(конфигурацияToolStripMenuItem_CheckStateChanged);

            m_TabCtrl.EventHTabCtrlExClose += new HTabCtrlEx.DelegateHTabCtrlEx(onCloseTabPage);

            switch (s_state_execute)
            {
            case STATE_EXECUTE.MINIMIZE:
                Message msg = new Message();
                msg.Msg    = 0x112;
                msg.WParam = (IntPtr)(0xF020);
                WndProc(ref msg);
                break;

            case STATE_EXECUTE.NORMALIZE:
                this.OnMaximumSizeChanged(null);
                break;
            }
        }
 public void makeTable()
 {
     backgroudWoker                            = new BackgroundWorker();
     backgroudWoker.DoWork                    += new DoWorkEventHandler(makeTableDoWork);
     backgroudWoker.RunWorkerCompleted        += new RunWorkerCompletedEventHandler(makeTableRunWorkerCompletedEventHandler);
     backgroudWoker.WorkerSupportsCancellation = true;
     formWait = new FormWait();
     formWait.end("");
     formWait.setLabel("Please wait while parsing tables");
     formWait.setStyle(ProgressBarStyle.Marquee);
     formWait.FormClosing += new FormClosingEventHandler(waitFormClosingEventHandler);
     backgroudWoker.RunWorkerAsync();
     formWait.ShowDialog();
 }
示例#7
0
        /// <summary>
        /// Конструктор - основной (без аргументов)
        /// </summary>
        public FormMain()
            : base(@"IconMainULoader")
        {
            //Logging.Logg().Debug(string.Format(@"FormMain::ctor() - вХод, IsNormalized={0} ...", HCmd_Arg.IsNormalized), Logging.INDEX_MESSAGE.NOT_SET);

            loggingLinkId();

            InitializeComponent();

            if (HCmd_Arg.IsNormalized == true)
            {
                m_formWait = FormWait.This;
            }
            else
            {
                ;
            }

            _statePanelWork = PanelWork.STATE.Unknown;

            //// настраиваемые параметры манагера состояний объектов
            //HHandlerQueue.MSEC_TIMERFUNC_UPDATE = 1006;
            //HHandlerQueue.MSEC_CONFIRM_WAIT = 6666;
            createHandlerQueue(typeof(HHandlerQueue));
            Handler.EventInteraction += new DelegateObjectFunc(onEventInteraction);
            m_handler.Start(); m_handler.Activate(true);
            //m_handler.EventCrashed += new HHandlerQueue.EventHandlerCrashed(onCrashed);

            m_panelWork   = new PanelWork(); m_panelWork.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelWork);
            m_panelConfig = new PanelConfig(); m_panelConfig.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelConfig);
            //m_handler.Push();
            m_panelCS = new PanelClientServer(new PanelClientServer.InteractionParameters(
                                                  //@"NE2844, NE3336"
                                                  //, @"MainPipe"
                                                  )); m_panelCS.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelCS);
            // автоматическое изменение состояния п.меню
            работаToolStripMenuItem.CheckOnClick                 =
                конфигурацияToolStripMenuItem.CheckOnClick       =
                    взаимодействиеToolStripMenuItem.CheckOnClick =
                        true;
            // п.п.меню заблокированы - изменение состояния только программно
            //взаимодействиеToolStripMenuItem.CheckStateChanged += new EventHandler(взаимодействиеToolStripMenuItem_CheckStateChanged);
            //работаToolStripMenuItem.CheckStateChanged += new EventHandler(работаToolStripMenuItem_CheckStateChanged);
            конфигурацияToolStripMenuItem.CheckStateChanged += new EventHandler(конфигурацияToolStripMenuItem_CheckStateChanged);

            m_TabCtrl.EventHTabCtrlExClose += new HTabCtrlEx.DelegateHTabCtrlEx(onCloseTabPage);

            //Logging.Logg().Debug(string.Format(@"FormMain::ctor() - вЫХод ..."), Logging.INDEX_MESSAGE.NOT_SET);
        }
 public void parseRecord(Table table, bool status)
 {
     isSaveData                                = false;
     isReadData                                = true;
     backgroudWoker                            = new BackgroundWorker();
     backgroudWoker.DoWork                    += new DoWorkEventHandler(readRecordsDoWork);
     backgroudWoker.RunWorkerCompleted        += new RunWorkerCompletedEventHandler(readRecordsRunWorkerCompletedEventHandler);
     backgroudWoker.WorkerSupportsCancellation = true;
     formWait = new FormWait();
     formWait.setStyle(ProgressBarStyle.Blocks);
     formWait.setLabel("Please wait while loading records");
     formWait.FormClosing += new FormClosingEventHandler(waitFormClosingEventHandler);
     backgroudWoker.RunWorkerAsync(new Tuple <Table, bool>(table, status));
     formWait.ShowDialog();
 }
        public void saveData(FormSave formSave, Table table, Boolean status)
        {
            isSaveData                                = true;
            isReadData                                = false;
            this.formSave                             = formSave;
            backgroudWoker                            = new BackgroundWorker();
            backgroudWoker.DoWork                    += new DoWorkEventHandler(readRecordsDoWork);
            backgroudWoker.RunWorkerCompleted        += new RunWorkerCompletedEventHandler(saveRunWorkerCompletedEventHandler);
            backgroudWoker.WorkerSupportsCancellation = true;

            var tableData = new Tuple <Table, Boolean>(table, status);

            backgroudWoker.RunWorkerAsync(tableData);
            formWait              = new FormWait();
            formWait.FormClosing += new FormClosingEventHandler(waitFormClosingEventHandler);
            formWait.ShowDialog();
        }
示例#10
0
        ///
        /// danasa 9-2010
        private void onCloseConfiguracao(object sender, EventArgs e)
        {
            /// danasa 20-9-2010
            FormWait fw = new FormWait();

            this.Cursor = Cursors.WaitCursor;
            try
            {
                fw.Show();
                fw.DisplayMessage("Parando os serviços");
                this.PararServicos();
                fw.DisplayMessage("Iniciando os serviços");
                this.ExecutaServicos();
            }
            finally
            {
                this.Cursor = Cursors.Default;
                fw.Dispose();
            }
        }
示例#11
0
        public FormMain()
        {
            InitializeComponent();

            m_formWait = FormWait.This;

            m_handler = new HHandlerQueue();
            m_handler.Start(); m_handler.Activate(true);

            m_panelWork   = new PanelWork(); m_panelWork.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelWork); m_panelWork.Start();
            m_panelConfig = new PanelConfig(); m_panelConfig.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelConfig); m_panelConfig.Start();

            работаToolStripMenuItem.CheckOnClick           =
                конфигурацияToolStripMenuItem.CheckOnClick =
                    true;

            работаToolStripMenuItem.CheckStateChanged       += new EventHandler(работаToolStripMenuItem_CheckStateChanged);
            конфигурацияToolStripMenuItem.CheckStateChanged += new EventHandler(конфигурацияToolStripMenuItem_CheckStateChanged);

            m_TabCtrl.EventHTabCtrlExClose += new HTabCtrlEx.DelegateHTabCtrlEx(onCloseTabPage);
        }
示例#12
0
        public FormMain()
        {
            string strNameFileINI = string.Empty;

            createHCmdArg(Environment.GetCommandLineArgs(), ref strNameFileINI);

            InitializeComponent();

            m_formWait = FormWait.This;

            m_handler = new HHandlerQueue(strNameFileINI);
            m_handler.Start();
            m_handler.Activate(true);

            m_panelWork   = new PanelWork(); m_panelWork.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelWork); m_panelWork.Start();
            m_panelConfig = new PanelConfig(); m_panelConfig.EvtDataAskedHost += new DelegateObjectFunc(OnEvtDataAskedFormMain_PanelConfig); m_panelConfig.Start();

            работаToolStripMenuItem.CheckOnClick           =
                конфигурацияToolStripMenuItem.CheckOnClick =
                    true;

            работаToolStripMenuItem.CheckStateChanged       += new EventHandler(работаToolStripMenuItem_CheckStateChanged);
            конфигурацияToolStripMenuItem.CheckStateChanged += new EventHandler(конфигурацияToolStripMenuItem_CheckStateChanged);

            m_TabCtrl.EventHTabCtrlExClose += new HTabCtrlEx.DelegateHTabCtrlEx(onCloseTabPage);

            switch (m_state_execute)
            {
            case STATE_EXECUTE.MINIMIZE:
                Message msg = new Message();
                msg.Msg    = 0x112;
                msg.WParam = (IntPtr)(0xF020);
                WndProc(ref msg);
                break;

            case STATE_EXECUTE.NORMALIZE:
                this.OnMaximumSizeChanged(null);
                break;
            }
        }
示例#13
0
        private void tbRestartServico_Click(object sender, EventArgs e)
        {
            FormWait fw = new FormWait();

            fw.Show();
            try
            {
                fw.DisplayMessage("Reiniciando o serviço do UniNFe");
                ServiceProcess.RestartService(srvName, 40000);
                this.updateControleDoServico();
                fw.StopMarquee();
                MessageBox.Show("Serviço do UniNFe reiniciado com sucesso!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                fw.Dispose();
            }
        }
示例#14
0
        //protected override ResultStatus Run(PokeBall args)
        //{
        //    this.BeginInvoke(new MethodInvoker(() => {
        //        args.GridControlMain = gcMain;
        //        args.GridControlSecond = gcLogsp;
        //        args.OcfDate = txtOcfDate.DateTimeValue;
        //        args.OcfType = OCF_TYPE;
        //    }));

        //    ResultStatus result = base.RunAsync(args);

        //    return result;
        //}

        /// <summary>
        /// 1系列功能使用
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        protected override ResultStatus Run(PokeBall args)
        {
            DateTime OcfDate = txtOcfDate.DateTimeValue;

            this.Invoke(new MethodInvoker(() => {
                FormWait formWait = new FormWait();

                SplashScreenManager.ShowForm(this, typeof(FormWait), true, true);

                //SplashScreenManager.ShowForm(this , typeof(FormWait) , true , true , SplashFormStartPosition.Manual , pointWait , ParentFormState.Locked);
            }));

            GridView gv = gvMain;


            DataTable dtLOGSPForRuned = servicePrefix1.ListLogspForRunned(OcfDate, _ProgramID, OCF_TYPE);
            DataView  dvLOGSPForRuned = new DataView(dtLOGSPForRuned);



            servicePrefix1.SetTXF1(" ", _ProgramID);

            for (int i = 0; i < gv.RowCount; i++)
            {
                string TXF_SERVER   = gv.GetRowCellValue(i, "TXF_SERVER").AsString();
                string TXF_DB       = gv.GetRowCellValue(i, "TXF_DB").AsString();
                string TXF_TXN_ID   = gv.GetRowCellValue(i, "TXF_TXN_ID").AsString();
                int    TXF_SEQ_NO   = gv.GetRowCellValue(i, "TXF_SEQ_NO").AsInt();
                string TXF_TYPE     = gv.GetRowCellValue(i, "TXF_TYPE").AsString();
                string TXF_TID      = gv.GetRowCellValue(i, "TXF_TID").AsString();
                string TXF_TID_NAME = gv.GetRowCellValue(i, "TXF_TID_NAME").AsString();
                string TXF_DESC     = gv.GetRowCellValue(i, "TXF_DESC").AsString();
                string TXF_DEFAULT  = gv.GetRowCellValue(i, "TXF_DEFAULT").AsString();
                string TXF_REDO     = gv.GetRowCellValue(i, "TXF_REDO").AsString();
                string TXF_ARG      = gv.GetRowCellValue(i, "TXF_ARG").AsString();
                string TXF_PERIOD   = gv.GetRowCellValue(i, "TXF_PERIOD").AsString();
                string TXF_SERVICE  = gv.GetRowCellValue(i, "TXF_SERVICE").AsString();
                string TXF_FOLDER   = gv.GetRowCellValue(i, "TXF_FOLDER").AsString();
                string TXF_AP_NAME  = gv.GetRowCellValue(i, "TXF_AP_NAME").AsString();
                args.TXF_TID      = TXF_TID;
                args.TXF_TID_NAME = TXF_TID_NAME;

                if (TXF_DEFAULT == "1")
                {
                    DateTime LOGSP_DATE       = OcfDate;
                    string   LOGSP_TXN_ID     = _ProgramID;
                    int      LOGSP_SEQ_NO     = TXF_SEQ_NO;
                    string   LOGSP_TID        = TXF_DESC;
                    string   LOGSP_TID_NAME   = TXF_TID_NAME;
                    DateTime LOGSP_BEGIN_TIME = new DateTime();
                    DateTime LOGSP_END_TIME   = new DateTime();
                    string   LOGSP_MSG        = "";


                    //判斷是否可重覆執行
                    if (TXF_REDO == "N")
                    {
                        dvLOGSPForRuned.RowFilter = "LOGSP_TID='" + LOGSP_TID + "' AND NOT ISNULL(LOGSP_BEGIN_TIME)";
                        if (dvLOGSPForRuned.Count != 0)
                        {
                            if (MessageDisplay.Choose(TXF_TID + " ★★★曾經執行過且不可重覆執行,是否強迫繼續執行 ?") == DialogResult.No)
                            {
                                return(ResultStatus.Fail);
                            }
                        }
                    }


                    #region 開始執行
                    LOGSP_BEGIN_TIME = DateTime.Now;

                    string nextYmd = PbFunc.f_ocf_date(2, _DB_TYPE);
                    if (!string.IsNullOrEmpty(TXF_PERIOD))
                    {
                        switch (TXF_PERIOD)
                        {
                        case "M":    //月底執行
                            if (OcfDate.ToString("yyyyMM") == PbFunc.Left(nextYmd, 6))
                            {
                                LOGSP_MSG = "完成! (今日非月底,不需執行)";
                                this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "TXF_DEFAULT", 0); }));
                            }
                            break;

                        case "W":    //週最後一天執行
                            if (Convert.ToInt32(OcfDate.DayOfWeek) < Convert.ToInt32(nextYmd.AsDateTime("yyyyMMdd").DayOfWeek))
                            {
                                LOGSP_MSG = "完成! (今日非本週最後1天,不需執行)";
                                this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "TXF_DEFAULT", 0); }));
                            }
                            break;

                        case "Y":    //年底執行
                            if (OcfDate.ToString("yyyy") == PbFunc.Left(nextYmd, 4))
                            {
                                LOGSP_MSG = "完成! (今日非本年度最後1日,不需執行)";
                                this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "TXF_DEFAULT", 0); }));
                            }
                            break;
                        }
                        LOGSP_END_TIME = DateTime.Now;

                        servicePrefix1.SaveLogsp(LOGSP_DATE, LOGSP_TXN_ID, LOGSP_SEQ_NO, LOGSP_TID, LOGSP_TID_NAME, LOGSP_BEGIN_TIME, LOGSP_END_TIME, LOGSP_MSG, OCF_TYPE);
                        continue;
                    }


                    //開始前執行特別的Function
                    string rtnText = RunBeforeEveryItem(args);
                    if (!string.IsNullOrEmpty(rtnText))
                    {
                        if (PbFunc.Left(rtnText, 4) == "不需執行")
                        {
                            LOGSP_MSG = "完成! (" + rtnText + ")";
                            gv.SetRowCellValue(i, "ERR_MSG", LOGSP_MSG);
                            gv.SetRowCellValue(i, "TXF_DEFAULT", 0);
                            LOGSP_END_TIME = DateTime.Now;

                            servicePrefix1.SaveLogsp(LOGSP_DATE, LOGSP_TXN_ID, LOGSP_SEQ_NO, LOGSP_TID, LOGSP_TID_NAME, LOGSP_BEGIN_TIME, LOGSP_END_TIME, LOGSP_MSG, OCF_TYPE);
                        }
                        else
                        {
                            if (MessageDisplay.Choose($"{rtnText}是否強迫繼續執行?", MessageBoxDefaultButton.Button2).AsInt() == 2)
                            {
                                gv.SetRowCellValue(i, "ERR_MSG", rtnText);
                                continue;
                            }
                        }
                    }

                    //記錄正在執行
                    servicePrefix1.SetTXF1(TXF_TID, _ProgramID);

                    servicePrefix1.SaveLogs(LOGSP_DATE, TXF_TID, DateTime.Now, GlobalInfo.USER_ID, "開始執行");

                    ResultData resultData = new ResultData();
                    string     fileName   = "";
                    switch (TXF_TYPE)
                    {
                    //Informatica
                    case "I":
                        fileName   = $@"{GlobalInfo.DEFAULT_BATCH_ErrSP_DIRECTORY_PATH}\{TXF_SERVER}_{TXF_TXN_ID}_{TXF_SEQ_NO}_infor";
                        resultData = serviceCommon.ExecuteInfoWorkFlow(TXF_TID, UserProgInfo, TXF_FOLDER, TXF_SERVICE, TXF_AP_NAME, fileName);
                        break;

                    //SP
                    case "S":
                        List <DbParameterEx> listParams = null;

                        // 如果這個SP有參數的話
                        if (TXF_ARG == "Y")
                        {
                            DataTable dtTXFPARM = serviceCommon.ListTXFPARM(TXF_SERVER, TXF_DB, TXF_TXN_ID, TXF_TID);

                            if (dtTXFPARM.Rows.Count > 0)
                            {
                                listParams = new List <DbParameterEx>();
                            }

                            foreach (DataRow row in dtTXFPARM.Rows)
                            {
                                string TXFPARM_ARG      = row["TXFPARM_ARG"].AsString();
                                string TXFPARM_ARG_TYPE = row["TXFPARM_ARG_TYPE"].AsString();
                                string TXFPARM_DEFAULT  = row["TXFPARM_DEFAULT"].AsString();

                                DbParameterEx paramEx;

                                switch (TXFPARM_ARG)
                                {
                                case "":
                                    paramEx = new DbParameterEx("", TXFPARM_DEFAULT);
                                    listParams.Add(paramEx);
                                    break;

                                case "em_ymd":
                                    paramEx = new DbParameterEx("", OcfDate.ToString("yyyyMMdd"));
                                    listParams.Add(paramEx);
                                    break;

                                case "em_ym":
                                    paramEx = new DbParameterEx("", OcfDate.ToString("yyyyMM"));
                                    listParams.Add(paramEx);
                                    break;

                                case "em_date":
                                    paramEx        = new DbParameterEx();
                                    paramEx.DbType = DbTypeEx.Date;
                                    paramEx.Name   = "";
                                    paramEx.Value  = OcfDate;
                                    listParams.Add(paramEx);
                                    break;

                                default:
                                    break;
                                }
                            }
                        }

                        ConnectionInfo connectionInfo = SettingDragons.Instance.GetConnectionInfo(TXF_DB);

                        try
                        {
                            resultData = serviceCommon.ExecuteStoredProcedure(connectionInfo, string.Format("{0}.{1}", TXF_DB, TXF_TID), listParams, true);
                        }
                        catch (Exception ex)
                        {
                            resultData.Status = ResultStatus.Fail;
                            string msg =
                                fileName = $@"{GlobalInfo.DEFAULT_BATCH_ErrSP_DIRECTORY_PATH}\{TXF_SERVER}_{TXF_TXN_ID}_{TXF_SEQ_NO}.err";
                            System.IO.File.WriteAllText(fileName, ex.Message);
                            resultData.returnString = $"請通知「{TXF_AP_NAME}」 作業執行失敗!\n{ex.Message}";
                        }

                        break;

                    //視窗功能
                    case "W":
                        this.Invoke(new MethodInvoker(() => { resultData = ExecuteForm(args); }));

                        break;

                    default:
                        break;
                    }

                    LOGSP_END_TIME = DateTime.Now;

                    if (resultData.Status == ResultStatus.Success)
                    {
                        LOGSP_MSG = "執行正常完成!";
                    }
                    else
                    {
                        LOGSP_MSG = "作業執行失敗!";

                        servicePrefix1.SaveLogsp(LOGSP_DATE, LOGSP_TXN_ID, LOGSP_SEQ_NO, LOGSP_TID, LOGSP_TID_NAME, LOGSP_BEGIN_TIME, LOGSP_END_TIME, LOGSP_MSG, OCF_TYPE);

                        //MessageDisplay.Error("序號" + LOGSP_SEQ_NO + "的" + LOGSP_TID + "," + LOGSP_MSG);
                        MessageDisplay.Error(resultData.returnString);

                        this.Invoke(new MethodInvoker(() => {
                            SplashScreenManager.CloseForm();
                            gv.SetRowCellValue(i, "ERR_MSG", LOGSP_MSG);
                        }));

                        return(ResultStatus.Fail);
                    }

                    this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "ERR_MSG", LOGSP_MSG); }));

                    servicePrefix1.SaveLogsp(LOGSP_DATE, LOGSP_TXN_ID, LOGSP_SEQ_NO, LOGSP_TID, LOGSP_TID_NAME, LOGSP_BEGIN_TIME, LOGSP_END_TIME, LOGSP_MSG, OCF_TYPE);
                    servicePrefix1.SaveLogs(LOGSP_DATE, TXF_TID, DateTime.Now, GlobalInfo.USER_ID, "執行完畢");

                    #endregion 開始執行


                    #region 執行特別的程式


                    this.Invoke(new MethodInvoker(() => {
                        gv.SetRowCellValue(i, "TXF_DEFAULT", 0);
                        RunAfterEveryItem(args);
                    }));

                    #endregion 執行特別的程式

                    //流程時間控制
                    DataTable dtJRF = servicePrefix1.ListJrf(_ProgramID, TXF_TID);
                    if (dtJRF.Rows.Count > 0)
                    {
                        string JRF_DO_TXN_ID   = dtJRF.Rows[0]["JRF_DO_TXN_ID"].AsString();
                        string JRF_DO_JOB_TYPE = dtJRF.Rows[0]["JRF_DO_TXN_ID"].AsString();
                        string JRF_DO_SEQ_NO   = dtJRF.Rows[0]["JRF_DO_TXN_ID"].AsString();
                        string JRF_SW_CODE     = dtJRF.Rows[0]["JRF_DO_TXN_ID"].AsString();
                        servicePrefix1.UpdateJsw(JRF_DO_TXN_ID, JRF_DO_JOB_TYPE, JRF_DO_SEQ_NO, JRF_SW_CODE, OcfDate, DateTime.Now, GlobalInfo.USER_ID);
                    }
                }
                else
                {
                    // 沒勾選項目的話清空狀態
                    this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "ERR_MSG", ""); }));
                }
                if (i == gv.RowCount - 1 && OCF_TYPE == "D")
                {
                    servicePrefix1.setCIOCF();
                }
            }


            //全部結束
            servicePrefix1.SetTXF1(" ", _ProgramID);

            this.Invoke(new MethodInvoker(() => { SplashScreenManager.CloseForm(); }));

            return(ResultStatus.Success);
        }