//читает параметры оборудования: связанные номенклатуры и время их обработки //каждая сопоставленная номенклатура будет добавлена в соответствующий элемент типа tMachineTool массива arrTools private void ReadTimes(IXLWorksheet _inSheet) { //первая строка - легенда, данные со второй строки int iRow = 2; //читаем, пока не найдется пустая ячейка в столбце ID while (_inSheet.Cell(String.Format("A{0}", iRow)).Value.ToString() != "") { int iToolID = Int32.Parse(_inSheet.Cell(String.Format("A{0}", iRow)).Value.ToString()); int iNomID = Int32.Parse(_inSheet.Cell(String.Format("B{0}", iRow)).Value.ToString()); int iOpTime = Int32.Parse(_inSheet.Cell(String.Format("C{0}", iRow)).Value.ToString()); //нашли индексы оборудования и номенклатуры в массивах int iToolIndex = FindToolByID(iToolID); int iNomIndex = FindNomenclatureByID(iNomID); if ((iToolIndex != -1) && (iNomIndex != -1)) { //если оборудование и номенклатура известны, то разрешаем этому оборудованию работать с этой номенклатурой за время iOpTime tTime Time1 = new tTime(); Time1._tnNomenclature = (tNomenclature)arrNomenclatures[iNomIndex]; Time1._iTime = iOpTime; ((tMachineTool)arrTools[iToolIndex]).AddTime(Time1); } else { //++iRow; //continue; } ++iRow; } }
//добавляет номенклатуру и время ее обработки в описание оборудования //повторное вхождение номенклатуры - отбрасывается public int AddTime(tTime _t) { if (!this.isSuitableForNomenclature(_t._tnNomenclature._id)) { arrTime.Add(_t); } return(0); }