2. Режим пользователя

В DataExpress работа с базой происходит в режиме пользователя. Главное окно состоит из следующих элементов: меню, панель инструментов, панель закладок и строка состояния.

Режим пользователя

Формы размещаются в закладках на панели закладок. Панель инструментов общая для форм и содержит стандартные команды перемещения, редактирования и поиска данных. В меню содержатся все доступные пользователю формы и отчеты. Разработчику также будут доступны дополнительные пункты меню, недоступные пользователю - это меню «Сервис» и ряд пунктов из меню «Файл». В строке состояния отображается путь к базе данных, текущий режим формы (вставка, изменение, просмотр), количество записей и номер текущей записи, состояние фильтра (включен/выключен). В заголовке окна отображается название базы данных.

Представление формы

Кроме самой формы в закладке может быть таблица, отображающая множество записей - табличная часть формы. Положение табличной части относительно формы определяется представлением формы. Представление формы может быть следующим: таблица слева, справа, вверху, внизу, только таблица, только форма, простая форма. Каждое представление формы имеет свои особенности редактирования данных. В представлении «таблица слева/справа/вверху/внизу» пользователь видит одновременно и форму, и множество записей. В представлении «только таблица» пользователь видит только табличную часть, а форма отображается в отдельном окне. В представлении «только форма», наоборот, табличная часть скрыта, а пользователь видит только форму. Представление «простая форма» (далее простая форма) похоже на представление «Только форма», но с тем отличием, что данные в ней не хранятся. Простая форма используется для отображения данных из других форм, организации поиска, построения сводок, графиков, навигации по базе и т. п.

Просмотр и редактирование данных

Форма имеет готовые команды для добавления, изменения и удаления записей. Если попытаться изменить какое-нибудь поле формы сразу (в случае, если представление формы отображает одновременно и форму, и ее табличную часть, как на рисунке выше), то у вас ничего не получится. Поле будет защищено от редактирования. Это связано с тем, что форма находится в режиме просмотра данных. В режиме просмотра данные изменить нельзя. Чтобы все-таки это сделать, надо перевести форму в режим редактирования. Для этого надо нажать кнопку на панели инструментов со значком карандаша или дважды щелкнуть по записи, которую хотите изменить. О том, что запись в режиме редактирования свидетельствуют неактивные кнопки редактирования записей, активные кнопки компонентов формы и надпись «Изменить» в строке состояния. Если форма находится в представлении «Только таблица» (т. е. когда табличная часть занимает все пространство, а форма скрыта), то форма отображается в отдельном модальном окне.

Проделанные изменения можно сохранить или отменить, соответствующие кнопки есть на панели инструментов. Изменения сохраняются автоматически если перейти на другую запись, закладку или попытаться выполнить какую-нибудь команду. Если в результате проверки данных сохраняемой записи будут найдены какие-то ошибки ввода, то программа сообщит об этом в виде всплывающего текста рядом с проблемным полем и ваше действие будет прервано (т. е. переход на другую запись, закладку, команда не будут выполнены).

Перемещение по записям в представлении «Только таблица» работает быстрее, чем в других представлениях. Это достигается за счет того, что подчиненные данные подгружаются только по требованию: при открытии окна редактирования, в процессе каких-либо вычислений.

Сортировка

Сортировка позволяет упорядочить данные определенным образом. Для установки сортировки кликните по заголовку нужного столбца табличной части формы - данные будут отсортированы по возрастанию. Повторный клик сделает обратную сортировку. Третий клик - отменит сортировку. Чтобы упорядочить данные по нескольким полям щелкайте по нужным заголовкам, удерживая клавишу Ctrl.  Установка сортировки

Сортировку нельзя изменить, если запись редактируется.

Исходная сортировка настраивается в табличной части формы. Там же можно совсем запретить изменение сортировки.

Обратите внимание, что сортировка данных заметки, имеющей неограниченный размер, также как и изображения, не будет работать корректно. Это связано с особенностями хранения таких данных в базе данных и ограничениями СУБД Firebird. Впрочем, сортировка пустых и непустых полей работает корректно.

Поиск

Вы можете быстро найти нужную запись, воспользовавшись окном поиска или контекстным поиском. Открыть окно поиска можно, нажав кнопку со значком бинокля на панели инструментов или нажав клавишу <F3>. Панель инструментов, кнопка поиска  Окно поиска В окне вводится искомый текст и поле, в котором будет вестись поиск. Можно вести поиск сразу по всем полям. Поиск начинается от текущей записи. Рядом с найденным значением появляется значок в виде стрелки. Поиск нечувствителен к регистру. Для успешного результата достаточно, чтобы хотя бы часть поля совпадала с введенным значением.

