ЛБ2 — Свойства полей. Вычисляемые поля, фильтрация данных.


Приложение, полученное в лабораторной работе 1 выглядит не достаточно удобно для пользователя.
Во-первых, необходимо упорядочить записи.
Выделите на форме компонент Tablel. В Инспекторе Объектов вы увидите среди прочих свойства IndexName и IndexFieldName. Первое из них содержит выпадающий список индексов, созданных для вашей таблицы. Выберите, например, индекс fio, и уви-дите, что записи окажутся упорядоченными по алфавиту, поскольку в этот индекс вклю-чены поля Fam, Nam и Par. При индексе depfio упорядочивание бу¬дет по подразделени-ям, а внутри каждого подразделения — по алфавиту. Альтер¬нативный вариант индексации предоставляет свойство IndexFieldName. В нем просто перечислены предусмотренные комбинации полей и вы можете выбрать не¬обходимую, если забыли, что обозначают име-на индексов.
Во-вторых, необходимо заменить имена полей на русские названия.
Для их редактирования служит Редак¬тор Полей. Вызвать его проще всего двойным щелчком на компоненте Tablel. Сна¬чала вы увидите пустое поле этого редактора.

Щелкните на нем правой кнопкой мыши и из всплывающего меню выберите раздел Add fields (добавить поля). Вы увидите окно, изображенное на рис. 1.1. б, в котором со-держится спи¬сок всех полей таблицы.
Выберите из него курсором мыши интересующие вас поля. Если вы при этом буде-те держать нажатой клавишу Ctrl, то может выделить любую комбинацию полей. Однако, имейте в виду, что только к тем полям, кото¬рые вы добавите, вы сможете в дальнейшем обращаться. Так что в данном случае вам имеет смысл выделить все поля, кроме Charact и Num. Выделив поля, щелкните на ОК и вы вернетесь к основному окну Редактора По¬лей, но в нем уже будет содержаться список добавленных полей (рис. 1.1. в).
Эти поля будут соответствовать колонкам таблицы. Изменить последователь¬ность их расположения можно, перетащив мышью идентификатор какого-то поля на нужное ме-сто. Как мы увидим далее, те поля, которые не должны отображаться в таблице, могут быть сделаны невидимыми.
Выделите в списке какое-то поле и посмотрите его свойства в Инспекторе Объ¬ектов. Вы увидите, что каждое поле — это объект, причем его класс зависит от типа поля: TStringField, TSmallintField, TBooleanField и т.п. Все эти классы яв¬ляются производны-ми от Tfield — базового класса полей. Таким образом, каждое поле является объектом и обладает множеством свойств. Рассмотрим основные из них, которые чаще всего необхо-димо задавать.
Свойство Alignment определяет выравнивание отображаемого текста внутри ко-лонки таблицы: влево, вправо или по центру.
Свойство DispIayLabel соответствует заголовку столбца данного поля. Напри¬мер, для поля Fam значение DispIayLabel можно задать равным «Фамилия», для Nam — «Имя» и т.д.
Свойство DisplayWidth определяет ширину колонки — число символов.
Свойства EditMask для строк и EditFormat для чисел определяют форматы ото-бражения данных.
Для логических полей (в нашем примере для поля Sex) очень важным свойст¬вом является DisplayValues. Это свойство определяет, какие значения должны отображаться, если поле имеет значение true или false. Отображаемые значения разделяются точкой с запятой. Первым пишется значение, соответствующее true. Например: «м;ж» или «муж-ской;женский».
Свойство ReadOnly, установленное в true, запрещает пользователю вводить в дан-ное поле значения. Свойство Visible определяет, будет ли видно пользователю соответст-вующее поле. В нашем примере, вероятно, можно задать Visible = false для поля Num, ес-ли вы его не исключили из списка полей Tablel.