Добавление и удаление строк блока
Добавление строки в блок
В случае, если требуется добавить новую запись блока, используется метод context.Block.Add(item) – в этом случае запись отметится как "добавленная" и при сохранении контекста (в задаче бизнес-процесса (БП) Действия – Сохранить или при переходе на следующий этап БП) данные автоматически сохранятся.
В случае, если требуется сохранить добавленные записи блока скриптом, необходимо сохранить родительский объект, например, в задаче БП это контекст процесса context.Save(). Если в задаче БП изменяется блок, находящийся в экземпляре объекта контекстной переменной, необходимо сохранить экземпляр этого объекта.
Ниже представлен пример заполнения полей задачи.
При нажатии на кнопку Сохранить выполняется следующий сценарий:
public virtual void Save (Context context, EleWise.ELMA.Model.Views.FormViewBuilder<Context> form)
{
if (context.Name != null)
{
var result = InterfaceActivator.Create<P_RabotaSBlokamiVScenarii_Nomenclature>();
result.Name =context.Name;
result.Sum = context.Amount * context.Cost;
context.Nomenclature.Add(result);
}
}
Ниже представлен пример заполнения блока при нажатии на кнопку Сохранить.
Удаление строки блока
В случае, если требуется удалить запись блока, используется метод context.Block.Remove(item).
Ниже приведен сценарий для удаления строки блока (в зависимости от того, заполнено определенное поле в этой строке или нет) с формы задачи:
public virtual void Delete (Context context, EleWise.ELMA.Model.Views.FormViewBuilder<Context> form)
{
foreach (var item in context.Nomenclature.ToList()) // для каждого элемента блока
{
if (item.Sum == null) // если поле не заполнено
context.Nomenclature.Remove(item); // то удаляем этот элемент блока
}
}
На рисунке ниже изображен заполненный блок.
Далее представлен результат удаления записи блока с помощью кнопки Удалить значение.
Удаление всех строк блока
В том случае, если необходимо полностью удалить строки блока из БД, необходимо воспользоваться следующим сценарием:
public virtual void Delete (Context context, EleWise.ELMA.Model.Views.FormViewBuilder<Context> form)
{
foreach (var item in context.Nomenclature.ToList())
{
context.Nomenclature.Remove(item);
item.Delete();
}
}
Ниже представлен результат удаления всех элементов блока с помощью кнопки Удалить значение.