Опубликован: 17.09.2009 | Уровень: специалист | Доступ: свободно
Лекция 8:

Блоки. Создание реляционных отношений. Использование свойств ORDER BY и WHERE Clause

< Лекция 7 || Лекция 8: 12 || Лекция 9 >
Аннотация: В лекции рассматривается способ организации реляционной зависимости между блоками – relationship и свойства, имитирующие стандартные фразы SQL – Where и Order by.

Цель лекции: научить слушателя создавать блоки данных и реляционные отношения между ними. Ознакомить слушателя с одними из самых главных свойств блока – ORDER BY и WHERE Clause.

Создание Мастер-Деталь блоков

Часто в приложениях необходимо отобразить одну или более записей из одной таблицы, ассоциированных с записями из другой таблицы по какому-либо признаку. В Oracle Forms существует несколько способов реализации отношения Мастер-Деталь между блоками формы. Один из самых быстрых и эффективных способов создания отношения между новыми или существующими блоками – использование Data Block Wizard, то есть мастера создания блоков, который позволяет быстро определить отношения между блоками. Data Block Wizard позволяет не только задавать новые отношения между блоками, но и автоматически создавать связь между блоками, если таковая определена на уровне базы данных. В этом разделе мы научимся создавать реляционные отношения между блоками и корректировать их.

Прежде чем приступить к выполнению конкретного примера, давайте ознакомимся с вариантами представлений отношений и степенью их вложенности.

"Мастер_1-Деталь_1" – это стандартная и наиболее часто используемая схема ( рис. 8.1), когда одной таблице Мастер соответствует много записей Деталь, то есть связь один ко многим.


Рис. 8.1.

"Мастер_1-Деталь_1 | Мастер_2-Деталь_1 " – эта схема ( рис. 8.2) показывает, что у одной таблицы может быть две мастер-таблицы. Такой способ построения отношений между блоками встречается крайне редко, так как неудобен.


Рис. 8.2.

"Мастер_1-Деталь_1(Мастер)-Деталь_2" – эта схема ( рис. 8.3) аналогична первой, с той лишь разницей, что блок Деталь_1 выступает как Мастер для блока Деталь_2, то есть является одновременно Мастером и Деталью.


Рис. 8.3.

"Мастер_1-Деталь_1 | Мастер_1-Деталь_2" – эта схема ( рис. 8.4) также аналогична первой, с той лишь разницей, что выступает Мастером для двух не связных между собой деталь-блоков.


Рис. 8.4.

Создание отношения Мастер-Деталь

Предварительная подготовка

Ниже приведены три таблицы с описанием структуры и скриптами для их создания.

Таблица 8.1. Описание письма и заказчика (таблица PZAK)
Атрибут Тип Значение Описание
Pr_key NUMBER Первичный ключ
Nlet VARCHAR2 20 Номер письма
Pdat DATE YY.MM.DD Дата письма
Nfirm VARCHAR2 100 Наименование фирмы
Tplus NUMBER Толеранс плюс
Tmin NUMBER Толеранс минус
Yslp VARCHAR2 300 Условия поставки
Srpost VARCHAR2 300 Срок поставки
sdat DATE YY.MM.DD Дата загрузки письма
Таблица 8.2. Описание товара (таблица PPZAK)
Атрибут Тип Значение Описание
Pr_key NUMBER Первичный ключ
Fk_pzak NUMBER Внешний ключ на таблицу PZAK
Smarka VARCHAR2 100 Марка стали
Dopls VARCHAR2 300 Дополнительные условия
Doptr VARCHAR2 300 Дополнительные требования
Tmin NUMBER Толеранс минус
Tplus NUMBER Толеранс плюс
Part NUMBER Партия
Stand VARCHAR2 100 Стандарт на марку стали
Таблица 8.3. Характеристика товара (таблица PZAK_ATR)
Атрибут Тип Значение Описание
Pr_key NUMBER Первичный ключ
Fk_ppzak NUMBER Внешний ключ на таблицу PPZAK
Tls NUMBER Толщина листа
Shr NUMBER Ширина листа
Dln NUMBER Длина листа
Ton NUMBER Тоннаж
Gost VARCHAR2 100 Стандарт на толщину
Num NUMBER Номер позиции заказа
Скрипты для создания таблицы
  1. Описание письма и заказчика:
    Create table PZAK
    (
    pr_key number PRIMARY KEY,
    nlet varchar2(20),
    pdat date,
    nfirm varchar2(100),
    tplus number,
    tmin number,
    yslp varchar2(300),
    srpost varchar2(100),
    rnum number,
    sdat date
    )
  2. Описание товара:
    Create table PPZAK
    (
    Pr_key number PRIMARY KEY,
    Fk_pzak number,
    Smarka varchar2 (100),
    Priem varchar2 (100),
    Dopls varchar2 (300),
    Doptr varchar2 (300),
    Part number,
    Stand varchar2 (100),
    )
  3. Характеристика товара:
    Create table PZAK_ATR
    (
    Pr_key number PRIMARY KEY,
    Fk_ppzak number,
    tls number,
    shr number,
    dln number,
    ton number,
    gost varchar2 (100),
    )

