Редактор полів. Поля, що обчислюються
Виклик редактора полів
Для того щоб викликати редактор полів необхідно:
1)зробити стандартні дії по підключенню таблиці;
Потім двічі клацнути лівою кнопкою миші по TTable, в результаті буде викликаний редактор полів (з порожнім списком полів).
3)Потім потрібно двічі клацнути правою клавішею миші по розкритому порожньому списку і вибрати:
а)додати для перегляду всі поля чи окремі поля таблиці;
Б) додати чи створити поле, що обчислюється.
В) такий спосіб можна вибрати частину полів для перегляду за допомогою компонента TDBGrid, при цьому частина полів можна не включати в перегляд.
Після цього можна працювати з обраним полем(клацнувши по потрібному полю мишею). Варто звернути увагу на спосіб формування імені поля: якщо в таблиці з іменем Table1 поле називається D то в редакторі полів і у формі йому відповідає об'єкт з ім'ям Table1D класу TDateField(нащадок класу TField).
Найбільш важливими властивостями полів є:
1) DisplayLabel, DisplayName(RO) – заголовок стовпця;
2) DisplayWidth – ширина стовпця;
3) DisplayFormat – формат виведення стовпця;
4) EditMask – формат(маска), що використовується при введенні стовпця. Вона містить три розділи (вони розділяються символом;).
Перший розділ – контроль посимвольного введення(маска символів):
< - перетворення символів у верхній регістр;
> - перетворення символів у нижній регистр;
Lt;> перетворення не виконується. \ - символ, що не входить до маски символів. Наприклад, \< позначає просто <.
L – у даній позиції може міститись тільки буква, l – у даній позиції може міститись тільки буква чи пробіл;
A- у даній позиції може міститись тільки буква чи цифра, a –буква, чи цифра чи пробіл;
C- у даній позиції може міститись будь-який символ, c- у даній позиції може міститись будь-який символ або пробіл;
0 - у даній позиції може міститись тільки цифра;
9 - у даній позиції може міститись тільки цифра або пробіл;
У даній позиції може міститись тільки цифра, пробіл
або знак +.
Другий розділ містить 1 чи 0 (чи зберігати символи маски в поле).
Третій розділ – символ для позначення позицій, куди ще не зроблене введення(звичайно пробіл).
DisplayValue – може служити для зручного виводу на екран логічних даних, для цього тут треба розмістити текст розділений крапкою з комою. Наприклад, чоловік;жінка, тоді якщо поле логічне має значення true, то буде виведене чоловік, якщо false – жінка.
6) DisplayText(режим перегляду даних),Text(режим редагування),Value -значення поля.
Об'єкти – поля
Для зручності роботи з конкретним полем можна створити об'єкт –поле.
Об'єкт –поле створюється на етапі розробки програми за допомогою редактора полів. Якщо визначений об'єкт –поле то доступ до нього можна одержати по імена джерела даних і імені поля. Наприклад, якщо джерело даних Table2, а ім'я поля S, то ім'я об'єкта –поле Table2S. Якщо створений хоча б один об'єкт –поле для таблиці, то всі поля таблиці, для яких не створені об'єкти –поля стають недоступними, і до них звернутися не можна.
Для виклику редактора полів необхідно двічі клацнути мишею на відповідному компоненті Table (чи Query). Для Table повинні бути визначені властивості Database і TableName, для Query - Database і SQL. Щоб додати об'єкт-поле необхідно клацнути мишкою у вікні редактора полів. При цьому буде викликане контексне меню. Доцільніше всього створювати об'єкт-поля для всіх полів(Add All Fields), потім частину з них можна зробити невидимими за допомогою властивості Visible.
Для створення полів, що обчислюються, одного чи декількох, необхідно викликати редактор полів і вказати режим - нове поле.
Далі необхідно вказати ім'я поля(латинське), вибрати його тип та розмір(якщо потрібно). Необхідно вказати, що це поле що обчислюється(група радіокнопок:Calculated). Можна вибрати назву стовпця. Для цього змінимо властивість DisplayLabel яке було вибране для імені поля на потрібне імя стовпця. Після цього потрібно вказати спосіб обчислення поля(алгоритм). Для цього необхідно для компонента Table1 вибрати сторінку подій в Інспекторі об'єктів і двічі клацнути по події OnCalcFields(по порожньому полю). Потім записати текст програми в оброблювачі цієї події.
Приклад. Припустимо, ми хочемо створити поле з трьома різними значеннями:”Бідна руда” для s<49, ”Середня руда ” для s>=49 and s<60, “Багата руда” при s>=60.Для цього створимо поле, що обчислюється, з ім'ям R за допомогою редактора полів, відредагуємо в Інспекторі об'єктів властивості DisplayLabel=”Підказка”– заголовок стовпця R і DisplayWidth=12 для цього поля. Для визначення цього поля введемо текст програми:
Var v:real;
begin
v:=StrToFloat(Table1.FieldByName('S').Value);
if v<49 Then Table1R.Value:='Бідна'
else if (v>=49)AND(v<60) Then Table1R.Value:='Середня'
else Table1.FieldByName('r').Value:='Багата';
Необхідно звернути увагу на спосіб звернення до значення поля, що обчислюється: Table1R.Value (ім'я компонента Table+ім'я поля- звернення по імені об'єкта). Якщо обчислюваних полів більше ніж одне, то вони також визначаються тут(в OnCalcFields)числюваних о, створене поле).
Подія OnCalcFields настає тоді, коли необхідно обновити значення полів таблиці, що обчислюються, зокрема при зміні поточної запису,видаленні запису итд.