コード例 #1
0
        //конструктор для редактируемой технологии
        public FreeTechnologyUserControl(BaseTechnology tech)
        {
            InitializeComponent();
            this.tech      = tech;
            LLOfOperations = new LinkedList <OperForFreeTechUserControl>();
            LinkedListNode <OperForFreeTechUserControl> prevNode = null;

            for (int i = 0; i < tech.listOfOperations.Count; i++)
            {
                OperForFreeTechUserControl operationUC;
                if (i != 0)
                {
                    operationUC = new OperForFreeTechUserControl(prevNode.Value.Top + prevNode.Value.Height + 5, prevNode.Value);
                    LLOfOperations.AddAfter(prevNode, operationUC);
                    operationUC.SetNameOfOper(tech.listOfOperations[i].name);
                    operationUC.SetTextOfOper(tech.listOfOperations[i].text);
                    operationUC.SetOsnastka(tech.listOfOperations[i].osnastka);
                }
                else    // первая операция
                {
                    operationUC = new OperForFreeTechUserControl(10);
                    LLOfOperations.AddFirst(operationUC);
                    operationUC.SetNameOfOper(tech.listOfOperations[i].name);
                    operationUC.SetTextOfOper(tech.listOfOperations[i].text);
                    operationUC.SetOsnastka(tech.listOfOperations[i].osnastka);
                }
                this.Controls.Add(operationUC);
                prevNode = LLOfOperations.Find(operationUC);
            }
            this.ControlAdded   += new System.Windows.Forms.ControlEventHandler(this.FreeTechnologyUserControl_ControlAdded);
            this.ControlRemoved += new System.Windows.Forms.ControlEventHandler(this.FreeTechnologyUserControl_ControlRemoved);
        }
コード例 #2
0
 // обновить деталь в базе
 private void UpdateInBaseBtn_Click(object sender, EventArgs e)
 {
     if (comboBoxDet.SelectedIndex != -1)
     {
         string          selectedNum  = comboBoxDet.SelectedItem.ToString();
         DialogResult    result       = DialogResult.No;
         OleDbConnection connection   = new OleDbConnection(Globals.connectionString);
         string          queryExist   = "SELECT Number FROM Technology WHERE Number = '" + selectedNum + "'";
         OleDbCommand    commandExist = new OleDbCommand(queryExist, connection);
         connection.Open();
         OleDbDataReader datareaderExist = commandExist.ExecuteReader();
         if (datareaderExist.Read())     // если хоть что-то пришло в ответ
         {
             result = MessageBox.Show("Вы действительно хотите обновить деталь в базе данных?", "?", MessageBoxButtons.YesNo);
         }
         connection.Close();
         if (result == DialogResult.Yes)
         {
             BaseTechnology tech = ftuc.MakeBaseTechnology(textBoxName.Text, selectedNum);
             if (tech.ApdateInDB())
             {
                 numberToBaseTech[selectedNum] = tech;
                 ReNulUserControl();
             }
         }
     }
 }
コード例 #3
0
        private void buttonAdd_Click(object sender, EventArgs e)
        {
            if (textBoxName.Text == "" || textBoxDetNum.Text == "")
            {
                MessageBox.Show("Введите номер и наименование детали");
                return;
            }
            BaseTechnology tech = ftuc.MakeBaseTechnology(textBoxName.Text, textBoxDetNum.Text);

            tech.SaveToDB();
        }
コード例 #4
0
        // создать базовую технологию из имеющихся OperForFreeTechUserControl
        public BaseTechnology MakeBaseTechnology(string name, string num)
        {
            List <Operation> listOfOperations = new List <Operation>();

            for (LinkedListNode <OperForFreeTechUserControl> oper = LLOfOperations.First; oper != null; oper = oper.Next)
            {
                listOfOperations.Add(new Operation(oper.Value.GetNameOfOper(), oper.Value.GetTextOfOper(), oper.Value.GetOsnastka()));
            }
            BaseTechnology tech = new BaseTechnology(name, num, listOfOperations);

            return(tech);
        }
コード例 #5
0
        private void buttonMake_Click(object sender, EventArgs e)
        {
            name = textBoxName.Text;
            num  = textBoxDetNum.Text;
            if (name == "" || num == "")
            {
                MessageBox.Show("Введите номер и наименование детали");
                return;
            }
            List <Operation> listOfOperations = GetListOfOperations();
            BaseTechnology   tech             = new BaseTechnology(name, num, listOfOperations);

            tech.SaveToDB();
        }
コード例 #6
0
 private void comboBoxDet_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (comboBoxDet.SelectedIndex != -1)
     {
         BaseTechnology technology = numberToBaseTech[comboBoxDet.SelectedItem.ToString()];
         ftuc = new FreeTechnologyUserControl(technology);
         panelTech.Controls.Clear();
         panelTech.Controls.Add(ftuc);
         textBoxName.Text     = technology.name;
         buttonDelete.Enabled = true;
     }
     else
     {
         buttonDelete.Enabled = false;
     }
 }
