Работа с шаблонами отчетов¶
Компоненты для работы с шаблонами отчетов находятся в библиотеке !SharpComponents, именованная область (namespace) Digispot.Report.
Класс объекта шаблона Digispot.Report.!ReportData реализует два метода для сохранения и загрузки данных из файла, это метод Save и статический метод Load, возвращающий объект с данными, загруженными из файла.
Другие методы:
GetParamsEmptyTable() - возвращает DataTable, объект пустой таблицы параметров отчета, в которой каждая колонка соответствует параметру отчета по наименованию и типу данных. Первая строка таблицы должна содержать значения параметров.
Свойства:
TableColumns As List<!ReportDataColumn> - список колонок, используемых в таблице с данными; TableParams As List<!ReportDataParam> - список колонок таблицы параметров; PageBounds As Rectangle - размеры страницы; PageMargins As Margins - границы страницы.
Компонент *Digispot.Report.*ucReportEditor предназначен для создания/редактирования шаблонов отчетов. Реализует следующие методы:
New(!DataColumnCollection columns, DataColumnCollection parms) - создает новый шаблон получая в качестве параметров список колонок таблиц данных и параметров;
New(List<!ReportDataColumn> columns, List<!ReportDataParam> parms) - аналогично предыдущему, только другие списки;
New(List<!ReportDataColumn> columns) - аналогично предыдущему, только без списка параметров (отчет без параметров);
Boolean Load(string filename) - загрузка шаблона из файла, возвращает результат операции;
Boolean Save(string filename, Boolean ovl) - сохранение шаблона в файл, возвращает результат операции.
Свойства:
ReportData As Digispot.Report.!ReportData - возвращает объект редактируемого шаблона отчета.
Пример, реализующий формирование отчета с использованием ранее подготовленного отчета и передачей таблиц данных и параметров в качестве параметров.
using Digispot.Report;
...
ReportData report = ReportData.Load("C:\report.xml");
DataTable parms = report.GetParamsEmptyTable();
DataRow row = parms.NewRow();
row[[Param1]] = "Проверка параметра!";
row[[Param2]] = DateTime.Now;
parms.Rows.Add(row);
frmPreviewDefault fprev = new frmPreviewDefault(table, parms, report);
fprev.Show();