14.01.2011, 13:44 | #11 |
Участник
|
К сожалению, код пишется разными командами, в разных странах и условиях.
К примеру, команды в Редмонде все больше и больше полагаются на вендоров, теперь уже и при написании кода приложения. При этом уровень code review в таких командах обычно тоже намного ниже, чем хотелось бы. То есть даже если в FTE там наняты хорошие сотрудники (хотя я уже высказывался по этому поводу в какой-то другой теме - мы не нанимаем людей со знанием АХ), то качество вендоров Вы врядли сможете себе даже представить. Раз уж дискуссия идет в этой теме, приведу еще пример кода, тоже от вендоров. Код взят с одной из форм в АХ6. Приведу весь код метода, просто чтобы можно было оценить всю мощь гения: X++: public void setUnitOfMeasureState() { UnitOfMeasure tblUnitOfMeasure; if (ecoResDomain.DataType == AttributeDataType::Integer || ecoResDomain.DataType == AttributeDataType::Decimal) { // Enable unit of measure group if (!unitOfMeasureGroup.enabled()) { unitOfMeasureGroup.enabled(true); } if (ecoResDomainUnitOfMeasure.RecId && ecoResBoundedDomainValue.RecId) { // Enable bounded unit of measure combo boxes if (!intUnitOfMeasureComboBox.visible()) { intUnitOfMeasureComboBox.visible(true); } // Populate the integer bounded unit of measure combo box intUnitOfMeasureComboBox.clear(); while select Symbol from tblUnitOfMeasure where tblUnitOfMeasure.UnitOfMeasureClass == ecoResDomainUnitOfMeasure.UnitOfMeasureClass { intUnitOfMeasureComboBox.add(tblUnitOfMeasure.Symbol); } if (intUnitOfMeasureComboBox.count() > 0) { intUnitOfMeasureComboBox.selection(0); } if (ecoResValueLower_EcoResIntValue.RecId && ecoResValueLower_EcoResIntValue.IntUnitOfMeasure) { // Set the unit of measure selection tblUnitOfMeasure = UnitOfMeasure::find(ecoResValueLower_EcoResIntValue.IntUnitOfMeasure); intUnitOfMeasureComboBox.selectText(tblUnitOfMeasure.Symbol); } else if (ecoResDomainUnitOfMeasure.DefaultUnitOfMeasure) { // Set the unit of measure selection tblUnitOfMeasure = UnitOfMeasure::find(ecoResDomainUnitOfMeasure.DefaultUnitOfMeasure); intUnitOfMeasureComboBox.selectText(tblUnitOfMeasure.Symbol); // Set the unit of measure foreign keys if (ecoResValueLower_EcoResIntValue.RecId) { ecoResValueLower_EcoResIntValue.IntUnitOfMeasure = tblUnitOfMeasure.RecId; } if (ecoResValueUpper_EcoResIntValue.RecId) { ecoResValueUpper_EcoResIntValue.IntUnitOfMeasure = tblUnitOfMeasure.RecId; } } else if (intUnitOfMeasureComboBox.count() > 0) { // Set the unit of measure foreign keys if (ecoResValueLower_EcoResIntValue.RecId) { ecoResValueLower_EcoResIntValue.IntUnitOfMeasure = UnitOfMeasure::findBySymbol(intUnitOfMeasureComboBox.getText(intUnitOfMeasureComboBox.selection())).RecId; } if (ecoResValueUpper_EcoResIntValue.RecId) { ecoResValueUpper_EcoResIntValue.IntUnitOfMeasure = UnitOfMeasure::findBySymbol(intUnitOfMeasureComboBox.getText(intUnitOfMeasureComboBox.selection())).RecId; } } if (!floatUnitOfMeasureComboBox.visible()) { floatUnitOfMeasureComboBox.visible(true); } // Populate the float unit of measure combo box floatUnitOfMeasureComboBox.clear(); while select Symbol from tblUnitOfMeasure where tblUnitOfMeasure.UnitOfMeasureClass == ecoResDomainUnitOfMeasure.UnitOfMeasureClass { floatUnitOfMeasureComboBox.add(tblUnitOfMeasure.Symbol); } if (floatUnitOfMeasureComboBox.count() > 0) { floatUnitOfMeasureComboBox.selection(0); } if (ecoResValueLower_EcoResFloatValue.RecId && ecoResValueLower_EcoResFloatValue.FloatUnitOfMeasure) { // Set the unit of measure selection tblUnitOfMeasure = UnitOfMeasure::find(ecoResValueLower_EcoResFloatValue.FloatUnitOfMeasure); floatUnitOfMeasureComboBox.selectText(tblUnitOfMeasure.Symbol); } else if (ecoResDomainUnitOfMeasure.DefaultUnitOfMeasure) { // Set the unit of measure selection tblUnitOfMeasure = UnitOfMeasure::find(ecoResDomainUnitOfMeasure.DefaultUnitOfMeasure); floatUnitOfMeasureComboBox.selectText(tblUnitOfMeasure.Symbol); // Set the unit of measure foreign keys if (ecoResValueLower_EcoResFloatValue.RecId) { ecoResValueLower_EcoResFloatValue.FloatUnitOfMeasure = tblUnitOfMeasure.RecId; } if (ecoResValueUpper_EcoResFloatValue.RecId) { ecoResValueUpper_EcoResFloatValue.FloatUnitOfMeasure = tblUnitOfMeasure.RecId; } } else if (floatUnitOfMeasureComboBox.count() > 0) { // Set the unit of measure foreign keys if (ecoResValueLower_EcoResFloatValue.RecId) { ecoResValueLower_EcoResFloatValue.FloatUnitOfMeasure = UnitOfMeasure::findBySymbol(floatUnitOfMeasureComboBox.getText(floatUnitOfMeasureComboBox.selection())).RecId; } if (ecoResValueUpper_EcoResIntValue.RecId) { ecoResValueUpper_EcoResFloatValue.FloatUnitOfMeasure = UnitOfMeasure::findBySymbol(floatUnitOfMeasureComboBox.getText(floatUnitOfMeasureComboBox.selection())).RecId; } } } else { // Disable unit of measure combo boxes if (intUnitOfMeasureComboBox.visible()) { intUnitOfMeasureComboBox.visible(false); } if (floatUnitOfMeasureComboBox.visible()) { floatUnitOfMeasureComboBox.visible(false); } } } else { // Disable unit of measure group if (unitOfMeasureGroup.enabled()) { unitOfMeasureGroup.enabled(false); } // Disable unit of measure combo boxes if (intUnitOfMeasureComboBox.visible()) { intUnitOfMeasureComboBox.visible(false); } if (floatUnitOfMeasureComboBox.visible()) { floatUnitOfMeasureComboBox.visible(false); } } } |
|