using System; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; using System.Threading; using System.IO; using System.Diagnostics; using System.Text.RegularExpressions; namespace AFFICHAGE { public partial class Form1 : Form { //Initialisation chemin connexion base SUIVPRO sur serveur base de test distance) static string SUIVPROString = "Server=ASRVSQLLAB; Database=SUIVPRO; User Id=sa; password= Vendredi@1234"; //Création objet base SUIVPRO SqlConnection Connection = new SqlConnection(SUIVPROString); private TimeSpan temps; private delegate void ChonometreEventHandler(); private event ChonometreEventHandler ChronometreCommence; private string MachineName = "PR150"; private string AppVersion = "2.6.3-"; private string CurrentOF; private string NextOF; private string QTELANCECURANTstr; private string QTELANCENEXTstr; private string MyPDFFileName; private string MyINFOFileName; private string NumeroVersion; private double QTELANCECURANT; private double QTELANCENEXT; private double QTEBONNE; private bool PDFTemp1IsActive; private bool PDFTemp2IsActive; private bool PDFInfoTemp1IsActive; private bool PDFInfoTemp2IsActive; private bool MachineStopped = false; private int BreackState; //0=inconnu, 1=maintenance, 2=standard et 3=en attente //private bool MachineUnknowStopped = false; //private bool MachineMaintenanceStopped = false; //private bool MachineStandardStopped = false; //private bool MachineWaiting = false; private int PreviousState; private int PageCountPDF; private int PageCountINFO; private int NoOfPagesPDF; private int NoOfPagesINFO; //Connexion base SUIVPRO public void DBConnection() { try { //Si OK, connexion Connection.Open(); } catch (Exception ex) { //Sinon, message d'erreur //MessageBox.Show("Erreur de connexion à la base.\n\n" + ex.Message); return; } } //Déconnexion base SUIVPRO private void DBDisconnection() { try { //Si OK, déconnexion Connection.Close(); } catch (Exception ex) { //Sinon, message d'erreur //MessageBox.Show("Erreur de déconnexion de la base.\n\n" + ex.Message); return; } } private void Chronometre() { temps += TimeSpan.FromMilliseconds(1000); ChronoLabel.Text = temps.ToString(); } private void ResearchCurrentOF() { string Request = "SELECT [OF_REFOF] FROM [dbo].[OF] WHERE [OF_EVOLUTION] = 'L' AND [MAC_REFMAC]='" + MachineName + "'"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); CurrentOF = DataReader.GetValue(0).ToString(); } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label (Recherche OF Courrant).\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données (Recherche OF Courrant).\n\n" + ex.ToString()); } finally { command.Dispose(); } } private void ResearchNextOF() { string Request = "SELECT TOP 1 [OF_REFOF] FROM [dbo].[OF] WHERE [OF_EVOLUTION] = 'D' AND [MAC_REFMAC] ='" + MachineName + "' order by OF_RANGOF ASC"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); if (!DataReader.IsDBNull(0)) { NextOF = DataReader.GetValue(0).ToString(); } else { Request = "SELECT TOP 1 [OF_REFOF] FROM [dbo].[OF] WHERE [OF_EVOLUTION] = 'P' AND [MAC_REFMAC] ='" + MachineName + "' order by OF_RANGOF ASC"; try { command.ExecuteNonQuery(); try { DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); NextOF = DataReader.GetValue(0).ToString(); } } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } private void RequestCurrentOF() { string Request = "SELECT [OF_REFOF] FROM [dbo].[OF] WHERE [OF_EVOLUTION] = 'L' AND [MAC_REFMAC]='" + MachineName + "'"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); CurrentOFRef.Text = DataReader.GetValue(0).ToString(); } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } private async void RequestPDF() { ResearchCurrentOF(); string Request = "SELECT [PROD_REFPROD] FROM [dbo].[LIGOF] WHERE [OF_REFOF] ='" + CurrentOF + "'"; SqlCommand command = new SqlCommand(Request, Connection); string PDFDefault = @"\\ASRVSQLLAB\QUALITE\04_Fiche_conditionnement_2017\PDF\defaut.pdf"; try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); string PDFName = @"\\ASRVSQLLAB\QUALITE\04_Fiche_conditionnement_2017\PDF\" + DataReader.GetValue(0).ToString().Substring(0, 9) + ".pdf"; string PDFTemp1 = @"\\ASRVSQLLAB\QUALITE\04_Fiche_conditionnement_2017\PDF\PDFTemp1" + MachineName + ".pdf"; string PDFTemp2 = @"\\ASRVSQLLAB\QUALITE\04_Fiche_conditionnement_2017\PDF\PDFTemp2" + MachineName + ".pdf"; if (!File.Exists(PDFTemp1)) { File.Create(PDFTemp1); } if (!File.Exists(PDFTemp2)) { File.Create(PDFTemp2); } if (File.Exists(PDFName)) { if (PDFTemp1IsActive) { if (AsChanged(PDFName, PDFTemp1)) { File.Copy(PDFName, PDFTemp2, true); webBrowser1.Navigate(PDFTemp2); PDFTemp1IsActive = false; PDFTemp2IsActive = true; } else { if (GetNoOfPagesPDF(PDFTemp1) > 1) { await DelayScrollPDF(); DisplayNextPageWebBrowser1(); } } } else { if (AsChanged(PDFName, PDFTemp2)) { File.Copy(PDFName, PDFTemp1, true); webBrowser1.Navigate(PDFTemp1); PDFTemp1IsActive = true; PDFTemp2IsActive = false; } else { if (GetNoOfPagesPDF(PDFTemp2) > 1) { await DelayScrollPDF(); DisplayNextPageWebBrowser1(); } } } } else { if (PDFTemp1IsActive) { if(AsChanged(PDFDefault, PDFTemp1)) { File.Copy(PDFDefault, PDFTemp2, true); webBrowser1.Navigate(PDFTemp2); PDFTemp1IsActive = false; PDFTemp2IsActive = true; } else { if (GetNoOfPagesPDF(PDFTemp1) > 1) { await DelayScrollPDF(); DisplayNextPageWebBrowser1(); } } } else { if (AsChanged(PDFDefault, PDFTemp2)) { File.Copy(PDFDefault, PDFTemp1, true); webBrowser1.Navigate(PDFTemp1); PDFTemp1IsActive = true; PDFTemp2IsActive = false; } else { if (GetNoOfPagesPDF(PDFTemp2) > 1) { await DelayScrollPDF(); DisplayNextPageWebBrowser1(); } } } } } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } private async void RequestINFO() { ResearchCurrentOF(); string Request = "SELECT [PROD_REFPROD] FROM [dbo].[LIGOF] WHERE [OF_REFOF] ='" + CurrentOF + "'"; SqlCommand command = new SqlCommand(Request, Connection); string PDFInfoDefault = @"\\ASRVSQLLAB\QUALITE\04_Fiche_conditionnement_2017\INFOS\defaut_info.pdf"; try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); string InfoName = @"\\asrvsqllab\qualite\04_fiche_conditionnement_2017\infos\" + DataReader.GetValue(0).ToString().Substring(0, 9) + ".pdf"; string InfoTemp1 = @"\\asrvsqllab\qualite\04_fiche_conditionnement_2017\infos\pdfinfotemp1" + MachineName + ".pdf"; string InfoTemp2 = @"\\ASRVSQLLAB\QUALITE\04_Fiche_conditionnement_2017\INFOS\PDFInfoTemp2" + MachineName + ".pdf"; if (!File.Exists(InfoTemp1)) { File.Create(InfoTemp1); } if (!File.Exists(InfoTemp2)) { File.Create(InfoTemp2); } if (File.Exists(InfoName)) { if (PDFInfoTemp1IsActive) { if (AsChanged(InfoName, InfoTemp1)) { File.Copy(InfoName, InfoTemp2, true); webBrowser2.Navigate(InfoTemp2); PDFInfoTemp1IsActive = false; PDFInfoTemp2IsActive = true; } else { if (GetNoOfPagesPDF(InfoTemp1) > 1) { await DelayScrollPDF(); DisplayNextPageWebBrowser2(); } } } else { if (AsChanged(InfoName, InfoTemp2)) { File.Copy(InfoName, InfoTemp1, true); webBrowser2.Navigate(InfoTemp1); PDFInfoTemp1IsActive = true; PDFInfoTemp2IsActive = false; } else { if (GetNoOfPagesPDF(InfoTemp2) > 1) { await DelayScrollPDF(); DisplayNextPageWebBrowser2(); } } } } else { if (PDFInfoTemp1IsActive) { if (AsChanged(PDFInfoDefault, InfoTemp1)) { File.Copy(PDFInfoDefault, InfoTemp2, true); webBrowser2.Navigate(InfoTemp2); PDFInfoTemp1IsActive = false; PDFInfoTemp2IsActive = true; } else { if (GetNoOfPagesPDF(InfoTemp1) > 1) { await DelayScrollPDF(); DisplayNextPageWebBrowser2(); } } } else { if (AsChanged(PDFInfoDefault, InfoTemp2)) { File.Copy(PDFInfoDefault, InfoTemp1, true); webBrowser2.Navigate(InfoTemp1); PDFInfoTemp1IsActive = true; PDFInfoTemp2IsActive = false; } else { if (GetNoOfPagesPDF(InfoTemp2) > 1) { await DelayScrollPDF(); DisplayNextPageWebBrowser2(); } } } } } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } private void RequestCurrentMold() { ResearchCurrentOF(); string Request = "SELECT [OUT_REFOUT] FROM [dbo].[OF] WHERE [OF_REFOF] ='" + CurrentOF + "'"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); CurrentMoldNumber.Text = DataReader.GetValue(0).ToString(); } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label (Affichage Moule Courant).\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données (Affichage Moule Courant).\n\n" + ex.ToString()); } finally { command.Dispose(); } } private void RequestCurrentArticle() { ResearchCurrentOF(); string Request = "SELECT [PROD_LIBPROD] FROM [dbo].[LIGOF] WHERE [OF_REFOF] ='" + CurrentOF + "'"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); CurrentArticleNumber.Text = DataReader.GetValue(0).ToString(); } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } private void RequestCurrentToDo() { ResearchCurrentOF(); string Request = "SELECT [LIGOF_QTELANCE] FROM [dbo].[LIGOF] WHERE [OF_REFOF] ='" + CurrentOF + "'"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); QTELANCECURANT = (double)DataReader.GetSqlSingle(0); } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } private void RequestCurrentGoodDone() { ResearchCurrentOF(); string Request = "SELECT [LIGOF_QTEBONNE] FROM [dbo].[LIGOF] WHERE [OF_REFOF] ='" + CurrentOF + "'"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); QTEBONNE = (double)DataReader.GetSqlSingle(0); } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } private void RequestNextOF() { string Request = "SELECT TOP 1 [OF_REFOF] FROM [dbo].[OF] WHERE [OF_EVOLUTION] = 'D' AND [MAC_REFMAC] ='" + MachineName + "' order by OF_RANGOF ASC"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); if (!DataReader.IsDBNull(0)) { NextOFNumber.Text = DataReader.GetValue(0).ToString(); } else { Request = "SELECT TOP 1 [OF_REFOF] FROM [dbo].[OF] WHERE [OF_EVOLUTION] = 'P' AND [MAC_REFMAC] ='" + MachineName + "' order by OF_RANGOF ASC"; try { command.ExecuteNonQuery(); try { DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); NextOFNumber.Text = DataReader.GetValue(0).ToString(); } } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } private void RequestNextMold() { ResearchNextOF(); string Request = "SELECT [OUT_REFOUT] FROM [dbo].[OF] WHERE [OF_REFOF] ='" + NextOF + "'"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); NextMoldNumber.Text = DataReader.GetValue(0).ToString(); } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } private void RequestNextArticle() { ResearchNextOF(); string Request = "SELECT [PROD_LIBPROD] FROM [dbo].[LIGOF] WHERE [OF_REFOF] ='" + NextOF + "'"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); NextArticleNumber.Text = DataReader.GetValue(0).ToString(); } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } private void RequestNextToDo() { ResearchCurrentOF(); string Request = "SELECT [LIGOF_QTELANCE] FROM [dbo].[LIGOF] WHERE [OF_REFOF] ='" + NextOF + "'"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); QTELANCENEXT = (double)DataReader.GetSqlSingle(0); } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } private void RequestMachineStopped() { ResearchCurrentOF(); string Request = "SELECT [SAVEGEST_CAUSEARRETCOURANT] FROM [dbo].[SAVEGEST] WHERE [SAVEGEST_REFOF] ='" + CurrentOF + "'"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); if (DataReader.GetInt16(0) != -2) { MachineStopped = true; } else MachineStopped = false; } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label (Affichage Moule Courant).\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données (Affichage Moule Courant).\n\n" + ex.ToString()); } finally { command.Dispose(); } } private void RequestBreackState() { ResearchCurrentOF(); string Request = "SELECT [SAVEGEST_CAUSEARRETCOURANT] FROM [dbo].[SAVEGEST] WHERE [SAVEGEST_REFOF] ='" + CurrentOF + "'"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); switch (DataReader.GetInt16(0)) { case 0: MachineStateLabel.Text = "Panne moule"; BreackState = 2; break; case 1: MachineStateLabel.Text = "Panne machine"; BreackState = 2; break; case 2: MachineStateLabel.Text = "Manque opérateur"; BreackState = 2; break; case 3: MachineStateLabel.Text = "Manque composant"; BreackState = 2; break; case 4: MachineStateLabel.Text = "Changement moule"; BreackState = 1; break; case 5: MachineStateLabel.Text = "Nettoyage moule"; BreackState = 1; break; case 6: MachineStateLabel.Text = "Maintenance"; BreackState = 1; break; case 7: MachineStateLabel.Text = "Manque charge"; BreackState = 3; break; case 8: MachineStateLabel.Text = "Attente qualité"; BreackState = 2; break; case 9: MachineStateLabel.Text = "Essai"; BreackState = 1; break; default: MachineStateLabel.Text = "Arret indeterminé"; BreackState = 0; break; } } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); } finally { command.Dispose(); } } //private void RequestBreackState() { // ResearchCurrentOF(); // string Request = "SELECT [SAVEGEST_CAUSEARRETCOURANT] FROM [dbo].[SAVEGEST] WHERE [SAVEGEST_REFOF] ='" + CurrentOF + "'"; // SqlCommand command = new SqlCommand(Request, Connection); // try { // command.ExecuteNonQuery(); // try { // SqlDataReader DataReader = command.ExecuteReader(); // if (DataReader.HasRows) { // DataReader.Read(); // switch (DataReader.GetInt16(0)) { // case 0: // MachineUnknowStopped = false; // MachineMaintenanceStopped = false; // MachineWaiting = false; // MachineStandardStopped = true; // MachineStateLabel.Text = "Panne moule"; // break; // case 1: // MachineUnknowStopped = false; // MachineMaintenanceStopped = false; // MachineWaiting = false; // MachineStandardStopped = true; // MachineStateLabel.Text = "Panne machine"; // break; // case 2: // MachineUnknowStopped = false; // MachineMaintenanceStopped = false; // MachineWaiting = false; // MachineStandardStopped = true; // MachineStateLabel.Text = "Manque opérateur"; // break; // case 3: // MachineUnknowStopped = false; // MachineMaintenanceStopped = false; // MachineWaiting = false; // MachineStandardStopped = true; // MachineStateLabel.Text = "Manque composant"; // break; // case 4: // MachineUnknowStopped = false; // MachineStandardStopped = false; // MachineWaiting = false; // MachineMaintenanceStopped = true; // MachineStateLabel.Text = "Changement moule"; // break; // case 5: // MachineUnknowStopped = false; // MachineStandardStopped = false; // MachineWaiting = false; // MachineMaintenanceStopped = true; // MachineStateLabel.Text = "Nettoyage moule"; // break; // case 6: // MachineUnknowStopped = false; // MachineStandardStopped = false; // MachineWaiting = false; // MachineMaintenanceStopped = true; // MachineStateLabel.Text = "Maintenance"; // break; // case 7: // MachineUnknowStopped = false; // MachineMaintenanceStopped = false; // MachineStandardStopped = false; // MachineWaiting = true; // MachineStateLabel.Text = "Manque charge"; // break; // case 8: // MachineUnknowStopped = false; // MachineMaintenanceStopped = false; // MachineWaiting = false; // MachineStandardStopped = true; // MachineStateLabel.Text = "Attente qualité"; // break; // case 9: // MachineUnknowStopped = false; // MachineStandardStopped = false; // MachineWaiting = false; // MachineMaintenanceStopped = true; // MachineStateLabel.Text = "Essai"; // break; // default: // MachineMaintenanceStopped = false; // MachineStandardStopped = false; // MachineWaiting = false; // MachineUnknowStopped = true; // MachineStateLabel.Text = "Arret indeterminé"; // break; // } // } // DataReader.Close(); // } catch (Exception ex) { // //MessageBox.Show("Erreur de l'écriture de la valeur dans le label.\n\n" + ex.ToString()); // } // } catch (Exception ex) { // //MessageBox.Show("Erreur de lecture de la base de données.\n\n" + ex.ToString()); // } finally { // command.Dispose(); // } //} private void RequestStateCadence() { ResearchCurrentOF(); string Request = "SELECT [SAVEGEST_ETATPROD] FROM [dbo].[SAVEGEST] WHERE [SAVEGEST_REFOF] ='" + CurrentOF + "'"; SqlCommand command = new SqlCommand(Request, Connection); try { command.ExecuteNonQuery(); try { SqlDataReader DataReader = command.ExecuteReader(); if (DataReader.HasRows) { DataReader.Read(); if (DataReader.GetString(0) == "0" || DataReader.GetString(0) == "2") { this.BackgroundImage = Properties.Resources.Fond_d_écran_Vert_Full_HD; } else if (DataReader.GetString(0) == "1") { this.BackgroundImage = Properties.Resources.Fond_d_écran_Orange_Full_HD; } else { this.BackgroundImage = Properties.Resources.Fond_d_écran_Rouge_Full_HD; } } DataReader.Close(); } catch (Exception ex) { //MessageBox.Show("Erreur de l'écriture de la valeur dans le label (Affichage Moule Courant).\n\n" + ex.ToString()); } } catch (Exception ex) { //MessageBox.Show("Erreur de lecture de la base de données (Affichage Moule Courant).\n\n" + ex.ToString()); } finally { command.Dispose(); } } public bool AsChanged(string PDFName, string PDFTEMPName) { if(DateTime.Compare(File.GetLastWriteTime(PDFName), File.GetLastWriteTime(PDFTEMPName)) != 0) { return true; }else { return false; } } public int GetNoOfPagesPDF(string PDFName) { int Result = 1; try { FileStream MyFileStream = new FileStream(PDFName, FileMode.Open, FileAccess.Read); StreamReader ReadStream = new StreamReader(MyFileStream); string Contents = ReadStream.ReadToEnd(); Regex MyRegex = new Regex(@"/Type\s*/Page[^s]"); MatchCollection MyMatches = MyRegex.Matches(Contents); Result = MyMatches.Count; } catch (Exception ex) { //MessageBox.Show("Connection server failed. /n/n" + ex); } return Result; } public async void DisplayNextPageWebBrowser1() { // get actual displayed document string URL = webBrowser1.Url.ToString(); // get document path + name if (URL.Substring(URL.Length - 7, 1) == "#") { MyPDFFileName = URL.Substring(5, URL.Length - 12); } else if (URL.Substring(URL.Length - 8, 1) == "#") { MyPDFFileName = URL.Substring(5, URL.Length - 13); } else { MyPDFFileName = URL.Substring(5, URL.Length - 5); } // get document page number PageCountPDF = GetNoOfPagesPDF(MyPDFFileName); // get document curent page if (URL.Substring(URL.Length - 7, 1) == "#") { NoOfPagesPDF = Convert.ToInt32(URL.Substring(URL.Length - 1, 1)); } else if (URL.Substring(URL.Length - 8, 1) == "#") { NoOfPagesPDF = Convert.ToInt32(URL.Substring(URL.Length - 2, 2)); } else { NoOfPagesPDF = 1; } if (NoOfPagesPDF == PageCountPDF) { NoOfPagesPDF = 0; } // change document page NoOfPagesPDF += 1; // display blank page + replace some chars webBrowser1.Navigate("about:blank"); MyPDFFileName = MyPDFFileName.Replace("/", @"\"); // put some delay + display page await DelayScrollPDF(); webBrowser1.Navigate(MyPDFFileName + "#page=" + NoOfPagesPDF); } public async void DisplayNextPageWebBrowser2() { // get actual displayed document string URL = webBrowser2.Url.ToString(); // get document path + name if (URL.Substring(URL.Length - 7, 1) == "#") { MyINFOFileName = URL.Substring(5, URL.Length - 12); } else if (URL.Substring(URL.Length - 8, 1) == "#") { MyINFOFileName = URL.Substring(5, URL.Length - 13); } else { MyINFOFileName = URL.Substring(5, URL.Length - 5); } // get document page number PageCountINFO = GetNoOfPagesPDF(MyINFOFileName); // get document curent page if (URL.Substring(URL.Length - 7, 1) == "#") { NoOfPagesINFO = Convert.ToInt32(URL.Substring(URL.Length - 1, 1)); } else if (URL.Substring(URL.Length - 8, 1) == "#") { NoOfPagesINFO = Convert.ToInt32(URL.Substring(URL.Length - 2, 2)); } else { NoOfPagesINFO = 1; } if (NoOfPagesINFO == PageCountINFO) { NoOfPagesINFO = 0; } // change document page NoOfPagesINFO += 1; // display blank page + replace some chars webBrowser2.Navigate("about:blank"); MyINFOFileName = MyINFOFileName.Replace("/", @"\"); // put some delay + display page await DelayScrollPDF(); webBrowser2.Navigate(MyINFOFileName + "#page=" + NoOfPagesINFO); } public async Task DelayScrollPDF() { await Task.Delay(250); } private void DBExtraction() { RequestCurrentOF(); RequestCurrentMold(); RequestCurrentArticle(); RequestNextOF(); RequestNextMold(); RequestNextArticle(); CurrentLeftToDo.Text = CurrentToDoCalc(); NextLeftToDo.Text = NextToDoCalc(); Process MonProcess = new Process(); MonProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; MonProcess.StartInfo.UseShellExecute = false; MonProcess.StartInfo.FileName = @"C:\SOURCES\ResetDomaine.bat"; MonProcess.StartInfo.CreateNoWindow = true; MonProcess.Start(); } private string CurrentToDoCalc() { double CalcResult; string CalcResultSTR; RequestCurrentToDo(); RequestCurrentGoodDone(); QTELANCECURANTstr = Convert.ToString(QTELANCECURANT); CalcResult = QTELANCECURANT - QTEBONNE; CalcResultSTR = Convert.ToString(CalcResult); return QTELANCECURANTstr + " / " + CalcResultSTR; } private string NextToDoCalc() { RequestNextToDo(); QTELANCENEXTstr = Convert.ToString(QTELANCENEXT); return QTELANCENEXTstr; } async Task PutExtractDelay() { await Task.Delay(20000); } async Task PutTaskDelay() { await Task.Delay(1000); } private void MachineStarted() { LabelShow(); ChronoHid(); } private void LabelHid() { CurrentOFLabel.Hide(); CurrentMoldNumberLabel.Hide(); NextOFLabel.Hide(); CurrentArticleNumberLabel.Hide(); NextMoldNumberLabel.Hide(); webBrowser1.Hide(); webBrowser2.Hide(); CurrentOFRef.Hide(); CurrentMoldNumber.Hide(); CurrentArticleNumber.Hide(); NextOFNumber.Hide(); NextMoldNumber.Hide(); ClientLogo.Hide(); Logo.Hide(); LineLabel.Hide(); NextArticleNumberLabel.Hide(); NextArticleNumber.Hide(); ClientLogoWaitingScreen.Hide(); CurrentLeft.Hide(); CurrentLeftToDo.Hide(); NextLeft.Hide(); NextLeftToDo.Hide(); } private void LabelShow() { CurrentOFLabel.Show(); CurrentMoldNumberLabel.Show(); NextOFLabel.Show(); CurrentArticleNumberLabel.Show(); NextMoldNumberLabel.Show(); webBrowser1.Show(); webBrowser2.Show(); CurrentOFRef.Show(); CurrentMoldNumber.Show(); CurrentArticleNumber.Show(); NextOFNumber.Show(); NextMoldNumber.Show(); ClientLogo.Show(); Logo.Show(); LineLabel.Show(); NextArticleNumberLabel.Show(); NextArticleNumber.Show(); CurrentLeft.Show(); CurrentLeftToDo.Show(); NextLeft.Show(); NextLeftToDo.Show(); } private void BlinckingScreen() { this.BackgroundImage = Properties.Resources.Fond_d_écran_Rouge_Full_HD; Thread.Sleep(500); this.BackgroundImage = Properties.Resources.Fond_d_écran_Blanc_full_HD; } private void ChronoShowed() { MachineStateLabel.Show(); ChronoLabel.Show(); } private void ChronoHid() { MachineStateLabel.Hide(); ChronoLabel.Hide(); ClientLogoWaitingScreen.Hide(); } public Form1() { InitializeComponent(); PDFTemp1IsActive = true; PDFTemp2IsActive = false; PDFInfoTemp1IsActive = true; PDFInfoTemp2IsActive = false; MachineStopped = false; temps = new TimeSpan(); ChronometreCommence += new ChonometreEventHandler(this.Chronometre); ChronometreCommence(); ClientLogo.BackgroundImage = Properties.Resources.LOGO_RVB; Logo.BackgroundImage = Properties.Resources.Logo_blanc; NumeroVersion = AppVersion + MachineName; lNumeroVersion.Text = NumeroVersion; PreviousState = 5; } private async void Form1_Load(object sender, EventArgs e) { button1.BringToFront(); button1.Focus(); button1.KeyDown += new KeyEventHandler(Form1_KeyDown); while (true) { //Lancement routine connexion BDD DBConnection(); LabelShow(); ChronoHid(); ChronoLabel.Text = ""; //Lancement routine extraction données + affichages PDF DBExtraction(); //Affichage des deux PDF RequestPDF(); await PutTaskDelay(); RequestINFO(); //Lancement routine vérification cadence RequestStateCadence(); //Lancement routine vérification si machine à l'arrêt RequestMachineStopped(); if (MachineStopped) { LabelHid(); ChronoShowed(); ClientLogoWaitingScreen.Hide(); Chronometre(); while (MachineStopped) { RequestBreackState(); switch (BreackState) { case 0: LabelHid(); ChronoShowed(); ClientLogoWaitingScreen.Hide(); Thread MonSecondThread = new Thread(BlinckingScreen); MonSecondThread.Start(); if (PreviousState != BreackState) { temps = TimeSpan.Zero; PreviousState = BreackState; } await PutTaskDelay(); Chronometre(); MonSecondThread.Abort(); break; case 1: LabelHid(); ChronoShowed(); ClientLogoWaitingScreen.Hide(); this.BackgroundImage = Properties.Resources.Fond_d_écran_Bleu_Full_HD; if (PreviousState != BreackState) { temps = TimeSpan.Zero; PreviousState = BreackState; } await PutTaskDelay(); Chronometre(); break; case 2: LabelHid(); ChronoShowed(); ClientLogoWaitingScreen.Hide(); this.BackgroundImage = Properties.Resources.Fond_d_écran_Rouge_Full_HD; if (PreviousState != BreackState) { temps = TimeSpan.Zero; PreviousState = BreackState; } await PutTaskDelay(); Chronometre(); break; case 3: LabelHid(); ChronoHid(); ClientLogoWaitingScreen.Show(); this.BackgroundImage = Properties.Resources.Fond_d_écran_Blanc_full_HD; if (PreviousState != BreackState) { temps = TimeSpan.Zero; PreviousState = BreackState; } await PutTaskDelay(); Chronometre(); break; } //Lancement routine vérification si machine à l'arrêt RequestMachineStopped(); } //while (MachineStopped) { // RequestBreackState(); // if (MachineUnknowStopped) { // LabelHid(); // ChronoShowed(); // ClientLogoWaitingScreen.Hide(); // Thread MonSecondThread = new Thread(BlinckingScreen); // MonSecondThread.Start(); // await PutTaskDelay(); // Chronometre(); // MonSecondThread.Abort(); // } else if (MachineMaintenanceStopped) { // LabelHid(); // ChronoShowed(); // ClientLogoWaitingScreen.Hide(); // this.BackgroundImage = Properties.Resources.Fond_d_écran_Bleu_Full_HD; // await PutTaskDelay(); // Chronometre(); // } else if (MachineStandardStopped) { // LabelHid(); // ChronoShowed(); // ClientLogoWaitingScreen.Hide(); // this.BackgroundImage = Properties.Resources.Fond_d_écran_Rouge_Full_HD; // await PutTaskDelay(); // Chronometre(); // } else if (MachineWaiting) { // LabelHid(); // ChronoHid(); // ClientLogoWaitingScreen.Show(); // this.BackgroundImage = Properties.Resources.Fond_d_écran_Blanc_full_HD; // await PutTaskDelay(); // Chronometre(); // } // //Lancement routine vérification si machine à l'arrêt // RequestMachineStopped(); //} temps = TimeSpan.Zero; } await PutExtractDelay(); DBDisconnection(); } } private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Multiply) { Close(); } } } }