Выгрузка отчета из карточки задачи и передача параметра

Добрый день!

Задача следующая: по кнопке из карточки задачи выгружать отчет с данными из этой карточки.
Вообще отчет нужно выгрузить в эксель, но можно сделать промежуточную стадию через фастрепорт.

Вопрос в том, как по нажатию кнопки на карточке вызвать создание отчета и передать в него id задачи (не через окно фильтрации).

И можно ли из грида выгрузить данные в эксель "вертикально":

поле1 значение1
поле2 значение2
...

Нравится

3 комментария

А Excel-отчёт уже существует или его надо делать? Если второе - то по этой кнопке нужно самостоятельно программировать открытие Excel, вывод в нужные ячейки значений и т.д. Есть библиотека scr_ExcelUtils, которая упрощает типовые операции при разработке отчёта.

Здравствуйте!
Елена, вот пример вызова отчета FastReport из кода:

var Report = Services.GetNewItemByUSI('fr_YourReport');
var ReportPreviewer = Services.GetNewItemByUSI('wnd_BaseFastReportPreview');
var ReportPreviewerComponent = ReportPreviewer.Attributes('ReportPreviewer');
var ReportDataset = Services.GetNewItemByUSI('ds_ReportDataset');
SetAttribute(ReportPreviewer, 'Report', Report);
ApplyDatasetFilter(ReportDataset, 'ID', dlData.Dataset.Values('ID'), true);
ReportPreviewer.Build();
ReportPreviewer.Prepare();
ReportPreviewerComponent.DatasetByUSI('ds_ReportDataset') = ReportDataset;

По поводу второго варианта возможно Вам подойдет следующий функционал?
http://www.community.terrasoft.ua/blogs/7302

В случае собственного окна фильтрации и вывода отчета для всех записей делаем так :

var Report = Services.GetNewItemByUSI('fr_FastReportName');
var ReportPreviewer = Services.GetNewItemByUSI('wnd_BaseFastReportPreview');
var ReportPreviewerComponent = ReportPreviewer.Attributes('ReportPreviewer');
var ReportDataset = Services.GetNewItemByUSI('ds_DatasetName');
var FilterForm = Services.GetNewItemByUSI('wnd_FilterWindowName');
SetAttribute(ReportPreviewer, 'Report', Report);
//ApplyDatasetFilter(ReportDataset, 'ID', dlData.Dataset.Values('ID'), true);
SetAttribute(ReportPreviewer, 'FilterForm', FilterForm);
SetAttribute(ReportPreviewer, 'ShowFilterForm', true);
 
ReportPreviewer.Build();
ReportPreviewer.Prepare();
ReportPreviewerComponent.DatasetByUSI('ds_ReportDataset') = ReportDataset;
Показать все комментарии