Пример #1
0
        //Метод загрузки всей БД в С#
        public void initlist()
        {
            clsList.LstItem.Clear();
            clsList.WrkList.Clear();
            clsList.JobList.Clear();
            bool flgDetect;
            int  tmpInx;

            //Команда загрузки таблицы WorkersTab БД
            OleDbDataAdapter adapter    = new OleDbDataAdapter("SELECT * FROM WorkersTab;", myConnection);
            DataTable        TabWorkers = new DataTable();
            DataTable        TabItems   = new DataTable();

            adapter.Fill(TabWorkers);

            //Цикл заполнения списка, соответствуюзего таблице WorkersTab БД, данными из таблицы
            for (int i = 0; i < TabWorkers.Rows.Count; i++)
            {
                clsWorker worker = new clsWorker();

                worker.WorkerID = TabWorkers.Rows[i][0].ToString();
                worker.FIO      = TabWorkers.Rows[i][1].ToString();

                clsList.WrkList.Add(worker);
            }

            //Команда загрузки таблицы JobPeriod БД
            adapter.SelectCommand = new OleDbCommand("SELECT * FROM JobPeriod;", myConnection);
            DataTable          TabPer  = new DataTable();
            List <clsDateTime> timeper = new List <clsDateTime>();

            adapter.Fill(TabPer);

            //Цикл заполнения списка, соответствуюзего таблице JobPeriod БД, данными из таблицы
            for (int i = 0; i < TabPer.Rows.Count; i++)
            {
                clsDateTime period = new clsDateTime();
                period.DatePeriod = TabPer.Rows[i][0].ToString();
                timeper.Add(period);
            }

            //Команда загрузки таблицы JobList БД
            adapter.SelectCommand = new OleDbCommand("SELECT * FROM JobList;", myConnection);
            DataTable TabJobs = new DataTable();

            adapter.Fill(TabJobs);

            //Цикл заполнения списка, соответствуюзего таблице JobList БД, данными из таблицы
            for (int i = 0; i < TabJobs.Rows.Count; i++)
            {
                clsJobs     job  = new clsJobs();
                clsDateTime date = new clsDateTime();
                int         j    = 0;

                job.pTP     = TabJobs.Rows[i][0].ToString();
                job.JobName = TabJobs.Rows[i][1].ToString();

                foreach (clsDateTime d in timeper)
                {
                    if (TabJobs.Rows[i][2].Equals(d.DatePeriod))
                    {
                        j++;
                        break;
                    }
                }
                job.JobPeriod = timeper[j];
                clsList.JobList.Add(job);
            }

            //Команда загрузки таблицы DevList БД
            adapter.SelectCommand = new OleDbCommand("SELECT * FROM DevList;", myConnection);
            adapter.Fill(TabItems);

            //Цикл заполнения списка, соответствуюзего таблице DevList БД, данными из таблицы
            for (int i = 0; i < TabItems.Rows.Count; i++)
            {
                NewItem Item = new NewItem();

                Item.Code = Convert.ToInt32(TabItems.Rows[i][0].ToString());

                flgDetect = false;
                tmpInx    = 0;
                for (int j = 0; j < clsList.WrkList.Count; j++)
                {
                    if (TabItems.Rows[i][3].Equals(clsList.WrkList[j].WorkerID))
                    {
                        flgDetect = true;
                        tmpInx    = j;
                        break;
                    }
                }

                if (flgDetect)
                {
                    Item.MetroWorker = clsList.WrkList[tmpInx];
                    flgDetect        = false;
                }
                else
                {
                    Item.MetroWorker = null;
                }

                for (int j = 0; j < clsList.JobList.Count; j++)
                {
                    if (TabItems.Rows[i][2].Equals(clsList.JobList[j].pTP))
                    {
                        flgDetect = true;
                        tmpInx    = j;
                        break;
                    }
                }

                if (flgDetect)
                {
                    Item.Job = clsList.JobList[tmpInx];
                }
                else
                {
                    Item.Job = null;
                }

                Item.Device = TabItems.Rows[i][1].ToString();
                clsList.LstItem.Add(Item);
            }

            //Команда загрузки таблицы Report БД
            adapter.SelectCommand = new OleDbCommand("SELECT * FROM Report;", myConnection);
            DataTable TabRep = new DataTable();

            adapter.Fill(TabRep);

            //Цикл заполнения списка, соответствуюзего таблице Report БД, данными из таблицы
            for (int i = 0; i < TabRep.Rows.Count; i++)
            {
                NewItem     item   = new NewItem();
                clsJobs     job    = new clsJobs();
                clsWorker   worker = new clsWorker();
                clsDateTime time   = new clsDateTime();
                ReportCls   report = new ReportCls();

                report.Code = Convert.ToInt32(TabRep.Rows[i][0].ToString());
                try
                {
                    time.PlanTime  = Convert.ToDateTime(TabRep.Rows[i][1].ToString());
                    time.CheckTime = Convert.ToDateTime(TabRep.Rows[i][2].ToString());
                }
                catch { }
                job.pTP     = TabRep.Rows[i][3].ToString();
                item.Device = TabRep.Rows[i][4].ToString();
                worker.FIO  = TabRep.Rows[i][5].ToString();

                report.AllDates = time;
                report.pTP      = job;
                report.device   = item;
                report.FIO      = worker;

                clsList.RepList.Add(report);
            }
        }
Пример #2
0
        //Метод нажатия на кнопку "Добавить в отчет"
        private void btnRepClick(object sender, EventArgs e)
        {
            //Условия срабатывания кнопки по CheckBox
            if (checkJob.Checked)
            {
                //Создание нужных объектов
                NewItem     item   = new NewItem();
                clsJobs     job    = new clsJobs();
                clsWorker   worker = new clsWorker();
                clsDateTime time   = new clsDateTime();
                //Создание объекта-строчки для финального отчета
                ReportCls report = new ReportCls();

                //Присваивание значение созданным объектам
                report.Code    = clsList.RepList.Count + 1;
                time.PlanTime  = JobTime.SelectionStart.Date;
                time.CheckTime = JobTime.SelectionStart.AddMonths(-1);
                foreach (clsJobs j in clsList.JobList)
                {
                    if (jobbox.SelectedItem.Equals(j.JobName))
                    {
                        job.pTP = j.pTP;
                        break;
                    }
                }
                item.Device = dubl_listdev.SelectedItem.ToString();
                foreach (clsWorker w in clsList.WrkList)
                {
                    if (workerCB.SelectedItem.Equals(w.WorkerID))
                    {
                        worker.FIO = w.FIO;
                        break;
                    }
                }

                report.AllDates = time;
                report.pTP      = job;
                report.device   = item;
                report.FIO      = worker;

                //Добавление объекта в список / добавление записи в отчет
                clsList.RepList.Add(report);

                //Добавление строки в таблицу Report БД
                myConnection = new OleDbConnection(dlmconnection); // открываем соединение с БД
                myConnection.Open();

                OleDbCommand command = new OleDbCommand("INSERT INTO Report (Код, План_дата, Факт_дата, пТП, Устройства, ФИО_исполн) VALUES('" + report.Code + "', '" + report.AllDates.PlanTime.ToShortDateString() + "', '" + report.AllDates.CheckTime.ToShortDateString() + "', '" + report.pTP.pTP + "', '" + report.device.Device + "', '" + report.FIO.FIO + "');", myConnection);
                command.ExecuteNonQuery();

                myConnection.Close();


                Close();
            }
            //Действие, если условие false
            else
            {
                MessageBox.Show("Поставьте подпись");
            }
        }