Слайд 2
Объект поля.
Объект поля Field имеет тип TField. Тип
TField – абстрактный класс, который может использовать след. классы:
TMemoField
- поле типа Memo;
TGraphicField - графическое поле;
TStringField - поле строкового значения;
TDateTimeField - поле даты и времени;
TFloatField - поле вещественного числа;
TCurrencyField - поле денежной суммы;
TIntegerField - поле целого числа;
TAutoIncField - поле автоинкрементного значения;
TBCDField - поле BCD-значения;
TBLOBField - поле BLOB-объекта;
Слайд 3
Способы задания состава полей набора данных
по умолчанию (динамические
поля);
Динамические поля создаются автоматически при разработке приложения
с
помощью редактора полей (статические поля).
Свойство DefaultFields (Boolean) определяет вид поля НД.
Слайд 4
Редактор полей
Статические поля создаются с помощью Редактора
полей, который позволяет:
определять вычисляемые поля, значения которых рассчитываются с
помощью выражений, в которых можно использовать значения других полей;
ограничить состав полей НД;
изменить порядок полей НД;
скрыть или показать отдельные поля при выполнении приложения;
задать формат отображения или редактирования данных поля на этапе разработки приложения.
Слайд 5
Создание нового статического поля
Слайд 6
Группа управляющих элементов Field properties (Свойства поля):
В
поле Name (Имя) задается значение свойства FieldName, то есть
имя поля
в поле Component – название компонента (объекта типа TField) поля. Значение поля Component формируется Delphi автоматически
В полях Type и Size указываются тип и размер поля. Тип должен быть задан в обязательном порядке для любого поля.
Слайд 7
Группа переключателей Field type (Тип поля)
Data –
поле данных, заменяющее соответствующее физическое поле таблицы;
Calculated – вычисляемое
поле, значение которого рассчитывается в обработчике события OnCalcFields во время выполнения приложения;
LookUp –поле выбора, значение которого можно выбирать из списка, формируемого на основе заданных критериев и правил.
Слайд 8
Создание вычисляемого поля
1 шаг. Создать статическое вычисляемое поле.
Слайд 9
2 шаг. Написать обработчик события OnCalcFields компонента Table.
procedure
TForm1.Table2CalcFields(DataSet: TDataSet);
begin
Table2Summa.Value:=
Table2Kolvo.Value*Table2Zena.Value;
end;
Слайд 10
Cоздание полей выбора данных
Поле выбора данных одного
НД содержит значения из другого набора данных, связанных по
ключу с НД, к которому принадлежит это поле.
Первый НД - родительский, а второй - дочерний.
Слайд 11
Создадим новое поле в НД Table2 с именем
NSklad типа Integer. Установим переключатель в положение Lookup. После
выбора переключателя становятся доступными элементы группы Lookup definition, с помощью которых устанавливаются параметры связи наборов данных
Слайд 12
Key Fields - Определяет список ключевых полей родительского
НД. По этим полям построен индекс для связи родительского
НД с дочерним. Если в индексе несколько полей, они разделяются точками с запятыми
DataSet - Определяет имя родительского НД
LookupKeys - Определяет список ключевых полей дочернего НД. По этим полям построен индекс для связи дочернего НД с родительским.
Result Fields - Поле родительского НД, возвращаемое в качестве результата. Необходимо следить, чтобы тип вновь создаваемого поля совпадал с типом указанного здесь поля
Слайд 13
Операции с полями.
Свойства и методы для доступа к
полям:
Свойство FieldCount: integer указывает количество полей НД. Количество полей
НД может отличаться от физического числа полей таблицы БД, поскольку в НД не обязательно включаются все поля таблицы.
Свойство FieldNo : integer – поряковый номер поля в НД
Слайд 14
Операции с полями
Свойство Fields[Index:Integer]: TField – возвращает содержимое
указанного в параметре Index поля НД.
К отдельному полю можно
обратиться, указав его номер Index в массиве Fields. Номера полей изменяются от 0 до FieldCount-1.
Примеры.
Edit1.Text:=Table1.Fields[5].AsString; –
в компонент Edit1 появится та информация, которая находится в шестом поле НД.
Table1. Fields[0].Value:='Монитор';
Слайд 15
Операции с полями.
Свойства объекта Field – AsString, AsInteger,
AsFloat, AsBoolean позволяют обращаться к значению поля текущей записи
как к строковому, целочисленному, вещественному или логическому значению.
procedure TForm1.Table2CalcFields(DataSet: TDataSet);
begin
Table2Summa.asFloat:=
Table2Kolvo.asInteger*Table2Zena.asFloat;
end;
Слайд 16
Операции с полями.
Чтобы обращаться к какому-либо полю НД
не по его номеру в массиве полей, а по
его имени существуют методы FindField и FieldByName.
Table1.FieldByName('Naim').Value:='Монитор';
Слайд 17
Операции с полями
procedure TForm1.Table2CalcFields(DataSet: TDataSet);
begin
Table2.FieldByName(‘Summa’).asFloat:=
Table2. FieldByName(‘Kolvo’).asInteger*
Table2.
FieldByName(‘Zena’).asFloat;
end;
Слайд 19
Для кнопок необходимо написать соответствующие процедуры:
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;
Слайд 20
procedure TForm1.BitBtn2Click(Sender: TObject);
var s:real;
i:longint;
begin
s:=0;
table1.First;
While not
table1.Eof do
begin
s:=s+table1.fieldbyname('cena').asfloat;
table1.Next;
end;
label2.Caption:=floattostr(s);
end;