- •Базы данных в Delphi Оглавление
- •Глава I. Базы данных в Delphi 3
- •Глава II. Наборы данных 11
- •Глава I. Базы данных в Delphi
- •1.1. Ведение в базы данных
- •1.2. Таблицы баз данных.
- •1.3. Таблицы формата dBase и Paradox
- •Сравнительная характеристика dBase и Paradox
- •1.4. Практическая работа
- •1.5. Самостоятельная работа
- •Глава II. Наборы данных
- •2.1. Набор данных
- •2.2. Практическая работа
- •2.3. Самостоятельная работа
- •2.4. Режимы наборов данных
- •2.5. Практическая работа
- •2.6. Перемещение по записям набора данных
- •2.7. Практическая работа
- •2.8. Доступ к полям
- •2.9. Практическая работа
- •2.10. Практическая работа
- •2.11. Способы задания состава полей набора данных
- •Редактор полей
- •2.12. Вычисляемые поля
- •2.13. Практическая работа №7
- •Глава III. Индексирование баз данных
- •3.1. Установка текущего индекса
- •3.2. Сортировка набора данных
- •3.3. Практическая работа
- •Глава IV. Фильтрация записей
- •4.1. Фильтрация по выражению
- •4.2. Практическая работа
- •4.3. Практическая работа
- •4.4. Фильтрация по диапазону
- •4.5. Самостоятельная работа
- •Глава V. Поиск записей в наборе данных.
- •5.1. Поиск записей
- •5.2. Поиск записей по нескольким полям.
- •5.3. Практическая работа
- •Глава VI. Модификация набора данных
- •6.1. Редактирование записей
- •6.2. Добавление записей
- •6.3. Удаление записей
- •6.4. Практическая работа
- •Глава VII. Работа со связанными таблицами
- •7.1. Организация связей между таблицами
- •7.2. Практическая работа
- •7.3. Самостоятельная работа
- •Глава VIII. Работа с отчетами
- •8.1. Объект QuickRep
- •8.2. Компоненты, размещаемые в полосе
- •8.3. Практическая работа
2.10. Практическая работа
Выведем на экран общую сумму количества товара (поле Kolvo), общую стоимость каждой единицы товара (поле Cena) и общую стоимость товара (для текущей записи) для таблицы Tovar.db.
Расположите на форме следующие компоненты:
Для кнопок напишите соответствующие процедуры:
procedure TForm1.BitBtn1Click(Sender: TObject);
var s:integer;
i:longint;
begin
s:=0;
table1.First;
for i:=1 to table1.RecordCount do
begin
s:=s+table1.fieldbyname('kolvo').asinteger;
table1.Next;
end;
label1.Caption:=inttostr(s);
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
var s:real;
i:longint;
begin
s:=0;
table1.First;
for i:=1 to table1.RecordCount do
begin
s:=s+table1.fieldbyname('cena').asfloat;
table1.Next;
end;
label2.Caption:=floattostr(s);
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
var s:real;
begin
s:=table1.fieldbyname('kolvo').asfloat*table1.fieldbyname('cena').asfloat;
label3.Caption:=floattostr(s);
end;
2.11. Способы задания состава полей набора данных
Существуют два способа задания состава полей НД:
по умолчанию (динамические поля);
с помощью редактора полей (статические поля).
Динамические поля создаются автоматически при разработке приложения. Статические поля создаются с помощью Редактора полей, с помощью которого можно:
определять вычисляемые поля, значения которых рассчитываются с помощью выражений, в которых можно использовать значения других полей;
ограничить состав полей НД;
изменить порядок полей НД;
скрыть или показать отдельные поля при выполнении приложения;
задать формат отображения или редактирования данных поля на этапе разработки приложения.
Редактор полей
Для запуска редактора полей нужно дважды щелкнуть по компоненту Table или вызвать его контекстное меню и выбрать команду Fields Editor (Редактор полей). В заголовке редактора полей – составное имя НД (например, Form1.Table1).
Д
ля
перемещения по полям в редакторе полей
используются четыре кнопки навигации
Редактора или мышь.
Большая часть Редактора – список статических полей, которые перечислены в порядке их создания.
Первоначально список пуст, так как все поля НД по умолчанию динамические.
С помощью Редактора полей разработчик может:
создать новое статическое поле;
удалить статическое поле;
изменить порядок статических полей.
Кроме того, для любого выбранного в Редакторе статического поля с помощью Инспектора объектов возможно задание и изменение свойств этого поля.
Для создания статического поля следует вызвать контекстное меню Редактора полей и выбрать пункт Add Fields (Добавить поля), в результате чего появится диалоговое окно добавления новых полей.
В
списке Available
fields
(Доступные поля) окна содержатся все
те поля НД, которые еще не являются
статическими.
После выбора одного или нескольких полей и нажатия кнопки ОК эти поля добавляются в состав статических полей НД.
Для добавления всех физических полей таблицы нужно выбрать в контекстном меню Редактора полей пункт Add all Fields (Добавить все поля).
Имя статического поля – составное и состоит из имени НД и имени физического поля НД (например, Table1Tovar, Table1Kolvo).
Для удаления статического поля нужно выбрать в контекстном меню Редактора полей пункт Delete (Удалить) или выделить в списке поле и нажать клавишу [Delete]. Это поле становится недоступным для операций в программе. Если понадобится, его снова можно сделать статическим, добавив в список Редактор полей.
Можно изменить порядок следования статических полей, переместив их с помощью мыши или с помощью комбинаций клавиш [Ctrl]+[Page Up] и [Ctrl]+[Page Down].
Для создания нового статического поля любого типа нужно выбрать в контекстном меню Редактора полей пункт New Field (Новое поле), в результате чего появится диалоговое окно New Field.
Для задания общих свойств (параметров) нового поля используется группа управляющих элементов Field properties (Свойства поля). В поле Name (Имя) задается значение свойства FieldName, то есть имя поля, а в поле Component – значение свойства Name, то есть название компонента (объекта типа TField) поля.
При программировании обычно используется имя поля. Значение поля Component формируется Delphi автоматически. В полях Type и Size указываются тип и размер поля. Тип должен быть задан в обязательном порядке для любого поля.
Тип нового поля выбирается с помощью группы переключателей Field type (Тип поля) из следующих вариантов:
Data – поле данных, заменяющее соответствующее физическое поле таблицы;
Calculated – вычисляемое поле, значение которого рассчитывается в обработчике события OnCalcFields во время выполнения приложения;
LookUp –поле выбора, значение которого можно выбирать из списка, формируемого на основе заданных критериев и правил.
