Add(Name: String, [Type: PrxSheetType = 1]): IPrxSheet;
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.
Для выполнения примера в репозитории предполагается наличие регламентного отчета с идентификатором 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(5, 5).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. Вместо компонентов 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[5, 5].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;
См. также: