Навигация по набору данных
Перемещение или навигация по записям набора данных может осуществляться несколькими путями. Например, в компонентах TDBGrid и TDBCtrlGrid, которые отображают сразу несколько записей набора данных, можно использовать клавиши вертикального перемещения курсора или вертикальную полосу прокрутки.
Но что делать, если на форме находятся только компоненты, отображающие одно поле только текущей записи набора данных (TDBEdit, TDBCombоВох и т. д.)? Очевидно, что в этом случае на форме должны быть расположены дополнительные элементы управления, отвечающие за перемещение по записям.
Аналогично, ни один компонент отображения данных не имеет встроенных средств для создания и удаления записей целиком.
Для решения указанных задач и предназначен компонент TDBNavigator, который представляет собой совокупность управляющих кнопок, выполняет операции навигации по набору данных и модификации записей целиком.
Компонент TDBNavigator при помощи свойства DataSource связывается с компонентом TDataSource и через него с набором данных. Такая схема позволяет обеспечить изменение текущих значений полей сразу во всех связанных с TDataSource компонентах отображения данных. Таким образом, TDBNavigator только дает команду на выполнение перемещения по набору данных или другой управляющей операции, а всю реальную работу выполняют компонент набора данных и компонент TDataSource. Компонентам отображения данных остается только принять новые данные от своих полей.
Рис. 15.4. Назначение кнопок компонента TDBNavigator
Компонент TDBNavigator содержит набор кнопок, каждая из которых отвечает за выполнение одной операции над набором данных. Всего имеется 10 кнопок, разработчик может оставить в наборе любое количество кнопок в любом сочетании. Видимостью кнопок управляет свойство visibleButtons:
type TNavigateBtn = (nbFirst, nbPrior, nbNext, nbLast, nblnsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh); TButtonSet = set of TNavigateBtn; property VisibieButtons: TButtonSet;
Каждый элемент типа TNavigateBtn представляет одну кнопку, их назначение описывается ниже:
- nbFirst – перемещение на первую запись набора данных;
- nbPrior – перемещение на предыдущую запись набора данных;
- nbNext – перемещение на следующую запись набора данных;
- nbLast – перемещение на последнюю запись набора данных;
- nblnsert – вставка новой записи в текущей позиции набора данных;
- nbDelete – удаление текущей записи, курсор перемешается на следующую запись;
- nbEdit – набор данных переводится в режим редактирования;
- nbPost – в базу данных переносятся все изменения в текущей записи;
- nbcancel – все изменения в текущей записи отменяются;
- nbRefresh – восстанавливаются первоначальные значения текущей записи, сделанные после последнего переноса изменений в базу данных.