При выполнении приложения определить вид полей набора данных можно с помощью свойства DefaultFields:Boolean. Если это свойство имеет значение True, то набор данных имеет поля по умолчанию, то есть динамические, в противном случае – статические поля.
Через объект типа TField можно:
- обратиться к полю и его значению;
- проверить тип и значение поля;
- отформатировать значение поля, которое отображается или редактируется в визуальных компонентах.
Динамические и статические поля имеют одинаковые свойства, события и методы.
Для динамического поля имя объекта Field совпадает с именем соответствующего физического поля таблицы.
Имя статического поля является составным и образуется путем слияния имен набора данных и именем физического поля таблицы БД. Например, если набор данных Table1, определен статический объект для поля Fam, то объект получит имя Table1Fam.
DisplayFormat:String – служит для форматирования значения поля по заданной маске. Маска состоит из трех секций, разделенных (;) (точка с запятой). В маске можно использовать следующие символы:
0– цифра числа, незначащие нули отображаются,
#- цифра числа, незначащие нули отбрасываются,
. (точка) – разделитель целой и дробной части числа,
, (запятая) – разделитель тысяч,
E+ e+ - разделитель мантиссы и порядка,
“xx” и ‘xx’ – символы, выводимые без изменений,
; - разделитель.
Например,
000E+00 для чисел с плавающей точкой
###0.0 для чисел с фиксированной точкой
###0.00’ р.’ для денежных сумм
##0;-##0;0 отдельно для положительных, отрицательных и нулевых значений.
DataSet:TDataSet – указывает набор данных, связанный с полем.
Например,
if TbTovarT_Nazv.DataSet=TbTovar then ShowMessage('НД - таблица Товар');
FieldNo:Integer –содержит порядковый номер поля в наборе данных (1, 2,..)
Например,
ShowMessage(IntToStr(TbTovarT_Nazv.FieldNo));
Index:Integer – индекс поля, который определяет порядок отображения полей в DBGrid, (начиная с 0).
Например,
ShowMessage(IntToStr(TbTovarT_Nazv.Index));
CanModify:Boolean – только для чтения, разрешено ли изменять значение поля; если равно True,то разрешено.
AsBoolean: Boolean, AsCurrency:Currency, AsDateTime:TDateTime, AsFloat: Double, AsInteger: Integer, AsString:String, AsVariant: Variant – изменяют тип значения поля на указанный (логический, денежный, дата-время, двойной точности, целочисленный, строковый, вариантный.)
IsNull:Boolean – равно True, если поле не содержит значение,
Required:Boolean – если True, то значение каждой записи поля не может быть пустым, в противном случае генерируется исключительная ситуация.
FieldKind:TFieldKind – определяет тип поля и принимает одно из следующих значений:
fkData – обычное поле,
fkCalculated – вычисляемое поле,
fkLookup – подстановочное поле, имеющее связанный с ним список значений,
fkInternalCalc – внешнее вычисляемое поле,
fkAggregate – агрегатное поле.
Value:Variant – определяет текущее значение поля (обращение напрямую),
Например,
ShowMessage(IntToStr(TbTovarT_Kol_vo.Value));
ReadOnly:Boolean – если True, то запрещено вводить в данное поле значение.