예제 #1
0
 private void btnAddNewMaster_Click(object sender, EventArgs e)
 {
     SetupForms.AddNewMaster fNewMaster = new SetupForms.AddNewMaster();
     fNewMaster.cbCompany.DataSource = Config.Companies.Values.Where(i => i.Id == Config.LoginUser.CompanyId).Select(p => p.Name).ToList();
     fNewMaster.cbRes.Items.Add(Config.OtherWorkersName);
     fNewMaster.cbRes.SelectedIndex = 0;
     fNewMaster.ShowHidePrinadl();
     fNewMaster.ShowDialog();
     if (fNewMaster.DialogResult == DialogResult.Yes)
     {
         if (Mysql.AddNewMasterInBase(fNewMaster.edFIO.Text, fNewMaster.edDol.Text, fNewMaster.edTel.Text, Config.OtherWorkersId, Config.Companies[fNewMaster.cbCompany.Text].Id, Config.Filials[fNewMaster.cbOtherPrinandl.Text].Id))
         {
             MessageBox.Show("Новый работник успешно внесён в базу.");
             LoadMasters(Config.OtherWorkersId);
             cbMasters.Text = fNewMaster.edFIO.Text;
         }
         else
         {
             MessageBox.Show("При добавлении нового работника возникла ошибка. Обратитесь к разработчику.");
         }
     }
 }
예제 #2
0
        public bool ImportMastersFile()
        {
            this.Cursor = Cursors.WaitCursor;
            int  i           = 1;
            int  ImportCount = 0;
            bool result      = true;

            //ExcelTools.CheckExcellProcesses();

            Excel.Application ExcelImportFile = new Excel.Application
            {
                DisplayAlerts = false
            };
            Excel.Workbook  workbook  = null;
            Excel.Worksheet worksheet = null;


            try
            {
                // Открываем книгу из папки с запускаемым файлом
                workbook = ExcelImportFile.Workbooks.Open(eImportFile.Text);

                // Получаем первую таблицу
                worksheet = workbook.ActiveSheet as Excel.Worksheet;
                while (true)
                {
                    i++;
                    string fio = worksheet.Cells[i, 1].Text;
                    string dol = worksheet.Cells[i, 2].Text;
                    string tel = worksheet.Cells[i, 3].Text;
                    if ((fio == "") || (dol == "") || (tel == ""))
                    {
                        break;
                    }

                    if (Mysql.FindMasterInBase(fio))
                    {
                        string addition = "(число)";
                        for (int add = 1; add < 99999; add++)
                        {
                            addition = "(" + add.ToString() + ")";
                            if (!Mysql.FindMasterInBase(fio + addition))
                            {
                                break;
                            }
                        }


                        MessageBox.Show("Работник " + fio + " уже содержится в базе.\nВ базу " + fio + " будет импортирован под именем - " + fio + addition +
                                        "\nВ Форму 4 данный работник будет выгружен без дополнения '" + addition + "'");
                        fio += addition;
                        if (!Mysql.AddNewMasterInBase(fio, dol, tel, ResId, Config.Companies[cbCompany.Text].Id))
                        {
                            MessageBox.Show("Ошибка при импорте работника - " + fio);
                            break;
                        }
                        else
                        {
                            ImportCount++;
                        }
                    }
                    else
                    {
                        if (!Mysql.AddNewMasterInBase(fio, dol, tel, ResId, Config.Companies[cbCompany.Text].Id))
                        {
                            MessageBox.Show("Ошибка при импорте работника - " + fio);
                            break;
                        }
                        else
                        {
                            ImportCount++;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                result = false;
            }
            finally
            {
                MessageBox.Show("Импортировано - " + ImportCount.ToString() + " работников");

                workbook.Close(false, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
                System.Runtime.InteropServices.Marshal.FinalReleaseComObject(worksheet);
                System.Runtime.InteropServices.Marshal.FinalReleaseComObject(workbook);

                ////Подготовка к убийству процесса Excel
                int ExcelPID = 0;
                int Hwnd     = 0;
                Hwnd = ExcelImportFile.Hwnd;
                System.Diagnostics.Process ExcelProcess;
                GetWindowThreadProcessId((IntPtr)Hwnd, out ExcelPID);
                ExcelProcess = System.Diagnostics.Process.GetProcessById(ExcelPID);
                ////Конец подготовки к убийству процесса Excel



                ExcelImportFile.Quit();
                System.Runtime.InteropServices.Marshal.FinalReleaseComObject(ExcelImportFile);

                GC.Collect();
                GC.WaitForPendingFinalizers();

                ////Убийство процесса Excel
                ExcelProcess.Kill();
                ExcelProcess = null;

                //ExcelTools.KillExcel();
                this.Cursor = Cursors.Default;
            }

            return(result);
        }