IPrxSheets.Add

Синтаксис Fore

Add(Name: String, [Type: PrxSheetType = 1]): IPrxSheet;

Синтаксис Fore.NET

Add(Name: string; Type: Prognoz.Platform.Interop.Report.PrxSheetType): Prognoz.Platform.Interop.Report.IPrxSheet;

Параметры

Name. Наименование нового листа;

Type. Тип добавляемого листа, по умолчанию будет добавлен лист табличного типа.

Описание

Метод Add добавляет лист в регламентный отчет.

Комментарии

Если значение параметра Type равно PrxSheetType.Table, возвращаемый методом Add лист может быть приведен к интерфейсу IPrxTable, если равно PrxSheetType.Document - к интрефейсу IPrxDocument.

Пример Fore

Для выполнения примера в репозитории предполагается наличие регламентного отчета с идентификатором PROC_REPORT_TMP.

Добавьте ссылки на системные сборки: Metabase, Report.

Sub UserProc;
Var
    MB: IMetabase;
    Report: IPrxReport;
    Sheets: IPrxSheets;
    Sheet: IPrxSheet;
    SheetDoc: IPrxDocument;
    SheetTab: IPrxTable;    
Begin
    // Получаем текущий репозиторий
    MB := MetabaseClass.Active;
    
// Получаем отчёт
    Report := Mb.ItemById("PROC_REPORT_TMP").Edit As IPrxReport;
    
// Получаем листы отчёта
    Sheets := Report.Sheets;
    Sheets.Clear;
    
// Добавляем табличный лист
    Sheet := Sheets.Add("Table1");
    Debug.WriteLine(
"Добавлен табличный лист " + Sheet.Name + ";");
    
// Вводим значение на табличный лист
    SheetTab := Sheet As IPrxTable;
    SheetTab.TabSheet.Cell(
55).Value := 1;
    
// Добавляем текстовый лист
    Sheet := Sheets.Add("Doc4", PrxSheetType.Document);
    Debug.WriteLine(
"Добавлен текстовый лист " + Sheet.Name + ";");
    
// Вводим значение на текстовый лист
    SheetDoc := Sheet As IPrxDocument;
    SheetDoc.RichText := 
"{\rtf1 Текстовый лист}";
    
// Вставляем табличный лист
    Sheet := Sheets.Insert(1"Table2");
    Debug.WriteLine(
"Вставлен табличный лист " + Sheet.Name + ";");
    
// Вставляем текстовый лист
    Sheet := Sheets.InsertAfter(1"Doc3", PrxSheetType.Document);
    Debug.WriteLine(
"Вставлен текстовый лист " + Sheet.Name + ".");
    
// Сохраняем отчёт
    (Report As IMetabaseObject).Save;
End Sub UserProc;

В результате выполнения примера в отчёт добавлены табличный и текстовый листы, вставлены табличный и текстовый листы, на табличный лист Table1 введено значение 1, на текстовый лист Doc4 добавлен текст «Текстовый лист», в окно консоли выведена соответствующая информация о добавлении и вставке листов.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.

Imports Prognoz.Platform.Interop.Report;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Report: IPrxReport;
    Sheets: IPrxSheets;
    SheetDoc: IPrxDocument;
    SheetTab: IPrxTable;
    Sheet: IPrxSheet;
Begin
    
// Получаем текущий репозиторий
    MB := Params.Metabase;
    
// Получаем отчёт
    Report := Mb.ItemById["PROC_REPORT_TMP"].Edit() As IPrxReport;
    
// Получаем листы отчёта
    Sheets := Report.Sheets;
    Sheets.Clear();
    
// Добавляем табличный лист
    Sheet := Sheets.Add("Table1", PrxSheetType.pstTable);
    System.Diagnostics.Debug.WriteLine(
"Добавлен табличный лист " + Sheet.Name + ";");
    
// Вводим значение на табличный лист
    SheetTab := Sheet As IPrxTable;
    SheetTab.TabSheet.Cell[
55].Value := 1;
    
// Добавляем текстовый лист
    Sheet := Sheets.Add("Doc4", PrxSheetType.pstDocument);
    System.Diagnostics.Debug.WriteLine(
"Добавлен текстовый лист " + Sheet.Name + ";");
    
// Вводим значение на текстовый лист
    SheetDoc := Sheet As IPrxDocument;
    SheetDoc.RichText := 
"{\rtf1 Текстовый лист}";
    
// Вставляем табличный лист
    Sheet := Sheets.Insert(1"Table2", PrxSheetType.pstTable);
    System.Diagnostics.Debug.WriteLine(
"Вставлен табличный лист " + Sheet.Name + ";");
    
// Вставляем текстовый лист
    Sheet := Sheets.InsertAfter(1"Doc3", PrxSheetType.pstDocument);
    System.Diagnostics.Debug.WriteLine(
"Вставлен текстовый лист " + Sheet.Name + ".");
    
// Сохраняем отчёт
    (Report As IMetabaseObject).Save();
End Sub;

См. также:

IPrxSheets | IPrxTable | IPrxDocument