Для осущ навигации есть 2 способа работы с записями: 1) основан на операторе SQL и предполагает оперирование группой записей, записи удовлетв некот условию и выдаются группами, даже если условию удовлетв 1 запись. 2)состоит в оперировании единичными записями, если необход изменить, добавить или удалить группу записей, необх операция выполн для каждой из таких записей, такие записи нужно отыскать и для этого использ навигационные методы, кот работают только с единичной записью. Для рассмотрения навигац методов необход использ понятие курсора набора данных – указатель текущей записи. Для перемещения указателя текущей записи использ методы:
- Процедура First – установка на первую запись
Next – установка на след запись, для послед записи указатель не перемещ
Last – установка на последн запись
Prior – установка на предыдущ запись, для первой записи указатель не перемещ
Функция MoveBy – перемещ на кол-во записей, опред-ное пар-ром фун-и: на n-записей к концу n>0, и если n<0, то вначало.
Для определения начала и конца набора данных использ лог св-ва BOF и EOF типа boolean. Они доступны для чтения при выполнении приложения. Св-во BOF=true, если указатель нах на первой записи набора, иначе – если не на первой. Св-во EOF=true – если указатель наход на последней записи набора данных, и false если не на последней. Для пустого набора данных оба св-ва истина.
Т.к. BDE неспособна определить место нахождения курсора в наборе данных возникает потребность проверки момента попадания 1 или последней записи для комфортной работы:
Begin
If BOF then Prior
Else First; end;
//проверка курсора в начале ли он набора данных если нет то перевести его в начало
DBNavigator – ком-т управления набором данных. Навигатор содержит кнопки для выполнения разл оперпций с набором данных путем автоматич вызова соответ методов. Кнопки навигатора:
Данных TDataSource — это все, что необходимо для его нормальной работы. Представленное ниже свойство управляет отображением диалогового окна с просьбой подтвердить удаление записи (значение True этого свойства выводит окно):
property ConfirmDelete: Boolean;
Если следующее свойство имеет значение True, кнопки будут плоскими, в противном
случае — объемными:
property Flat: Boolean;
С помощью другого свойства можно отображать только те кнопки навигатора,которые действительно необходимы:
type TNavigateBtn = (nbFirst, nbPrior. nbNext. nbLast.
nblnsert. nbDelete, nbEdit. nbPost.
nbCancel, nbRefresh);
type TButtonSet = set of TNavigateBtn;
property VisibleButtons: TButtonSet;
Наименование кнопки имеет префикс nb и наименование метода, вызываемого этой кнопкой:
nbFirst –перейти к первой записи. nbPrior – перейти к пред записи. nbNext – перейти к след записи
nbLast – к последней записи. nbInsert – вставить запись. nbDelete – удалить текущую запись
nbEdit – редактировать текущую запись. nbPost – сохранить результат изменения записи
nbCansel – отменить изменения текущей записи. nbRefresh – обновить информацию в наборе данных
Подзказки для каждой кнопки навигатора содержит св-во Hints. Подсказаки на англ языке. Их можно заменить текстом на русском. Для этого нужно вызвать редактор String List Editor двойным щелчком в поле св-ва Hints или щелчком на многоточии в конце строки св-ва.
С помощью следующего метода можно имитировать щелчок на нужной кнопке навигатора:
procedure BtnClick(Index: TNavigateBtn);