<< Click to Display Table of Contents >> Разработка > Примеры разработки > Документы Как сгенерировать отчет и записать его в версию документа |
Ситуация
После подписания договора необходимо в один клик формировать лист согласования и записывать его в новую версию договора.
Решение
В карточку договора нужно добавить кнопку и связать ее с действием, в событиях которого вызывается серверная функция. В функции формируется отчет «Лист согласования» и записывается в новую версию.
1.В своем решении перекройте тип документа «Договор» (Sungero.Contracts.Contract).
2.В редакторе решения добавьте зависимость от модуля «Договоры» (Sungero.Contracts) и «Документооборот» (Sungero.Docflow).
3.Метод report.ExportTo() можно использовать только в серверном коде. Поэтому в перекрытом типе документа создайте серверную функцию GetApprovalSheetDEVRX() и напишите ее код:
/// <summary>
/// Сформировать лист согласования и добавить в новую версию документа.
/// </summary>
public virtual void GetApprovalSheetDEVRX()
{
// Получить отчет «Лист согласования».
var report = Sungero.Docflow.Reports.GetApprovalSheetReport();
report.Document = _obj;
// Экспортировать отчет в новую версию документа.
report.ExportTo(_obj);
// Сохранить документ.
_obj.Save();
}
4.В перекрытом типе документа создайте действие AddApprovalSheetDEVRX и в событии Выполнение вызовите ранее созданную серверную функцию. Для этого напишите код:
/// <summary>
/// Добавить лист согласования в новую версию документа.
/// </summary>
/// <param name="e"></param>
public virtual void AddApprovalSheetDEVRX(Sungero.Domain.Client.ExecuteActionArgs e)
{
Functions.Contract.Remote.GetApprovalSheetDEVRX(_obj);
}
5.В карточке договора на ленту в группу «Подписание» добавьте кнопку Добавить лист согласования и в качестве вызываемого действия выберите AddApprovalSheetDEVRX.
Чтобы не возникало путаницы с названиями, рекомендуется скрыть стандартную кнопку Лист согласования. Она продублирована в группе «Отчеты», действие можно вызвать оттуда. Чтобы скрыть кнопку, выделите ее в редакторе форм в узле «Лента» и снимите флажок Отображать на ленте.
6.Опубликуйте разработку.
В результате в карточке договора появится кнопка Добавить лист согласования:
При нажатии на кнопку формируется лист согласования и записывается в новую версию договора:
© Компания Directum, 2024 |