Диалоговые формы в отчете главным образом нужны для фильтрации данных. Как правило на форме помещаются элементы управления, с помощью которых задаются значения. Затем, эти значения используются для дальнейшей фильтрации данных. Но большинство элементов управления позволяют фильтровать данные напрямую. То есть они могут быть связаны с источником данных с помощью свойства DataColumn. Значение элемента управления будет использовано для фильтрации. Также, есть еще одно свойство, которое задает само условие сравнения значения элемента управления с данными – FilterOperation. Это свойство позволяет сравнить на равенство, больше, меньше и сочетания этих вариантов.
Часто, нам требуется фильтровать данные по датам. Причем, обычно фильтруют по диапазону дат.
Давайте рассмотрим пример создания отчета с подобной фильтрацией. Добавим диалоговую форму в отчет:
На форме мы разместим два элемента управления DateTimePicker. Первый – для задания начала диапазона дат, второй – для конца.
Настроим свойства первого объекта DateTimePicker:
Здесь мы установили свойство Value для задания начала диапазона по умолчанию. Свойство DateColumn настроено на поле OrderDate таблицы Orders. А условие фильтрации – GreaterThanOrEqual. Это значит, что диапазон дат будет начинаться с указанной в элементе управления.
Для второго поля DateTimePicker задаем следующие свойства:
Значение по умолчанию оставим без изменений – текущая дата. Свойство DataColumn такое же, что и в первом DateTimePicker. А условие фильтрации – LessThanOrEqual, то есть меньше либо равное указанной дате.
Шаблон отчета может содержать указанное для фильтрации поле, а может и нет – не важно.
Еще до построения отчета данные будут отфильтрованы согласно заданному диапазону дат:
В итоге мы получим отчет с только необходимыми данными:
Как вы заметили, создание фильтра в диалоговой форме - дело одной минуты. Достаточно выбрать поле в источник данных и условие фильтрации. Всего два свойства – и вы у цели.