Создадим форму с таблицами, у которых имеется связь "Master-Detail".
Будем использовать таблицы Dept и Emp из демонстрационной схемы Oracle Scott(user:scott,password:tiger).
Подразумевается что у вас уже установлена БД Oracle, Jdeveloper и вы умеете создавать Entity Object(EO),View Object(VO),Application Module(AM),Link и Association.
Если нет, то вот ссылки на предыдущие сообщения блога:
Ссылки на пошаговые инструкции по установке Oracle Database,JDeveloper и Weblogic;Создание простого приложения ADF в Jdeveloper.
- Создайте приложение "MyAppMD";
- Создайте соединение к демонстрационной схеме Scott;
- Создайте Бизнес компоненты EO(Dept,Emp), VO(DeptView,EmpView). Если вы создавали EO и VO c помощью "File-> New(или Ctrl+N)->ADF Business Components->Business components from Tables", то автоматически был создан ViewLink. Если нет, то выполните следующие действия:
-Нажмите правой кнопкой по DeptView и выберите "New View Link ..."
Появится следующее окно, в котором в Name напишите "FKDeptnoLink" и нажмите "Next"
Нажмите "Finish".
В нашем проекте появился новый объект ViewLink с название "FKDeptnoLink" который связывает два View объекта "DeptView", "EmpView" по полю Deptno.
Далее заходим в AppModule во вкладку Data Model.Там из окна "Avaliable objects" перенесите "DeptView" и "EmpView via FKDeptnoLink " в "Data Model "
Все.Наши VO связаны и готовы к использованию.Для проверки, нажмите правой клавишей по AppModule и нажмите "Run".В появившемся окне нажмите два раза по "FKDeptnoLink1". Должны появится две таблицы связанные между собой.
Теперь приступим к созданию собственно самой формы.
- Создайте страницу index.jspx
Если взглянуть в наш Data Controls, то он будет выглядеть так:
В созданную страницу перенесите с Data Controls вложенную в DeptView1 EmpView1 и в появившемся меню выберите подчеркнутые на следующей картинке пункты:
Форма "Master-Detail" готова. Такой способ создания "Master-Detail" имеет свои недостатки:
- Создаются Read-only объекты.
- Пользователю не предлагается выбор создаваемых полей в таблице и форме.
Используем другой способ:
-Перенесите "DeptView1" на страницу и в появившемся меню выберите "Form->ADF Form".В появившемся окне поставьте галочку около "Include Navigation Controls"и нажмите "ОК". На странице появилась форма таблицы Dept c кнопками навигации по ней. Сама форма представлена в виде трех полей компонент "af:inputtext".
- Перенесите "EmpView1" на страницу и в появившемся меню выберите "Table->ADF Table".Появится окно мастера создания таблицы. В котором мы на наше усмотрение можем включить функции сортировки и фильтрации(Enable Sorting, Enable Filtering), установить способ выделения строки(None,Single Row, Multiple Rows), и выбрать какие строки и с каким именем столбца они будут выводиться. Выберем :"Enable Sorting", "Enable Filtering ","Single Row" и жмем "OK".
Форма создана.Нам остается добавить операции создания,удаления и сохранения записи. Это как уже говорилось в первой статье делается с помощью вкладки Data Controls. В ней каждый объект имеет вкладку "Operations". В которой есть такие операции как "Delete","CreateInsert" и др. Путем простого переноса на страницу создаются кнопки к этим операциям. Сам Data Control(в нашем случае "AppModuleDataControl" имеет всего две операции:Commit(Сохранить), Rollback(Вернуть). После создания этих кнопок и изменения свойства Width на значение 900 нашей таблицы.Должна получиться такая форма :
Комментариев нет:
Отправить комментарий