После того как таблицы созданы, можно перейти к выполнению примера.

Пример, над которым мы сейчас начнем работать, будет использоваться на протяжении всего материала. Наша задача – получить приложение, задействующее основные возможности Oracle Forms. Мы будем создавать программу приема и обработки заказов.

  1. Создайте новую форму и сохраните ее под именем Zak.fmb.
  2. Вызовите мастер блока данных и выберите тип создаваемого блока данных – таблица или представление. Нажмите кнопку "Далее".
  3. Нажмите кнопку "Обзор" и в появившемся окне ( рис. 8.5) выберите таблицу PZAK и подтвердите выбор.
    Окно выбора объекта

    Рис. 8.5. Окно выбора объекта
  4. Перенесите все "доступные столбцы" из левого списка в список "базовых элементов" ( рис. 8.6) и нажмите кнопку "Далее" для вызова мастера макетов.
    Мастер блока данных. Выбор таблицы и атрибутов

    увеличить изображение
    Рис. 8.6. Мастер блока данных. Выбор таблицы и атрибутов
  5. В появившемся окне ( рис. 8.7) "Мастер макетов" выберите канву, на которой будут расположены элементы блока данных. Тип канвы выберите "Основная". Нажмите кнопку "Далее".
    Мастер макетов. Выбор элементов

    увеличить изображение
    Рис. 8.7. Мастер макетов. Выбор элементов
  6. Из списка имеющихся элементов выберите все кроме PR_KEY. После того как вы перенесете все элементы в список "Выводимые элементы", выберите тип элемента ( рис. 8.8), соответствующий типу, который указан в таблице PZAK. Нажмите кнопку "Далее".
    Мастер макета. Выбор типа элемента

    увеличить изображение
    Рис. 8.8. Мастер макета. Выбор типа элемента
  7. В этом окне ( рис. 8.9) вам предлагается подписать и установить значение ширины и высоты элемента. Вы можете пропустить этот этап и установить эти характеристики позже. Нажмите кнопку "Далее".
    Мастер макетов. Характеристики элементов

    увеличить изображение
    Рис. 8.9. Мастер макетов. Характеристики элементов
  8. В этом окне ( рис. 8.10) вам предлагается выбрать стиль размещения и отображения элементов. По умолчанию предлагается стиль "Форма", который нам как раз и необходим. Для завершения работы с мастером макетов нажмите кнопку "Далее".
    Мастер макетов. Стиль размещения элементов

    увеличить изображение
    Рис. 8.10. Мастер макетов. Стиль размещения элементов

В нашем примере мы реализуем схему "Мастер_1-Деталь_1(Мастер)-Деталь_2", как показано на ( рис. 8.10). Для создания такой схемы требуется как минимум три блока, поэтому нам нужно создать еще два блока. У нас эта схема будет иметь вид:

PZAK-PPZAK-PZAK_ATR
< Лекция 7 || Лекция 8: 12 || Лекция 9 >
Жанбек Сарсенов
Жанбек Сарсенов
Россия, Москва, Московский Государственный Университет имени Ломоносова М.В., 2002