<< Click to Display Table of Contents >> Прикладные модули > Планирование проектов > Подготовка решения к работе > Добавление свойств в этапы плана проекта Пример добавления свойств |
![]() ![]() ![]() |
Ситуация
Предположим, что компания ведет проектную деятельность, связанную с пожароопасными работами. Для таких работ исполнителю необходим наряд-допуск.
Требуется модифицировать решение таким образом, чтобы в этапах плана проекта пользователи могли указать, требуется ли для работ наряд-допуск, и добавить ссылку на него.
Решение
1.В среде разработки создайте решение ProjectPlanningPermits.
2.Перекройте в своем решении справочник ProjectActivity.
3.Добавьте модуль «ProjectPlanner» в список зависимостей решения.
4.В редакторе перекрытого справочника добавьте свойства:
•Требуется наряд-допуск (NeedPermit). Тип свойства – Логическое;
•Наряд-допуск (Permit). Тип свойства – ссылка на тип документа Sungero.Projects. ProjectDocument.
СОВЕТ. При необходимости разработайте свой тип документа «Наряд-допуск», например, чтобы добавить в документ новые свойства. Подробнее см. в разделе «Разработка документов».
5.Добавьте новую разделяемую функцию SetPermitAsRequired(), чтобы сделать свойство Наряд-допуск доступным и обязательным для заполнения:
public void SetPermitAsRequired()
{
var needPermit = _obj.NeedPermit.HasValue && _obj.NeedPermit.Value;
/// Свойство "Наряд-допуск" сделать обязательным и редактируемым.
_obj.State.Properties.Permit.IsRequired = needPermit;
_obj.State.Properties.Permit.IsEnabled = needPermit;
}
6.Для свойства Требуется наряд-допуск добавьте обработчик события «Изменение значения свойства»:
public virtual void NeedPermitChanged(Sungero.Domain.Shared.BooleanPropertyChangedEventArgs e)
{
/// Свойство "Наряд-допуск" сделать обязательным и редактируемым.
Functions.ProjectActivity.SetPermitAsRequired(_obj);
/// Очистить значение свойства "Наряд-допуск",
/// если флажок "Требуется наряд-допуск" сначала был установлен,
/// а затем снят.
if (e.NewValue.HasValue && !e.NewValue.Value)
{
_obj.Permit = null;
}
}
7.В редакторе перекрытого типа сущности добавьте обработчик события «Обновление формы»:
public override void Refresh(Sungero.Presentation.FormRefreshEventArgs e)
{
base.Refresh(e);
Functions. ProjectActivity.SetPermitAsRequired(_obj);
}
8.Перейдите в узел «Форма» и в контекстном меню выберите пункт Добавить вкладку. Укажите для вкладки имя и отображаемое имя. Убедитесь, что установлен флажок Отображать в форме.
9.Добавьте на новую вкладку группу контролов. Разместите в ней контролы Требуется наряд-допуск и Наряд-допуск и свяжите их с созданными свойствами:
В результате после публикации в карточке этапа появляются новые контролы:
В табличной части отображаются новые столбцы:
© Компания Directum, 2024 |