Type: PrxSheetType;
Свойство Type возвращает тип листа.
Для работы с листом регламентного отчета в зависимости от его типа применяются различные интерфейсы: IPrxTable для значения PrxSheetType.Table и IPrxDocument для значения PrxSheetType.Document.
Для выполнения примера в репозитории предполагается наличие регламентного отчета с идентификатором REPORT.
Добавьте ссылки на системные сборки: Metabase, Report, Ui.
Sub UserProc;
Var
MB: IMetabase;
Report: IPrxReport;
Sheet: IPrxSheet;
Sheets: IPrxSheets;
SheetTab: IPrxTable;
i: Integer;
Begin
// Получаем текущий репозиторий
MB := MetabaseClass.Active;
// Получаем отчёт
Report := Mb.ItemById("REPORT").Edit As IPrxReport;
// Получаем листы отчёта
Sheets := Report.Sheets;
// Определяем, какие листы табличного типа
For i := 0 To Report.Sheets.Count - 1 Do
Sheet := Report.Sheets.Item(i);
If Sheet.Type = PrxSheetType.Table Then
SheetTab := Sheet As IPrxTable;
//Выводим сообщение
WinApplication.InformationBox("Лист " + Sheet.Name + " табличного типа");
End If;
End For;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Ui;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Report: IPrxReport;
Sheet: IPrxSheet;
SheetTab: IPrxTable;
Sheets: IPrxSheets;
i: integer;
WinAppCls: WinApplicationClass = New WinApplicationClassClass();
Begin
// Получаем текущий репозиторий
MB := Params.Metabase;
// Получаем отчёт
Report := Mb.ItemById["REPORT"].Edit() As IPrxReport;
// Получаем листы отчёта
Sheets := Report.Sheets;
// Определяем, какие листы табличного типа
For i := 0 To Report.Sheets.Count - 1 Do
Sheet := Report.Sheets.Item[i];
If Sheet.Type = PrxSheetType.pstTable Then
SheetTab := Sheet As IPrxTable;
//Выводим сообщение
WinAppCls.InformationBox("Лист " + Sheet.Name + " табличного типа", Null);
End If;
End For;
End Sub;
В результате выполнения примера будет выведено сообщение о наличии табличного листа в отчёте, содержащие наименование листа. Сообщение будет выводится столько раз сколько табличных листов в отчёте.
См. также: