FieldType – Lookup (поисковое поле),
KeyField – Город,
DataSet – TownTable (таблица, где нужно искать)
Lookup Keys - Key1 (по этому полю надо искать),
Result Field – Название города, нажать Ок
· Появилось новое поле, перетащить его ближе к полю Город
· Сделать таблицу BookTable вновь активной загрузить программу, просмотреть результат.
37. Сделать поле Город невидимым, чтобы не видеть числа, а над полем Town написать надпись Город (самостоятельно)
Сортировка и фильтрация данных
Часть
Поиск данных и сортировка выполняются по индексным полям. В телефонном справочнике чаще ищут информацию по номеру телефона или фамилии. В таблице Справочник для полей Фамилия и Телефон свойство Индексированное поле имеет значение Да(допускаются совпадения).
38. Добавить в меню пункт Сортировка и подпункты По телефону, по Фамилии
39. для подпунктов ввести соответствующий код:
DataModule1.BookTable.IndexFieldMNames:=’Фамилия’;
DataModule1.BookTable.IndexFieldMNames:=’Телефон’;
40. Реализовать функцию поиска данных, для этого:
|
|
· добавить на форму панель, на нее метку Найти и TEdit с именем FindEdit
· ввести следующий код:
procedure TForm1.FindEditChange(Sender:TObject);
begin
if Length(FindEdit.Text)>0 then
DataModule1.BookTable.Filtered:=true
Else DataModule1.BookTable.Filtered:=false;
DataModule1.BookTable.Filter:=’Фамилия>’’’+FindEdit.Text+’’’’;
end;
41. Проверить работу программы.
Фильтры в ADO работают плохо, но в Delphi можно расширить возможности фильтрации.
42. Перейти в модуль DataModule1, для компонента BookTable выбрать событие OnFilterRecord и ввести код:
Accept:=false;
if copy(BookTableDSDesigner.AsString,1,Length(Form1.FindEdit.Text))=Form1.FINDedit.Text then
Accept:=true; {строка соответствует фильтру, ее можно отображать}
end;
43. Проверить работу программы.
ПРИЛОЖЕНИЕ 1
Образец оформления титульного листа отчета
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Национальный исследовательский ядерный университет «МИФИ» |
Волгодонский инженерно-технический институт – филиал федерального государственного автономного образовательного учреждения высшего профессионального образования «Национальный исследовательский ядерный университет «МИФИ» (ВИТИ НИЯУ МИФИ) |
Специальность «Прикладная информатика (по отраслям)»
Технология разработки программного продукта
ОТЧЕТ
по практической работе № ___
Тема работы
«________»
Самостоятельное задание №__
Выполнил студент гр.ПрИн–6.11 Петров И.В
Проверил преподаватель Янковская И.А.
|
|
Результат защиты _______________
Дата защиты _______________
ПРИЛОЖЕНИЕ 2
Процедуры и функции Delphi
(краткое изложение)
Математические
Назначение | Пример использования | |
ABS | Возвращает абсолютное значение | Y:=ABS(X); |
ROUND | Округление к ближайшему целому | Y:=ROUND(X) |
TRUNC | Округление в меньшую сторону | Y:=TRUNC(X) |
INT | Возвращает целую часть вещественного числа | Y:=INT(X) |
FRAC | Возвращает дробную часть числа | Y:=FRAC(X) |
SQR | Возвращает квадрат указанного значения | Y:=SQR(X) |
SQRT | Возвращает квадратный корень | Y:=SQRT(X) |
RANDOM | Возвращает случайное число из области, ограниченной заданным значением | Y:=RANDOM(100) |
RANDOMIZE | Позволяет задать случайное начальное значение для функции RANDOM | RANDOMIZE |
TAN | Возвращает тангенс указанного числа | Y:=TAN(X) |
Для работы с датами и временем
Назначение | Пример использования | |
CurrentYear | Возвращает текущий год | Label2.Caption:= IntToStr(CurrentYear) |
Date | Возвращает текущую дату | Label2.Caption:= DateToStr(Date) |
DayOfWeek | Возвращает число от 1 до 7,которое определяет день недели | If DayOfWeek(Date)=1 then Label2.Caption:='воскресенье'; |
DecodeDate | Преобразует дату в раздельные составляющие: год, месяц, день | DecodeDate(Date,Year,Moth,Day); |
Time | Возвращает текущее время в формате TDateTime | Label2.Caption:=TimeToStr(Time); |
DecodeTime | Преобразует время в раздельные составляющие: час, минуту, секунду, миллисекунду | DecodeTime(Time,H,M,Sec,MSec); |
IncMonth | Возвращает дату, отстоящую от заданной даты на указанное число месяцев | s:=IncMonth(Date,4); |
Диалоговые
Назначение | Пример использования | |
ShowMessage | Позволяет отобразить информационное окно с предустановленной кнопкой Ok | |
ShowMessage(‘Error ’) | ||
InputBox | Позволяет создавать окно диалога для ввода пользовательской информации | |
S:=InputBox('Вход в систему','Ваш пароль','777'); | ||
MessageDlg | Позволяет отобразить информационное окно с набором кнопок | |
If MessageDlg('Вы уверены? ',mtConfirmation,[mbYes,mbNo],0) = mrYes Then Exit; |
Преобразование типов
Назначение | Пример использования | |
VAL | Преобразование строки в целое или вещественное число | VAL(STROKA,Y,CODE) |
STR | Преобразование целого или вещественного числа в строку | STR(Y,STROKA) |
DateToStr | Преобразование даты в строку | Label2.Caption:= DateToStrDate(Date) |
StrToDate | Преобразование строки в дату | S:=StrToDate(Edit1.text); |
TimeToStr | Преобразование строки во время | Label2.Caption:=TimeToStr(Time); |
Для работы с символами и строками
Назначение | Пример использования | |
CHR | Возвращает символ по указанному коду ASCII | S:=CHR(X) |
INSERT | Позволяет вставить одну строку в другую, начиная с заданного символа | Insert(context,stroka,3) |
COPY | Возвращает заданную часть строки | S:=COPY(stroka,1,5) |
LENGTH | Возвращает число символов строки | K:= LENGTH(stroka) |
POS | Возвращает позицию вхождения указанной последовательности символов в заданную строку | K:=POS(context,stroke) |
UpperCase | Возвращает строку, все строчные латинские буквы в которой преобразованы к прописным. | S2:= UpperCase(S1) |
LowerCase | Возвращает строку, все прописные латинские буквы в которой преобразованы к строчным. | S2:= LowerCase(S1) |
DELETE | Позволяет получить строку, из которой удалена заданная часть | DELETE(stroka,2,4) |
TRIM | Возвращает строку, в которой удалены пробелы с обеих сторон | S2:=TRIM(s1) |
ПРИЛОЖЕНИЕ 3
Именованные константы в Delphi