コード例 #7
0
        // перенос базы данных из старого формата в новый
        private void button1_Click_1(object sender, EventArgs e)
        {
            string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=" + @"D:\_ЛИЧМАН ДМИТРИЙ\7 Разное\C#\Л.Р\PrintApp v1.3\PrintApp\bin\Debug" + "\\DataBase.mdb";
            string name;
            //string num;
            bool   nagar;
            bool   zabityKontrovki;
            bool   deformedPlaces;
            bool   magnit;
            bool   LUM;
            bool   pritirka;
            bool   gidro;
            string pokritie;
            int    ID;
            Dictionary <string, object[]> numberToSignature = new Dictionary <string, object[]>();
            string query = "SELECT Number, Name, Nagar, Kontrovki, Gidro, Deform, Magnit, LUM, Pritirka, Cover.ShortName, Details.ID, CoverForDetail, Slesarka FROM Details LEFT JOIN Cover ON Details.Cover = Cover.ID ORDER BY Number;";
            // object[] - str Number,str Name, bool Nagar, bool Kontrovki, bool Gidro, bool Deform, bool Magnit, bool LUM, bool Pritirka, str Cover.ShortName, int Details.ID, string CoverForDetail, string Slesarka
            //                  0        1           2               3           4           5           6           7           8                  9                  10                 11                   12

            OleDbConnection connection = new OleDbConnection(connectionString);
            OleDbCommand    cmd        = new OleDbCommand(query, connection);

            connection.Open();
            OleDbDataReader datareader = cmd.ExecuteReader();

            while (datareader.Read())
            {
                comboBoxDet.Items.Add(datareader[0]);
                object[] signatureOfRepair = new object[] { datareader[1], datareader[2], datareader[3], datareader[4], datareader[5], datareader[6], datareader[7], datareader[8], datareader[9], datareader[10], datareader[11], datareader[12] };
                numberToSignature.Add(datareader[0].ToString(), signatureOfRepair);     // добавляем в словарь сигнатуру ремонта детали с номером datareader[0]
            }
            datareader.Close();
            connection.Close();
            foreach (string num in numberToSignature.Keys)
            {
                if (((numberToSignature[num])[0]) != DBNull.Value)
                {
                    name = (string)((numberToSignature[num])[0]);
                }
                else
                {
                    name = "";
                }
                nagar           = (bool)((numberToSignature[num])[1]);
                zabityKontrovki = (bool)((numberToSignature[num])[2]);
                gidro           = (bool)((numberToSignature[num])[3]);
                deformedPlaces  = (bool)((numberToSignature[num])[4]);
                magnit          = (bool)((numberToSignature[num])[5]);
                LUM             = (bool)((numberToSignature[num])[6]);
                pritirka        = (bool)((numberToSignature[num])[7]);
                // свой текст в слесарке
                string myText;
                if (((numberToSignature[num])[11]) != DBNull.Value)
                {
                    myText = "1. Удалить налёт, коррозию." + Environment.NewLine + "2. Зачистить забоины, заусенцы." + Environment.NewLine + (string)((numberToSignature[num])[11]);
                }
                else
                {
                    myText = "1. Удалить налёт, коррозию." + Environment.NewLine + "2. Зачистить забоины, заусенцы.";
                }
                // покрытие для конкретной детали

                if (((numberToSignature[num])[8]) != DBNull.Value)
                {
                    pokritie = (string)((numberToSignature[num])[8]) + " " + ((numberToSignature[num])[10]).ToString();
                }
                else
                {
                    pokritie = "";
                }
                ID = (int)((numberToSignature[num])[9]);

                // пошёл техпроцесс
                List <Operation> listOfOperations = new List <Operation>();

                listOfOperations.Add(new Operation("Дефектация", new string[] { "Визуальный контроль на соответствие чертежу", "и отсутствие внешних дефектов" }));
                if (nagar)
                {
                    listOfOperations.Add(new Operation("Удаление нагара"));
                }
                if (zabityKontrovki)
                {
                    listOfOperations.Add(new Operation("Координатно-расточная", new string[] { "ИОТ-36.262-2014", "Высверлить остатки контровочной проволоки." }));
                }
                if (deformedPlaces)
                {
                    listOfOperations.Add(new Operation("Фрезерная", new string[] { "ИОТ-36.258-2014", "Вырезать деформированные места согласно чертежу." }));
                }

                // формируем слесарку

                Operation     slesarka = new Operation("Слесарная");
                List <string> sles     = new List <string>()
                {
                    "ИОТ-36.255-2014"
                };
                List <string> my_Text      = myText.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).ToList <string>(); // считываем отдельно строки с текстбокса со своим текстом слесарки
                string[]      slesOsnastka = new string[] { "Надфиль", "80№4", "Шлиф. шкурка", "14AF1000/5C1" };
                slesarka.osnastka = slesOsnastka;
                if (LUM)
                {
                    sles.AddRange(my_Text);
                    if (name.Contains("Болт"))
                    {
                        sles.Add("3. Подготовка под ЛЮМ1-ОВ");
                    }

                    string[] slesText = sles.ToArray();
                    slesarka.text = slesText;
                    listOfOperations.Add(slesarka); //new Operation("Слесарная", new string[] { "ИОТ-36.255-2014", "1. Удалить налёт, коррозию.", "2. Зачистить забоины, заусенцы", "3. Подготовка под ЛЮМ1-ОВ" }, new string[] { "Надфиль", "80№4", "Шлиф. шкурка", "14AF1000/5C1" }));
                    listOfOperations.Add(new Operation("Моечная"));
                    listOfOperations.Add(new Operation("Контрольная ЛЮМ1-ОВ"));
                }
                else
                {
                    if (magnit)
                    {
                        sles.AddRange(my_Text);
                        string[] slesText = sles.ToArray();
                        slesarka.text = slesText;
                        listOfOperations.Add(slesarka);
                        listOfOperations.Add(new Operation("Моечная"));
                        listOfOperations.Add(new Operation("Контроль магнитопорошковый"));
                    }
                    else
                    {
                        sles.AddRange(my_Text);
                        string[] slesText = sles.ToArray();
                        slesarka.text = slesText;
                        listOfOperations.Add(slesarka);
                    }
                }

                if (pritirka)
                {
                    List <string> kalibr     = new List <string>();
                    List <string> pritir     = new List <string>();
                    string        otpechatok = "";
                    string        width      = "";
                    query      = "SELECT Type, Kalibr, Otpechatok, Width, Shifr FROM Pritir INNER JOIN (Shtuzer INNER JOIN Cone ON Shtuzer.ConeID = Cone.ID) ON Pritir.ID = Cone.Type WHERE Shtuzer.DetailID=" + ID.ToString();
                    connection = new OleDbConnection(connectionString);
                    cmd        = new OleDbCommand(query, connection);
                    connection.Open();
                    datareader = cmd.ExecuteReader();
                    while (datareader.Read())
                    {
                        if (!kalibr.Contains(datareader[1].ToString()))
                        {
                            kalibr.Add(datareader[1].ToString());
                        }
                        if (!otpechatok.Contains(datareader[2].ToString()))
                        {
                            otpechatok += datareader[2].ToString() + "; ";
                        }
                        if (!width.Contains(datareader[3].ToString()))
                        {
                            width += datareader[3].ToString() + "; ";
                        }
                        if (!pritir.Contains(datareader[4].ToString()))
                        {
                            pritir.Add(datareader[4].ToString());
                        }
                    }
                    datareader.Close();
                    connection.Close();

                    string[] oper = new string[] { };

                    List <string> osnastka = new List <string>();
                    osnastka.Add("Установка"); osnastka.Add("У6872-1334"); osnastka.Add("Притир");
                    foreach (string s in pritir)
                    {
                        osnastka.Add(s);
                    }
                    osnastka.Add("Калибр");
                    foreach (string s in kalibr)
                    {
                        osnastka.Add(s);
                    }
                    osnastka.Add("Шкурка шлиф."); osnastka.Add("14AF1000/5C1"); osnastka.Add("Эталон"); osnastka.Add("У6367-00-9270"); osnastka.Add("Лазурь железная");
                    string[] _osnastka = osnastka.ToArray();

                    listOfOperations.Add(new Operation("Слесарная", new string[] { "ИОТ-36.256-2014",
                                                                                   "1. Притереть конусную поверхность.",
                                                                                   "2. Выполнить проверку конусной поверхности:",
                                                                                   "а) равномерно, по всей окружности калибра нанести",
                                                                                   "слой краски для калибров до просвечивания металла;",
                                                                                   "Толщину нанесённого слоя определять путём",
                                                                                   "сопоставления цветов краски на калибре и эталоне.",
                                                                                   "Приготовление и нанесение - по инструкции 26/75Т",
                                                                                   "б) сохраняя соосность пары конус штуцера - калибр,",
                                                                                   "провернуть калибр вокруг его оси на угол 5°...10°",
                                                                                   "2...3 раза, прижимая калибр к конусу штуцера",
                                                                                   "Т.Т.: отпечаток должен быть в виде кольца без",
                                                                                   "разрыва, иметь равномерную ширину, располагаться",
                                                                                   "в пределах пояса контакта, огранчиченного разностью",
                                                                                   "размеров от торца:  " + otpechatok, "Ширина отпечатка:  " + width }
                                                       , _osnastka));
                }

                if (gidro)
                {
                    listOfOperations.Add(new Operation("Испытание на герметичность (ц.64)"));
                }
                if (pokritie != "")
                {
                    listOfOperations.Add(new Operation("Покрытие", new string[] { pokritie }));
                }
                listOfOperations.Add(new Operation("Контрольная"));
                // сформировали ТП, отправляем в класс технологии
                BaseTechnology bte = new BaseTechnology(name, num, listOfOperations);
                numberToBaseTech.Add(num, bte);
            }

            foreach (string num in numberToBaseTech.Keys)
            {
                numberToBaseTech[num].SaveToDB();
            }
        }