Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Рассмотрим вторую часть руководства





 

10. В соответствии с найденной записью в таблице поиска необходимо реализовать переход на соответствующую запись в другой таблице другого набора данных. Для такого поиска записи по полям служат методы набора данных Locate и Lookup.

 

Функция

Locate (const KeyFields: String;

const KeyValues: Variant;

Options: TLocateOptions): Boolean;

 

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

 

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

§ LoCaseInsensitive (регистр букв не учитывается);

§ LoPartialKey (допускается частичное совпадение значений).

Результат функции можно не анализировать, что позволяет обращаться к ней как к процедуре!

 

Пример поиска по одному полю:

T1.Locate('i1', 8, []);

 

Поиск в наборе данных Т1 (класс TADOQuery) выполняется по полю i1, ищется первая запись, для которой значение этого поля равно 8, и указатель перемещается на эту запись. Все параметры поиска отключены.

 

Пример поиска по нескольким полям:

Query10.Locate ('Name;Post;', VarArrayOf (['П', 'Инженер']), [LoCaseInsensitive, LoPartialKey]);

 

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

 

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

 

Функция

Lookup (const KeyFields: String;

const KeyValues: Variant;

сonst ResultFields: String): Variant;

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

 

Параметры KeyFields и KeyValues имеют такое же назначение, как и в методе Locate, и используются аналогичным образом. В параметре ResultFields через точку с запятой перечисляются названия полей, значения которых будут получены в результате выполнения функции в случае успешного поиска. Эти значения считываются из первой найденной записи, удовлетворяющей условиям поиска, при этом, повторюсь, указатель текущей записи не перемещается.

 

11. В курсовом проекте в соответствии с найденной записью в таблице поиска необходимо реализовать переход на соответствующую запись в другой таблице другого набора данных методом Locate. Это требуется выполнить обязательно. Поиск записи методом Lookup – по желанию.

 

12. Для этого создаем процедуру-обработчик события OnClick у кнопки BitBtn2 «Переход на запись в таблице Т1» (класс TBitBtn) и в нее записываем следующий программный код:

 

DM.T1.Locate('i1',DM.FIND.FieldByName('i1').AsVariant,[]); Form1.SetFocus;

 

 


13. Переход к записи (поиск записи) набора данных Т3, удовлетворяющей условиям поиска, в разработанном приложении не всегда возможно осуществить за одно обращение к методу Locate(), хотя иногда это возможно.

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

 

Для этого в процедуру-обработчик события OnClick у кнопки BitBtn3 «Переход на запись в таблице Т3» записываем следующий программный код:

 

DM.T1.Locate('i1',DM.FIND.FieldByName('i1').AsVariant,[]); DM.T3.Locate('i3',DM.FIND.FieldByName('i3').AsVariant,[]); Form1.SetFocus;

 


Безусловно, реализация последних двух процедур-обработчиков не обязательно должна быть привязана к кнопкам как компонентам. Можно это реализовать при помощи контекстного меню и другими способами.

Date: 2015-07-22; view: 422; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию