private bool LoadReportWeight()
        {
            bool vRet = false;

            Thread.Sleep(2000);
            PrintGovProjectAttach();
            //if (CheckPrinterOnline(out_PrinterName))
            //{
            string strSQL = "select t.*" +
                            " from rpt.VIEW_DELIV_HEADER t " +     //VIEW_DATA_WEIGHT
                            " where t.LOAD_HEADER_NO=" + LoadHeader_NO;

            DataSet   vDataset = null;
            DataTable dt;

            try
            {
                if (fMain.OraDb.OpenDyns(strSQL, "VIEW_DELIV_HEADER", ref vDataset))
                {
                    dt = vDataset.Tables["VIEW_DELIV_HEADER"];
                    if (dt != null && dt.Rows.Count != 0)
                    {
                        ReportDocument cr         = new ReportDocument();
                        string         reportPath = fMain.App_Path + "\\Report File\\" + out_ReportPath;
                        RaiseEvents(reportPath);
                        if (!File.Exists(reportPath))
                        {
                            fMain.AddListBox = "The specified report does not exist.";
                        }
                        Application.DoEvents();
                        cr.Load(reportPath);
                        cr.Database.Tables["VIEW_DELIV_HEADER"].SetDataSource((DataTable)dt);
                        cr.SetDatabaseLogon("tas", "tam");
                        //cr.SetDataSource((DataTable)dt);
                        cr.SetParameterValue(out_Parametername, LoadHeader_NO);
                        cr.PrintOptions.PrinterName = out_PrinterName;
                        cr.PrintToPrinter(1, false, 0, 0);
                        cr.Dispose();
                        RaiseEvents("Print Report Loading NO " + LoadHeader_NO);
                        RaiseEvents(reportPath);
                        vRet = true;
                    }
                }

                Thread.Sleep(2000);
            }
            catch (Exception exp)
            {
                RaiseEvents("[Print Loading, Load data report] " + exp.Message);
                PrintStepProcessWeight = _PrintStepProcessWeight.InitialReport;
            }
            vDataset = null;
            dt       = null;
            // }
            return(vRet);
        }
        private void  PrintGovProjectAttach()//ปริ้นเอกสารแแนบกรมทาง
        {
            DataSet   DatasetGov = null;
            DataTable dtGov;
            string    vCheck;
            //Thread.Sleep(1000);
            string strSQLGov = "select t.*" +
                               " from RPT.DAILY_LOADING_DETAIL  t " +
                               " where t.LOAD_HEADER_NO=" + LoadHeader_NO;

            if (fMain.OraDb.OpenDyns(strSQLGov, "table_name", ref DatasetGov))
            {
                dtGov  = DatasetGov.Tables["table_name"];
                vCheck = dtGov.Rows[0]["GOV_PROJECT"].ToString();
                if (vCheck.Equals("1"))
                {
                    //if (CheckPrinterOnline(out_PrinterNameGovProject))
                    ////{
                    string strSQL = "select t.*" +
                                    " from rpt.VIEW_GOV_PROJECT_ATTACHAS t " +
                                    " where t.LOAD_HEADER_NO=" + LoadHeader_NO;
                    DataSet   vDataset = null;
                    DataTable dt;
                    try
                    {
                        if (fMain.OraDb.OpenDyns(strSQL, "VIEW_GOV_PROJECT_ATTACHAS", ref vDataset))
                        {
                            dt = vDataset.Tables["VIEW_GOV_PROJECT_ATTACHAS"];
                            if (dt != null && dt.Rows.Count != 0)
                            {
                                ReportDocument cr         = new ReportDocument();
                                string         reportPath = fMain.App_Path + "\\Report File\\" + out_ReportPathGovProject;
                                RaiseEvents(reportPath);
                                if (!File.Exists(reportPath))
                                {
                                    fMain.AddListBox = "The specified report does not exist.";
                                }
                                Application.DoEvents();
                                cr.Load(reportPath);
                                cr.Database.Tables["VIEW_GOV_PROJECT_ATTACHAS"].SetDataSource((DataTable)dt);
                                cr.SetDatabaseLogon("tas", "tam");
                                cr.SetParameterValue(out_ParameternameGovProject, LoadHeader_NO);
                                cr.PrintOptions.PrinterName = out_PrinterNameGovProject;
                                cr.PrintToPrinter(1, false, 0, 0);
                                cr.Dispose();
                                RaiseEvents("Print เอกสารแนบกรมทาง " + LoadHeader_NO);
                                RaiseEvents(reportPath);
                            }
                        }

                        Thread.Sleep(2000);
                    }
                    catch (Exception exp)
                    {
                        RaiseEvents("[Print เอกสารแนบกรมทาง] " + exp.Message);
                        PrintStepProcessWeight = _PrintStepProcessWeight.InitialReport;
                    }
                    vDataset = null;
                    dt       = null;
                    //}
                }
            }
        }
        private void RunProcess()
        {
            thrRunning             = true;
            thrShutdown            = false;
            PrintStepProcessWeight = _PrintStepProcessWeight.InitialReport;
            chkResponse            = DateTime.Now;
            while (thrRunning)
            {
                try
                {
                    if (thrShutdown)
                    {
                        return;
                    }
                    switch (PrintStepProcessWeight)
                    {
                    case _PrintStepProcessWeight.InitialReport:
                        if (GetConfigReport())
                        {
                            GetConfigReporGovProjectAttach();
                            PrintStepProcessWeight = _PrintStepProcessWeight.CheckStatusReport;
                        }
                        break;

                    case _PrintStepProcessWeight.CheckStatusReport:
                        //if (CheckPrinterOnline(out_PrinterName))
                        if (CheckStatusReport())
                        {
                            PrintStepProcessWeight = _PrintStepProcessWeight.LoadReport;           //connect via Kepware OPC Server
                        }
                        break;

                    case _PrintStepProcessWeight.LoadReport:
                        if (LoadReportWeight())
                        {
                            //PrintGovProjectAttach();
                            UpdateToDatabase(LoadHeader_NO);
                            PrintStepProcessWeight = _PrintStepProcessWeight.ChangeProcess;
                        }
                        else
                        {
                            PrintStepProcessWeight = _PrintStepProcessWeight.CheckStatusReport;
                        }
                        break;
                    //case _PrintStepProcessWeight.UpdateStatus:
                    //    UpdateToDatabase(LoadHeader_NO);

                    //    break;
                    case _PrintStepProcessWeight.ChangeProcess:
                        PrintStepProcessWeight = _PrintStepProcessWeight.CheckStatusReport;
                        break;
                    }
                    Thread.Sleep(1000);
                }
                catch (Exception exp)
                {
                    RaiseEvents(exp.Message + "[source>" + exp.Source + "]");
                    Thread.Sleep(3000);
                }
                //finally
                //{
                //    mShutdown = true;
                //    mRunning = false;
                //}
                Thread.Sleep(500);
            }
        }