StartBatchCommand(FileName: String; FormatTag: String);
FileName. Наименование файла, в который будет произведен экспорт;
FormatTag. Формат файла, в который будет произведен экспорт. Возможен экспорт в следующие форматы:
mht;
html;
pdf;
xls;
rtf;
emf.
Метод StartBatchCommand запускает пакетный экспорт данных в файл указанного формата.
После вызова данного метода, при каждом вызове метода IExporter.ExportToFile будет происходить экспорт отчета, определенного в свойстве IExAnalyzerExporter.ExAnalyzer. Экспорт будет производиться в файл с параметрами, указанными в методе StartBatchCommand. Для завершения пакетного экспорта данных необходимо вызвать метод IExAnalyzerExporter.FinishBatchCommand. Таким образом, в один файл может быть экспортировано несколько отчетов.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1», компонента MetabaseOpenDialog с наименованием «MetabaseOpenDialog1» и компонента Memo с наименованием «Memo1». Пример будет выполняться при нажатии кнопки «Button1».
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Filter: IMetabaseDialogClassFilter;
Objects: IMetabaseObjectDescriptorList;
List: IStringList;
Exp: ExAnalyzerExporter;
i: integer;
id: String;
Count: Integer;
Begin
MetabaseOpenDialog1.MultiSelect := True;
// Создание фильтра для диалога открытия объекта репозитория.
Filter := New MetabaseDialogClassFilter.Create;
Filter.Description := "Экспресс-отчеты";
// Определение типа объектов, которые будут отображаться в диалоге
//при использовании данного фильтра: экспресс - отчет.
Filter.ObjectClass := MetabaseObjectClass.KE_CLASS_EXPRESSREPORT;
MetabaseOpenDialog1.Filters.AddFilter(Filter);
If MetabaseOpenDialog1.Execute(Self) Then
// Данные операции выполняются, если пользователь выбрал один или более экспресс-отчет.
Objects := MetabaseOpenDialog1.Objects;
Count := Objects.Count;
List := Memo1.Lines;
List.Add("Количество отчетов выбранных для экспорта:" + Count.ToString);
// Начало пакетного экспорта выбранных отчетов.
Exp := New ExAnalyzerExporter.Create;
Exp.StartBatchCommand("C:\BatchFileExp.xls", "XLS");
For i := 0 To Count - 1 Do
id := Objects.Item(i).Id;
Exp.ExAnalyzer := MetabaseClass.Active.ItemById(id).Bind As IEaxAnalyzer;
Exp.ExportToFile("", "XLS");
List.Add("Отчет '" + Objects.Item(i).Name + "' экспортирован");
End For;
// Окончание пакетного экспорта выбранных отчетов.
Exp.FinishBatchCommand;
List.Add("Экспорт отчетов завершен");
End If;
End Sub Button1OnClick;
При выполнении примера будет вызван диалог открытия объекта репозитория. В нем необходимо выбрать экспресс-отчеты, которые необходимо экспортировать. После выбора объектов будет произведен их экспорт в файл «C:\BatchFileExp.xls» формата XLS. Сообщения о ходе экспорта будут выведены в компонент «Memo1».
См. также: