Versions – работа с версиями
<< Click to Display Table of Contents >> Объектная модель > Content – управление документами > ElectronicDocuments – документы Versions – работа с версиями |
![]() ![]() ![]() |
В версиях находится содержимое электронного документа. Пользователь в Directum RX может создавать вручную версии. Например, при импорте файла в новую версию документа, который редактировался вне системы. Также версии могут создаваться программно, например, когда документ приходит исполнителю на доработку, автоматически создается версия для исправления замечаний согласующих.
По умолчанию всегда идет работа с последней версией. Если необходимо редактировать или просматривать другую версию, то в карточке документа можно открыть панель со списком всех версий.
Для работы с версиями у документа есть методы и свойства. Кроме этого у самой версии тоже есть методы. Работа с существующими версиями ведется через свойство-коллекцию Versions. Чтобы проверить, имеет ли документ хотя бы одну версию, всегда используйте свойство HasVersions. Преимущество этого свойства в том, что оно не загружает список версий с сервера.
Методы
Имя |
Описание |
---|---|
Редактировать версию документа |
|
Export() + 2 перегрузки |
Экспортировать версию документа в файл |
Import() + 3 перегрузки |
Импортировать файл в версию документа |
Open() + 2 перегрузки |
Открыть версию документа |
Print() + 2 перегрузки |
Отправить версию документа на печать |
Обновить параметры шаблона в содержимом версии документа |
Имя |
Тип |
Описание |
---|---|---|
AssociatedApplication |
Приложение-обработчик, с помощью которого открывается версия |
|
Author |
Автор версии |
|
IBinaryData |
Содержимое версии |
|
BodyAssociatedApplication |
IBodyAssociatedApplication |
Приложение-обработчик, с помощью которого открывается содержимое версии до преобразования. Используется для определения приложения-обработчика при копировании версии, для которой задано отображаемое представление. |
Created |
Nullable<DateTime> |
Дата и время создания версии |
ElectronicDocument |
Электронный документ |
|
IsHidden |
bool |
Признак того, что версия скрыта |
Modified |
Nullable<DateTime> |
Дата и время последнего изменения версии |
ModifiedBy |
Пользователь, который последним изменял версию |
|
Notе |
string |
Примечание к версии |
Number |
Nullable<int> |
Номер версии |
IBinaryData |
Отображаемое представление для версии документа |
|
State |
<Интерфейс сущности>State. Например, IOfficialDocumentState |
Состояние сущности |
Пример 1. Проверка наличия хотя бы одной версии у документа
if (!_obj.HasVersions)
e.AddWarning(string.Format("Создайте хотя бы одну версию для документа {0}", _obj.Name));
Пример 2. Проверка наличия версии в обработчике события «Возможность выполнения»
Необходимо сделать действие доступным, если у документа есть хотя бы одна версия и документ не является только что созданным и еще не сохраненным.
Для этого в событие действия «Возможность выполнения» добавьте следующий код:
public virtual bool CanOpenExchangeOrderReport(Sungero.Domain.Client.CanExecuteActionArgs e)
{
return _obj.HasVersions && !_obj.State.IsInserted;
}
С помощью свойства документа HasVersions проверяется наличие версий. С помощью свойства IsInserted состояния сущности проверяется, является ли документ только что созданным.
Пример 3. Получение последней версии документа в серверной функции
Последняя версия вычисляется с помощью метода Max() у свойства документа Versions.
[Remote(IsPure = true)]
public static bool DocumentHasBodyUpdateAfterLastView(Sungero.Content.IElectronicDocument document)
{
if (!document.HasVersions)
return false;
// Получить последнюю версию документа.
var lastVersionNumber = document.Versions.Max(v => v.Number);
…
}
Пример 4. Скрыть все версии, кроме последней
foreach (var version in doc.Versions)
{
if (!version.Equals(doc.LastVersion))
version.IsHidden = true;
}
Примечание. Скрывать последнюю версию документа нельзя. Если попытаться сделать это программно, то после выполнения кода возникнет ошибка валидации.
© Компания Directum, 2024 |