void __fastcall TfmUnitEdit::actOperInsertExecute(TObject *Sender){ PTable Data(new CTable()); CFields Operation; Operation.Add("FieldName", "Operation"); Operation.Add("Caption", "Номер операции"); Operation.Add("Description", "Порадковый номер операции, в идеале должен соответствовать номеру операции в техпроцессе"); Operation.Add("Value", (short)NULL); Operation.Add("ValueType", OUniEditor::evtInteger); Operation.Add("Check", CheckOperationValue_); Operation.Add("FinalCheck", FinalCheckOperation_); Data->Append(Operation); CFields Name; Name.Add("FieldName", "Name"); Name.Add("Caption", "Наименование операции"); Name.Add("Description", "Наименование операции, по возможности должно быть максимально ёмким"); Name.Add("Value", ""); Name.Add("ValueType", OUniEditor::evtString); Name.Add("Check", CheckOperationNameValue_); Data->Append(Name); CFields Position; Position.Add("FieldName", "Position"); Position.Add("Caption", "Позиция конвейера"); Position.Add("Description", "Позиция конвейера"); Position.Add("Value", (short)0); Position.Add("DisplayValue", (short)0); Position.Add("ValueType", OUniEditor::evtList); Position.Add("Check", CheckOperationPositionValue_); Position.Add("GetList", ListOperationPositions_); Data->Append(Position); CFields SideID; SideID.Add("FieldName", "SideID"); SideID.Add("Caption", "Сторона"); SideID.Add("Description", "Сторона, на которой выполняется данная операция"); SideID.Add("Value", 1); SideID.Add("DisplayValue", "Слева"); SideID.Add("ValueType", OUniEditor::evtList); SideID.Add("GetList", ListOperationSide_); Data->Append(SideID); CFields WorkplaceID; WorkplaceID.Add("FieldName", "WorkplaceID"); WorkplaceID.Add("Caption", "Номер рабочего места"); WorkplaceID.Add("Description", "Номер рабочего места на позиции"); WorkplaceID.Add("Value", 0); WorkplaceID.Add("DisplayValue", "0"); WorkplaceID.Add("ValueType", OUniEditor::evtList); WorkplaceID.Add("GetList", ListOperationWorkplace_); Data->Append(WorkplaceID); CFields Worktime; Worktime.Add("FieldName", "Worktime"); Worktime.Add("Caption", "Трудоёмкость"); Worktime.Add("Description", "Трудоёмкость операции"); Worktime.Add("Value", 0.0); Worktime.Add("ValueType", OUniEditor::evtFloat); Data->Append(Worktime); CFields QualitySpec; QualitySpec.Add("FieldName", "QualitySpec"); QualitySpec.Add("Caption", "Требования"); QualitySpec.Add("Description", "Требования к качеству выполнения операции. Контроль. Перенос строки Ctrl+Enter."); QualitySpec.Add("Value", ""); QualitySpec.Add("ValueType", OUniEditor::evtText); Data->Append(QualitySpec); CFields Description; Description.Add("FieldName", "Description"); Description.Add("Caption", "Доп. информация"); Description.Add("Description", "Заполнение не обязательно. Дополнительные отметки заполняющего."); Description.Add("Value", ""); Description.Add("ValueType", OUniEditor::evtString); Data->Append(Description); PResTable Result = (*Adapter)("Addons.UniEditor.Edit", Data); if (Result.get() && Result->Valid()) { CFields &Fields = (*Result)[0]; try { try { mtOperation->DisableControls(); mtOperation->Append(); mtOperationOperation->AsInteger = Fields["Operation"]; mtOperationPosition->AsInteger = Fields["Position"]; mtOperationWorkplaceID->AsInteger = Fields["WorkplaceID"]; mtOperationWorktime->AsFloat = Fields["Worktime"]; mtOperationName->AsString = Fields["Name"]; mtOperationDescription->AsString = Fields["Description"]; mtOperationQualitySpec->AsString = Fields["QualitySpec"]; mtOperation->Post(); mtOperation->RefreshRecord(); mtOperation->SortByFields("Position;Num;Operation"); } catch(const Exception &E) { OUtils::CatchExceptionMessage("Ошибка добавления операции", E); } } __finally { mtOperation->EnableControls(); } }}