CreateSelectTypeDialog – создать диалог с выбором типа сущности
<< Click to Display Table of Contents >> Объектная модель > Основные механизмы > Dialogs – диалоги CreateSelectTypeDialog – создать диалог с выбором типа сущности |
Возникают ситуации, когда необходимо попросить пользователя выбрать какой-либо тип сущности из списка возможных. Например, если при создании документа пользователь некорректно выбрал тип, то при попытке его сменить новый тип выбирается из списка возможных: акт выполненных работ, входящее письмо, входящий счет и т.д.
Для этого используется диалог с выбором типа сущности. Кроме отображения заголовка диалога и списка типов сущностей, в диалог автоматически добавляются кнопки ОК и Отмена. С помощью них диалог позволяет получать реакцию пользователя при выборе типа сущности.
Для добавления диалога используйте метод CreateSelectTypeDialog().
Синтаксис
C# |
public static ISelectTypeDialog CreateSelectTypeDialog(string title, params IEntityInfo[] types); |
Параметры
title – заголовок диалога. Чтобы сориентировать пользователя в появившемся окне, в заголовке отражается краткая суть диалога. Лучше всего использовать существительное или словосочетание. Например, при изменении типа простого документа диалог имеет заголовок «Смена типа»;
types – список типов сущности, которые доступны пользователю для выбора. В том числе можно передавать базовые типы сущностей, самостоятельно созданные разработчиком (абстрактные типы).
Возвращаемое значение
Диалог с выбором типа сущности.
Методы
Имя |
Описание |
---|---|
Показать диалог |
Свойства
Имя |
Тип |
Описание |
---|---|---|
SelectedType |
IEntityInfo |
Информация о выбранном типе сущности |
Пример. Смена типа документа
// Сменить тип документа.
// <param name="document"> Исходный документ из сервиса обмена. </param>
// <param name="types"> Типы документов, доступные для выбора при смене типа. </param>
// <param name="e"> Аргументы действия для вывода подсказок. </param>
public virtual void ChangeDocumentType(IOfficialDocument document, List<Domain.Shared.IEntityInfo> types, Sungero.Domain.Client.ExecuteActionArgs e)
{
// Запретить смену типа, если документ или его тело заблокировано.
var isCalledByDocument = CallContext.CalledDirectlyFrom(OfficialDocuments.Info);
if (isCalledByDocument && Functions.Module.IsLockedByOther(document) ||
!isCalledByDocument && Functions.Module.IsLocked(document) ||
Functions.Module.VersionIsLocked(document.Versions.ToList()))
{
Dialogs.ShowMessage(Docflow.ExchangeDocuments.Resources.ChangeDocumentTypeLockError,
MessageType.Error);
return;
}
// Создать диалог изменения типа документа и показать его.
var title = ExchangeDocuments.Resources.TypeChange;
var dialog = Dialogs.CreateSelectTypeDialog(title, types.ToArray());
if (dialog.Show() == DialogButtons.Ok)
{
var convertedObj = document.ConvertTo(dialog.SelectedType);
convertedObj.Show();
e.CloseFormAfterAction = true;
}
}
© Компания Directum, 2024 |