StartBatchCommand(FileName: String; FormatTag: String);
FileName. Наименование файла, в который будет произведен экспорт.
FormatTag. Формат файла, в который будет произведен экспорт. Возможен экспорт в следующие форматы:
xlsx;
xls;
pdf;
rtf;
ppxt;
html;
mht;
ods;
emf;
png. Для корректного экспорта регламентного отчёта в формат png определите диапазон экспортируемых листов.
Метод StartBatchCommand начинает пакетный экспорт данных в файл указанного формата.
После вызова данного метода при каждом вызове метода ExportToFile будет происходить экспорт отчёта, определенного в свойстве Report. Экспорт будет производиться в файл с параметрами, указанными в методе StartBatchCommand. Для завершения пакетного экспорта данных вызовите метод FinishBatchCommand. Таким образом, в один файл может быть экспортировано несколько отчётов.
Если в различных экспортируемых отчётах могут быть листы с одинаковыми наименованиями, то учитывайте следующее:
Экспорт в формат XLS будет невозможен, все листы должны иметь уникальное наименование;
При экспорте в формат XLSX учитывается свойство AllowSameSheetNames;
При экспорте в формат ODS листы с одинаковыми наименованиями всегда переименовываются путём добавления постфикса с индексом листа.
Для выполнения примера в репозитории предполагается наличие трёх регламентных отчётов с идентификаторами YEAR_REPORT20, YEAR_REPORT21, YEAR_REPORT22. В разных отчётах могут быть листы с одинаковыми наименованиями.
Добавьте ссылки на системные сборки: Metabase, Report.
Sub UserProc;
Var
Mb: IMetabase;
Exporter: IPrxReportExporter;
Begin
Mb := MetabaseClass.Active;
Exporter := New PrxReportExporter.Create;
// Начало пакетного экспорта отчётов
Exporter.StartBatchCommand("D:\SUMMARY_REPORT.ods", "ods");
// Экспорт отдельных отчётов
Exporter.Report := Mb.ItemById("YEAR_REPORT20").Bind As IPrxReport;
Exporter.ExportToFile("", "ods");
Exporter.Report := Mb.ItemById("YEAR_REPORT21").Bind As IPrxReport;
Exporter.ExportToFile("", "ods");
Exporter.Report := Mb.ItemById("YEAR_REPORT22").Bind As IPrxReport;
Exporter.ExportToFile("", "ods");
// Завершение пакетного экспорта
Exporter.FinishBatchCommand;
End Sub UserProc;
При выполнении примера будет три регламентных отчёта будут экспортированы в файл в формате ODS. Листы с одинаковыми наименованиями будут переименованы.
См. также: