Именно с FR — не знаю. В общем случае делается специальная карточка, которая при открытии отправляет по почте что надо кому надо и сразу закрывается. А в планировщик Windows добавляется задание вроде:
Наваял функцию для автоматического экспорта отчета
function btnFormAutoOnClick(Control){//по кнопке сформировать файл формата PDF
var ReportCode ='fr_Reestr_Work';
var FilteredDatasetCode ='ds_Reestr_Work';
var Report = Services.GetNewItemByUSI(ReportCode);
var ReportPreviewer = Services.GetNewItemByUSI('wnd_BaseFastReportPreview');
var ReportPreviewerComponent = ReportPreviewer.Attributes('ReportPreviewer');
var ReportDataset = Services.GetNewItemByUSI(FilteredDatasetCode);
SetAttribute(ReportPreviewer, 'Report', Report);// формирование дат для примера
var CurrentData =new Date();
var FullYear = CurrentData.getFullYear();
var Month = CurrentData.getMonth();
Month = Month -1;if(Month<0){Month=11;FullYear=FullYear-1;}
var StartDate =new Date(FullYear, Month, 1);
var FinishDate =new Date(FullYear, Month , 2);
StartDate = StartDate.getVarDate();
FinishDate = FinishDate.getVarDate();//ApplyDatasetFilter(ReportDataset, 'StartDate', StartDate, true);//ApplyDatasetFilter(ReportDataset, 'FinishDate', FinishDate, true);
ReportPreviewer.Build();
var FilterWindow = ReportPreviewer.ComponentsByName('FilterWindow');
FilterWindow = fbcMain;
var frpMain = ReportPreviewer.ComponentsByName('frpMain');
frpMain.Report= Report;//**********************************************************************// загрузим сохраненный фильтр
var ContactID = Connector.CurrentUser.ID;
var ReportID=Report.ID;//
var FiltrDataset = Services.GetNewItemByUSI('ds_SaveFiltersReports');
ApplyDatasetFilter(FiltrDataset, 'ContactID', ContactID, true);
ApplyDatasetFilter(FiltrDataset, 'ReportID', ReportID, true);
FiltrDataset.Open();
var XMLStorage = GetNewXMLStorage();if(!IsEmptyValue(FiltrDataset.Values("ID"))){
XMLStorage.Text=FiltrDataset.Values("Filtr");
fbcMain.DataFieldsList.Deserialize(XMLStorage.RootNode);}else{return;}
fbcMain.DatasetLink.Dataset= ReportDataset;
fbcMain.ApplyFilter();//**********************************************************************
frpMain.PrepareReport();
frpMain.IsVisible=false;
ReportPreviewerComponent.DatasetByUSI(FilteredDatasetCode)= ReportDataset;
frpMain.PreviewReport();
System.BeginProcessing();//задержка для стабильного формирования PDF файла
System.Sleep(100);
System.EndProcessing();// собственно сам экспорт
var TempFileName = System.CreateObject('TSObjectLibrary.Value');
var FileNames = System.CreateObject('TSObjectLibrary.StringsList');
TempFileName.Value="C:\\!!\\Отчет по количественному выполнению рейсов.pdf";try{
frpMain.Export(2, TempFileName, false);}catch(e){}}
Но...
Если устанавливаю фильтр
//ApplyDatasetFilter(ReportDataset, 'StartDate', StartDate, true);
//ApplyDatasetFilter(ReportDataset, 'FinishDate', FinishDate, true);
то работает.
А возможно установить для ds_Reestr_Work ранее сохраненный фильтр в ds_SaveFiltersReports (формат фильтра XML)?
"Прищепа Владимир" написал:А возможно установить для ds_Reestr_Work ранее сохраненный фильтр в ds_SaveFiltersReports (формат фильтра XML)?
Владимир, возможно. Как пример реализации обратите внимание на function GetSelectGroupResult(Sender, Message) сервиса wnd_AccountInMassMailGridAreaScript. а именно блок кода:
Добрый день, Наталия. Сервис ds_SaveFiltersReports никакого отношения к отчету не имеет. Из него я получаю фильтр в форме XML. И куда его (текст XML) занести в FiltersBuilder мне не понятно.
Добрый день!
Владимир, фильтр, хранящийся в сервисе ds_SaveFiltersReports, должен иметь отношение к датасету отчета, чтобы он мог к нему применяться.
Нет возможности применить любой XML фильтр к любому датасету (например, нельзя применить фильтр, настроенный в разделе Задачи к разделу Контрагенты, так как наблюдается разная структура таблиц, select query).
Т.е. в сервисе, хранящем фильтры, должны содержаться фильтры преднастроенные для датасета отчета.
XML фильтр сам по себе без FilterBuilder можно использовать только для просмотра, а чтобы применить фильтр нужно использовать построитель фильтров.
"Бондарь Наталия" написал:
XML фильтра сам по себе без FilterBuilder можно использовать только для просмотра, а чтобы применить фильтр нужно использовать построитель фильтров.
И где можно взять этот мифический построитель фильтров?
А также описание его работы с примерами.
"Прищепа Владимир" написал:А также описание его работы с примерами.
С методами и свойствами Вы можете ознакомиться в SDK, примеры работы можно посмотреть в конфигурации.
Например, скрипт wnd_AccountInMassMailGridAreaScript