Еще удобным вариантом поиска является контекстный поиск. Установите фокус на табличной части формы и начните набирать какой-то текст. Внизу появится поле с введенным текстом, а программа найдет первое совпадение. Поиск ведется с первой записи. Чтобы перейти к следующему совпадению, нажмите клавишу <Вниз>. Чтобы вернуться к предыдущему совпадению, нажмите клавишу <Вверх>. Контекстный поиск

Фильтрация

Ни одно приложение баз данных не обходится без фильтра. Фильтр позволяет ограничить набор данных по определенным условиям, тем самым облегчая восприятие и поиск информации. В DataExpress любая форма уже автоматически имеет средства фильтрации данных. Кнопка "Фильтр" Фильтр формы открывается кнопкой фильтра, которая находится на панели инструментов, или клавишей <F7>. Необходимо выбрать поля, по которым будет выполнена фильтрация, и ввести значения. Настройка фильтра Для чисел, счетчиков, дат и времени вводится диапазон: начальное и конечное значение. В отбор попадают записи со значениями из диапазона, включая границы. Если указать только начальное значение, то в отбор попадут данные, большие или равные указанному значению. Если указать только конечное значение, то в отбор попадут данные, меньшие или равные указанному значению. Между начальным и конечным значением можно перемещаться клавишами «Влево», «Вправо». При вводе дат и времени допускается вводить неполные значения (значение будет автоматически дополнено) и пробелы вместо разделителей.

Для текста, списков и заметок в отбор попадут значения, если хотя бы часть совпадает с введенным значением, независимо от регистра. Например, если ввести «Иванов», то в отбор попадут значения: Иванов, Селиванов, Иванович, …иванов… Есть случаи, когда такое поведение фильтра нежелательно. Если вам нужен отбор только по полному совпадению, то замените текстовое поле на объект.

Изображения и файлы в фильтре воспринимаются как текст. Фильтрация файлов работает по текстовому полю, а изображений - по полю, которое хранит исходное расположение файла.

Вы можете указать для поля несколько значений. Для этого выберите пункт меню «Добавить значение». В отбор попадут записи, если хотя бы одно из значений удовлетворяет условию.

Если установить флажок Не, в отбор попадут все записи, кроме указанных значений. Флажок «Пусто» позволяет отбирать записи с пустыми полями, значения которых не определено (равно Null).

Если для поля не указаны значения и не установлены флажки, то оно игнорируется и не используется в фильтре.

После установки фильтра в строке состояния окна программы появится значок фильтра, сигнализирующий о том, что пользователь просматривает отфильтрованные данные.

Предустановки фильтра

Предустановки фильтра Фильтр формы может быть заранее настроен на отбор определенных данных или может быть просто указан список полей, по которым чаще всего фильтруются данные. Такая настройка делается в дизайнере в свойстве формы Предустановки фильтра. После настройки предустановки будут доступны из контекстного меню кнопки фильтра. Первая предустановка используется по умолчанию при открытии формы. Таким образом вы можете ограничить набор записей. Если предустановки не определены, считываются все данные формы.

Есть случаи, когда необходимо ограничить записи определенным периодом: днем, неделей, месяцем. Как это делается смотрите здесь.

Фильтрация подчиненных данных

Кроме фильтра основной формы возможно установить фильтр по подчиненным данным. Если в форме есть таблица, то рядом с кнопкой фильтра появится стрелочка, которая открывает контекстное меню, в котором можно выбрать фильтр таблицы. В результате фильтрации останется множество записей основной формы, в таблицах которых есть данные, соответствующие фильтру. Обратите внимание, что в подчиненной форме будут все записи, а не только те, которые заданы фильтром.

Контекстный фильтр

Контекстный фильтр

Открывать фильтр формы и настраивать его не очень удобно. Если у вас перед глазами есть данные, по которым необходимо провести отбор, то удобнее воспользоваться контекстным фильтром. В табличной части формы выделите нужную ячейку и в контекстном меню выберите команду «Фильтр» - данные будут отфильтрованы по значению выбранного поля. Обратите внимание, что предыдущие настройки фильтра будут удалены. Чтобы этого не произошло, вместо предыдущей команды выберите «Добавить в фильтр».

Команда «Очистить все фильтры» очищает не только фильтр основной формы, но и всех подчиненных.

Использование дерева

Использование дерева Помимо табличной части и формы есть дерево - компонент, отображающий данные в виде иерархии - древовидной структуры. Дерево располагается слева от табличной части формы. Оно может отображать данные форм-справочников или данные самой формы, или все вместе. Более подробно об этом компоненте вы можете узнать здесь.