Створення небазових блоків
Небазовий, або, як його ще називають, керуючий (Control Block), блок створюється набагато простіше, так як не вимагає джерела даних і може бути створений без прив'язки до бази даних. Для створення небазового блоку даних досить виконати кілька дій:
- Перебуваючи в навігаторі об'єктів, виберіть вузол Data Blocks і натисніть кнопку "Create" для появи вікна "New Data Block" (рис. 7.9).
Мал. 7.9. Вікно "Створити новий блок"
властивості блоку
Тепер, коли ми навчилися створювати блок даних, можна перейти до розгляду його атрибутів (властивостей). Атрибути блоку - це його невід'ємна частина, тому дуже важливо знати їх призначення. Неправильне налаштування атрибутів може привести до різних критичних ситуацій, таким як падіння продуктивності, неправильна робота або виникнення виняткових ситуацій. Якщо ви будете знати більшість атрибутів блоку, ви зможете не тільки підвищити продуктивність вашого додатки, але і позбавити себе від написання зайвого коду.
Зараз ми ознайомимося з усіма властивостями блоку даних, а найважливіші розглянемо більш докладно (рис. 7.10).
Мал. 7.10. Таблиця властивостей блоку даних
- Вкладка General (Загальні)
- Name - це властивість визначає внутрішньо ім'я вашого блоку, яке ви будете використовувати для звернення до нього в своїх програмах.
- Subclass Information - при виборі цього властивості запускається вікно Subclass (рис. 7.11).
Мал. 7.11. Subclass Information (Інформація про підкласі)
- встановити перемикач в Object - цим ви вказуєте, що в якості підкласу буде обраний об'єкт;
- перейти в поле Module і вибрати ім'я модуля, в якому знаходиться подоб'екти. Щоб в поле Module з'явився список доступних модулів, потрібно, щоб вони були відкриті;
- після того як модуль обраний, в поле Object Name стають доступними його об'єкти. Виберіть потрібний об'єкт і натисніть кнопку "OK".
Після цього блок матиме вигляд і структуру обраного підоб'єкту.
Щоб призначити блоку клас властивостей, потрібно виконати ті ж дії, що і вище, попередньо встановивши перемикач на Property Class.
Примітка. блок, в якому було задіяно властивість "Subclass Information", відрізняється від інших тим, що на іконі блоку і всіх його елементах з'являються червоні стрілки.
- Navigation Style - це властивість визначає стиль переміщення:
- Та ж запис - цей параметр означає, що при переміщенні на наступне або попереднє поле запис не змінюється і при повторному поверненні в це поле статус поля і блоку не змінюється. Це значення Forms ставить за замовчуванням при створенні блоку.
- Змінити запис - цей параметр означає, що при переміщенні на інше поле його статус переходить в режим поновлення або Update.
- Змінити блок даних - цей параметр визначається точно так же, як і попередній, тільки з тією різницею, що статус Update приймає блок.
- Previous Navigation Data Block - в цьому полі ви можете вказати, який блок буде позначений як попередній блок при переміщенні. Наприклад: у вас в Блоке1 цей параметр має значення Блок3; тоді в ситуації, якщо ви перейшли з Блока2 на Блок3 і захочете повернутися на попередній блок, то ви повернетеся НЕ Блок3, а на Блок2.
- Next Navigation Data Block - це значення має таке ж визначення, як і попереднє, з тією лише різницею, що навігація здійснюється на наступний блок, а не попередній.
- Current Record Visual Attribute Group (група атрибутів візуалізації поточного запису) - це властивість за замовчуванням може приймати два типи значення:
і Default. Якщо ж ви створили свою групу атрибутів, то, відповідно, і вона буде додана в список можливих значень. При створенні блоку це значення дорівнює . - Query Array Size - визначає максимальну кількість записів, одночасно обирається Forms'ом. Маленьке значення параметра збільшує час відгуку форми, а велике значення зменшує повний час обробки, роблячи меншу кількість запитів до БД.
- Number of Records Buffered - визначає мінімальну кількість рядків, буферизованих в пам'яті під час виконання запиту в блоці. Всі інші записи буферизуются в тимчасовому файлі на диску клієнта. Велике значення збільшує продуктивність роботи форми зі значними обсягами даних.
- Number of Records Displayed - в цьому полі вказується кількість відображуваних одночасно записів в блоці. Якщо значення дорівнює "0" або "1", то в блоці відображається лише один запис; якщо, наприклад, цього полю привласнити значення "2", то в блоці буде виведено одночасно два записи, причому їх елементи - item_text продублюйте і створяться автоматично самим Forms'ом.
- Query all Records - визначає, чи повинні вибиратися всі записи, що задовольняють критерію запиту, або буде вибрано кількість записів, рівне параметру Query Array Size блоку. У переважній більшості випадків при роботі з великими обсягами даних в формі не слід встановлювати його в "Yes". Значення "Yes" зазвичай використовується в формах, які використовують обчислення підсумків.
- Record Orientation - визначає орієнтацію записи. Приймає два значення - "по вертикалі" і "по горизонталі", причому значення "по вертикалі" є значенням за замовчуванням.
- Single Record (одинична запис) - приймає значення "Yes" і "No". За замовчуванням Forms ставить це значення в "No", що дає можливість відображати більше одного запису.
- Visual Attribute Group (група атрибутів візуалізації) - це група властивостей, які ви можете призначити свого об'єкту, в даному випадку блоку. за замовчуванням це значення Default.
- Character Mode Logical Attribute (логічний атрибут символьного режиму) - тут ви задаєте базисні атрибути пристрою символьного режиму.
- White on Black - в цю властивість ви вказуєте, як об'єкти будуть відображатися на монохромному растровом дисплеї. За замовчуванням це значення <Не указано>, інші два параметри - "Так" і "Ні", де "Так" означає, що об'єкт відображається білим кольором на чорному тлі.
- Foreground Color (колір відображаються на екрані символів) - задає колір для переднього плану об'єкта, в нашому випадку це елементи тексту. При виборі цієї властивості запускається вікно "Набір шаблонів зафарбовування". Для цього запустіть вікно з палітрою зафарбовування, потім виберіть потрібний вам колір і клацніть по ньому, після чого вікно автоматично закриється і в поле цієї властивості відобразиться код обраного вами кольору.
- Background Color (колір фону) - тут ви вказуєте колір фону (фонової області). Зафарбування фону виконуватися точно так же, як і в Foreground Color.
- Fill Pattern (шаблон заповнення) - тут ви вибираєте малюнок (орнамент) для заповнення об'єкта, причому колір малюнка буде відповідати кольору відображуваних символів, а колір фону - фонової частини.
- Listed in Data Block Menu (перераховано в меню блоку даних) - визначає, чи повинен блок бути вказано в меню блоків даних символьного режиму.
- Data Block Description - в цьому полі ви можете дати опис блоку даних, яке буде використано як в меню блоків даних.
- D irection (напрямок) - напрям розмітки для двонапрямлених об'єктів розмірів, використовується в "NLS -Додатків (National Language Standart)". Здається одним з трьох можливих параметрів: "За замовчуванням", "Зліва направо", "Справа наліво". Перше значення є значенням за замовчуванням, яке задає Forms цій властивості при створенні блоку даних.
Налаштування деяких властивостей блоку
У цьому розділі ми розглянемо властивості блоку, настройки яких впливають на продуктивність програми. Коли ваша система досягне величезних розмірів і в ваших таблицях буде не одна тисяча записів, ви почнете відчувати падіння продуктивності форми, а саме:
- збільшення часу виконання запитів;
- затримку обчислення підсумків;
- збільшення розмірів тимчасових файлів, що зберігають буферізованние дані.
На рівні блоку ви можете управляти такими властивостями, які впливають на продуктивність роботи форми:
- Query All Records. Визначає, чи повинні вибиратися всі записи, що задовольняють критерію запиту, або буде вибрано кількість записів, рівне параметру Query Array Size блоку. У переважній більшості випадків при роботі з великими обсягами даних в формі не слід встановлювати це значення на "Yes". "Yes" зазвичай застосовується в формах, де відбувається обчислення підсумків.
- Query Array Size. Визначає максимальну кількість одночасно обираних записів. Маленьке значення параметра збільшує час відгуку форми, а велике значення зменшує повний час обробки, роблячи меншим кількість запитів до БД.
- Number of Records Buffered. Визначає мінімальну кількість рядків, буферизованих в пам'яті під час виконання запиту в блоці. Всі інші записи буферизуются в тимчасовому файлі на диску клієнта. Велике значення збільшує продуктивність роботи форми зі значними обсягами даних.
- DML Array Size. Визначення максимального розміру масиву для вставки, оновлення та видалення рядків в БД в один момент часу. Великий розмір зменшує час обробки транзакцій, знижуючи мережевий трафік з БД, але вимагає більшої кількості пам'яті. Оптимальний розмір - кількість рядків, змінюване користувачем в одній транзакції. Існують деякі обмеження на використання великих значень цього параметра.
- Зайдіть в SQL * Plus або будь-яке інше доступне GUI-засіб, наприклад, Sql Developer.
- Створіть таблицю Test: