<< Click to Display Table of Contents >> Разработка > Элементы разработки > Отчеты > Дизайнер отчета Добавление параметров |
Параметры отчета – переменные, на основании которых формируется отчет. Значения параметров запрашиваются у пользователя с помощью диалоговых окон или вычисляются на основе других параметров и данных отчета.
Используются для:
•фильтрации данных по условию, заданному в параметре;
•отображения значения параметра в отчете.
Например, в отчете Журнал регистрации исходящих документов в качестве параметров используется интервал дат. В отчет попадают документы, зарегистрированные в указанный период.
К параметрам отчета можно обращаться в обработчиках событий, при формировании источников данных и при настройке макета.
Существуют предопределенные параметры отчета, создаваемые автоматически:
•ExportFormat. Формат, в котором будет сформирован отчет;
•Entity. Сущность, для которой строится отчет. Параметр создается только для отчетов типа сущности. Параметр обязателен к заполнению, по умолчанию не заполняется.
Также для каждого отчета можно создавать дополнительные параметры.
Предположим, необходимо разработать отчет, в котором будут содержаться исходящие документы, зарегистрированные в определенном журнале регистрации в некоторый период времени. Перед формированием отчета пользователь в диалоговом окне указывает значения параметров:
•даты начала и завершения периода формирования отчета;
•журнал регистрации, по документам которого нужно построить отчет.
Для этого:
1.В редакторе отчета перейдите в узел «Дизайнер».
2.На панели «Данные» в контекстном меню узла «Параметры» выберите пункт Новый параметр….
3.На панели «Данные» выделите добавленный параметр и на панели «Свойства» заполните свойства параметра:
DataType. Тип данных параметра. Значение по умолчанию String. Для параметров, соответствующих датам начала и завершения периода формирования отчета, укажите значение DataTime. Для параметра, соответствующего журналу регистрации, укажите значение Sungero.Docflow.IDocumentRegister (тип справочника «Журнал регистрации»).
Expression. Выражение, которое возвращает значение параметра. Значение выражения вычисляется при обращении к параметру. Например, используется для указания значения по умолчанию. Так как значения параметров будут запрашиваться с помощью диалогового окна, оставьте свойство незаполненным для всех параметров.
IsCollection. Признак того, что свойство является коллекцией значений. Возможные значения:
•True. Значением параметра будет коллекция элементов типа, который указан в поле DataType. В этом случае для добавления элементов в коллекцию используйте метод AddRange();
•False. Значением параметра будет один элемент. Значение по умолчанию.
Оставьте значение False для всех параметров.
Description. Текстовое описание параметра.
IsRequired. Признак обязательности заполнения параметра. Возможные значения:
•True. Параметр обязательный для заполнения. Перед выполнением отчета будет проверяться заполнение параметра;
•False. Параметр не обязательный для заполнения. Значение по умолчанию.
Установите значение True для всех параметров.
Name. Имя параметра. Должно быть уникальным, состоять из букв латинского алфавита и цифр. Для параметров, соответствующих датам начала и завершения периода формирования отчета, укажите имена BeginDate и EndDate. Для параметра, соответствующего журналу регистрации, укажите имя DocumentRegister.
4.Настройте создание диалогового окна для запроса значений параметров. Для этого перейдите в узел «Отчет», установите флажок напротив клиентского события «До выполнения» и перейдите по ссылке:
5.В открывшемся редакторе введите код:
public override void BeforeExecute(Sungero.Reporting.Client.BeforeExecuteEventArgs e)
{
if (!OutgoingDocumentsReport.BeginDate.HasValue && !OutgoingDocumentsReport.EndDate.HasValue)
{
// Создание диалогового окна для запроса значений параметров
// beginDate, endDate и documentRegister.
var dialog = Dialogs.CreateInputDialog("Журнал исходящих документов");
var beginDate = dialog.AddDate("Дата начала", true, OutgoingDocumentsReport.BeginDate);
var endDate = dialog.AddDate("Дата завершения", true, OutgoingDocumentsReport.EndDate);
var documentRegister = dialog.AddSelect("Журнал", true, OutgoingDocumentsReport.DocumentRegister);
if (dialog.Show() == DialogButtons.Ok)
{
// Передача введенных значений в параметры beginDate, endDate
// и documentRegister.
OutgoingDocumentsReport.beginDate = beginDate.Value.Value;
OutgoingDocumentsReport.endDate = endDate.Value.Value;
OutgoingDocumentsReport.documentRegister = documentRegister.Value;
}
else
e.Cancel = true;
}
}
В результате параметры отчета будут заполнены значениями, которые указал пользователь в диалоговом окне:
© Компания Directum, 2024 |