Copy([Sheet: IPrxSheet = Null], [Range: IPrxRange]): IPrxDataIsland;
Метод Copy осуществляет копирование области данных.
Для выполнения примера предполагается наличие в репозитории регламентного отчёта с идентификатором REPORT, который содержит два листа. На первом листе должна содержаться область данных.
Добавьте ссылки на системные сборки: Metabase, Report, Tab.
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObject;
DI: IPrxDataIsland;
Range: ITabRange;
Report: IPrxReport;
Sheets: IPrxSheets;
Sheet: IPrxSheet;
SheetTab: IPrxTable;
Table: ITabSheet;
Begin
MB := MetabaseClass.Active;
// Получим регламентный отчёт
MObj := MB.ItemById("REPORT").Edit;
Report := MObj As IPrxReport;
DI := Report.DataIslands.Item(0);
// Зададим ячейку и скопируем область данных с первого листа на второй
Sheets := Report.Sheets;
Sheet := Sheets.Item(Report.Sheets.Count-1);
SheetTab := Sheet As IPrxTable;
Table := SheetTab.TabSheet;
Range := Table.Cell(20,5);
DI.Copy(Sheet,Range);
// Обновим отчёт
Report.Recalc;
// Сохраним изменения
MObj.Save;
End Sub UserProc;
После выполнения примера на второй лист регламентного отчёта в ячейку F20 будет скопирована область данных с первого листа.
См. также: