<< Click to Display Table of Contents >> Разработка > Элементы разработки > Отчеты > Дизайнер отчета > Источники данных Добавление источника данных на основании типа сущности |
Предположим, необходимо разработать отчет, в котором будет содержаться информация об исходящих документах, зарегистрированных в определенном журнале регистрации в некоторый период времени. Так как для отчета потребуются данные только типа сущности «Исходящее письмо», то добавьте соответствующий источник данных. Для этого:
1.В редакторе отчета перейдите в узел «Дизайнер».
2.На панели «Данные» в контекстном меню узла «Источники данных» выберите пункт Новый источник данных….
3.В открывшемся окне заполните поля:
*Имя источника данных. Должно быть уникальным и состоять из букв латинского алфавита.
*Тип сущности, который будет использоваться в качестве источника данных. В качестве источника данных укажите тип сущности «Исходящее письмо» (Sungero.RecordManagement.OutgoingLetter).
4.Нажмите на кнопку ОК. Источник данных и его свойства добавятся в дерево на панель «Данные». Откроется редактор кода источника данных, в котором сгенерируется код обработчика. По умолчанию при выполнении отчета возвращаются все сущности типа «Исходящее письмо», на которые у пользователя есть права.
public virtual IQueryable<Sungero.RecordManagement.IOutgoingLetter> GetOutgoingLetter()
{
return Sungero.RecordManagement.OutgoingLetters.GetAll();
}
5.Чтобы в отчете отображались только исходящие документы, зарегистрированные в определенном журнале регистрации в некоторый период времени, настройте фильтрацию данных в источнике. В качестве критериев фильтрации используйте запрашиваемые параметры отчета. Для этого дополните код в обработчике:
public virtual IQueryable<Sungero.RecordManagement.IOutgoingLetter> GetOutgoingLetters()
{
// Получить все исходящие письма.
return Sungero.RecordManagement.OutgoingLetters.GetAll()
// Оставить только зарегистрированные исходящие письма.
.Where(l => l.RegistrationState == Sungero.Docflow.OfficialDocument.RegistrationState.Registered)
// Фильтрация исходящих писем по журналу регистрации
// (по параметру DocumentRegister).
.Where(l => Equals(l.DocumentRegister, OutgoingDocumentsReport.DocumentRegister))
// Фильтрация исходящих писем в отчете по периоду дат
// (по параметрам BeginDate и EndDate).
.Where(l => l.RegistrationDate >= OutgoingDocumentsReport.BeginDate)
.Where(l => l.RegistrationDate <= OutgoingDocumentsReport.EndDate)
// Сортировка исходящих писем в отчете по регистрационному номеру
// и дате регистрации.
.OrderBy(l => l.RegistrationNumber)
.ThenBy(l => l.RegistrationDate);
}
© Компания Directum, 2024 |