BaseCardControl.ChangeState — метод (StatesStateMachineBranch)
Изменяет состояние карточки следуя предоставленному переходу автомата состояний.
-
Пространство имён:
DocsVision.BackOffice.WinForms
-
Сборка:
DocsVision.BackOffice.WinForms.dll
Синтаксис
public void ChangeState(StatesStateMachineBranch branch)
csharp
- Параметры
-
- branch
-
Переход автомата состояний
Исключения
Исключение | Условие |
---|---|
Ошибка возвращается в случае, если не задан параметр |
Заметки
При смене статуса не происходит сохранение карточки — нужно выполнить сохранение самостоятельно.
Примеры
Ниже приведем пример скрипта СУБП, выполняющего смену статуса карточки на "Согласован"
using System.Collections.Generic;
using System.Linq;
using DocsVision.BackOffice.ObjectModel.Services;
private void Button_Click(System.Object sender, System.EventArgs e)
{
IList<StatesStateMachineBranch> statesStateMachineBranch = CardControl.ObjectContext.GetService<IStateService>().GetStateMachineBranches(BaseObject.SystemInfo.CardKind); (1)
StatesStateMachineBranch statesStateMachineBranchLines = statesStateMachineBranch.Where(t => t.StartState = base.BaseObject.SystemInfo.State
&& t.BranchType = StatesStateMachineBranchBranchType.Line
&& t.EndState.DefaultName.Equals("Is approved")).FirstOrDefault(); (2)
this.CardControl.ChangeState(statesStateMachineBranchLines); (3)
}
csharp
1 | Получение всех значений автомата состояний для карточки. |
2 | Выбирается первый переход с начальным статусом соответствующем текущему статусу карточки, и названием "Согласован". |
3 | Смена статуса. |