// Записать партию в план обработки машины public int AssignJob(parties p) { int iTime = getTimeForProcessingById(p.nomenclatures.idNomenclatures); if (iTime != -1) { currentLoad += iTime; arrWorks.Add(p); return(0); } return(-1); }
private void fillingArraysOfDataParties(string fileName) { lParties = new List <parties>(); ExcelPackage ep = new ExcelPackage(new FileInfo(fileName)); ExcelWorksheet ws = ep.Workbook.Worksheets[1]; int countRow = ws.Dimension.End.Row; int countColumn = ws.Dimension.End.Column; for (int rowNum = 2; rowNum <= countRow; rowNum++) { int idNom = findNomenclatureByID(Int32.Parse(ws.Cells[rowNum, 2].Value.ToString())); if (idNom != -1) { parties p = new parties(Int32.Parse(ws.Cells[rowNum, 1].Value.ToString()), ((nomenclatures)arrNomenclatures[idNom])); lParties.Add(p); } } }
public int timeStart; // Время начала этапа public workSchedule(parties parties, machineTools machineTools, int timeStart) { this.parties = parties; this.machineTools = machineTools; this.timeStart = timeStart; }
private void экспортРезультатаToolStripMenuItem_Click(object sender, EventArgs e) { if (arrSchedule != null) { logger.Info("Выгружаем результат"); SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "Лист Microsoft Excel (.xlsx) |*.xlsx"; if (sfd.ShowDialog() == DialogResult.OK) { string fn = sfd.FileName; Console.WriteLine(fn); // Проверяем существует файл или нет if (File.Exists(fn)) { try { // Удаляем находку File.Delete(fn); } catch (Exception ex) { logger.Error(String.Format("Внимание! Не удалось создать файл для записи результатов. Возможно, файл открыт в другой программе, или недостаточно прав для записи. Ошибка: {0}", ex.Message)); MessageBox.Show("Внимание! Не удалось создать файл для записи результатов. Возможно, файл открыт в другой программе, или недостаточно прав для записи.", "Файл не создан", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } ExcelPackage ep = new ExcelPackage(new FileInfo(fn)); var sheet = ep.Workbook.Worksheets.Add("Расписание обработки партий"); // Вывод результатов (общая таблица планирования) sheet.Cells[1, 1].Value = "Номер партии"; sheet.Cells[2, 1].Value = "Номенклатура"; sheet.Cells[3, 1].Value = "Оборудование"; sheet.Cells[4, 1].Value = "Начало этапа обработки"; sheet.Cells[5, 1].Value = "Конец этапа обработки"; for (int i = 0; i < arrSchedule.Count; i++) { sheet.Cells[1, i + 2].Value = ((workSchedule)arrSchedule[i]).parties.idParties; sheet.Cells[2, i + 2].Value = ((workSchedule)arrSchedule[i]).parties.nomenclatures.nameNomenclatures; sheet.Cells[3, i + 2].Value = ((workSchedule)arrSchedule[i]).machineTools.getName(); sheet.Cells[4, i + 2].Value = ((workSchedule)arrSchedule[i]).timeStart; sheet.Cells[5, i + 2].Value = ((workSchedule)arrSchedule[i]).timeStart + ((workSchedule)arrSchedule[i]).machineTools.getTimeForProcessingById(((workSchedule)arrSchedule[i]).parties.nomenclatures.idNomenclatures); } // Дополнительно в отдельные страницы впишем графики загрузки каждой машины foreach (machineTools mt in arrTools) { string sheetName = String.Format("Расписание \"{0}\"", mt.getName()); var sheetTools = ep.Workbook.Worksheets.Add(sheetName); sheetTools.Cells[1, 1].Value = "Номер партии"; sheetTools.Cells[2, 1].Value = "Номенклатура"; sheetTools.Cells[3, 1].Value = "Оборудование"; sheetTools.Cells[4, 1].Value = "Начало этапа обработки"; sheetTools.Cells[5, 1].Value = "Конец этапа обработки"; int t = 0; for (int j = 0; j < mt.arrWorks.Count; ++j) { parties p = (parties)(mt.arrWorks[j]); sheetTools.Cells[1, j + 2].Value = p.idParties; sheetTools.Cells[2, j + 2].Value = p.nomenclatures.nameNomenclatures; sheetTools.Cells[3, j + 2].Value = t; sheetTools.Cells[4, j + 2].Value = (t += mt.getTimeForProcessingById(p.nomenclatures.idNomenclatures)); } } try { FileInfo fi = new FileInfo(fn); ep.SaveAs(fi); logger.Info(String.Format("Файл успешно выгружен: {0}", fi.FullName)); MessageBox.Show("Файл успешно сохранен.", "Файл создан", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { logger.Error(String.Format("Внимание! Не удалось создать файл для записи результатов. Возможно, файл открыт в другой программе, или недостаточно прав для записи. Ошибка: {0}", ex.Message)); MessageBox.Show("Внимание! Не удалось создать файл для записи результатов. Возможно, файл открыт в другой программе, или недостаточно прав для записи.", "Файл не создан", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } else { logger.Error(String.Format("Для экспорта данных, необходимо сначало сделать \"Расчет\"!")); MessageBox.Show("Для экспорта данных, необходимо сначало сделать \"Расчет\"!", "Файл не создан", MessageBoxButtons.OK, MessageBoxIcon.Warning); } }