How to implement master-details in OAF?

来源:互联网 发布:银川seo网络优化公司 编辑:程序博客网 时间:2024/05/11 20:45

In this article we will see the steps required to create Oracle Style Master Detail Page. On Master Detail Page already two articles are there one is by Arthi and second one by me.

I hope you are already familiar with View Object, Entity Object, Entity Association and View Link, if you are not please refer to JDeveloper guide or you can refer Arthi’s article on Master Detail Page.

Steps to create Oracle Style Master Detail Page:
1. Create Required Packages
2. Create Required  EOs(one for master and one for detail) and Entity Association to link these Entity Objects
3. Create Required  VOs(one for master and one for detail) and View Link using Entity Association to link these View Objects
4. Attach View Objects and View Link to Application Module
5. Create Page in following Manner
PageLayout Region>HeaderRegion>Default Single Column Region>Table Region

Default single column Region will hold the items for Master and Table will be used for displaying detail records.

For Establishing Master Detail Relationship we need to create table (to display Details) as child of Header Region (used to display Master record), Other than this we need not to set any other property.

For inserting a new record I wrote following code:

For creating Master record

 public void createSupplier() { OAViewObjectImpl vo = getSuppliersVO1(); if(vo.getFetchedRowCount() == 0) { vo.setMaxFetchSize(0);  } Row row = vo.createRow(); vo.insertRow(row); row.setNewRowState(Row.STATUS_INITIALIZED); }

 


For creating Detail Record: Please note that for Detail records don’t take setMaxFetchSize instead use executeQuery or other equivalent.

 public void createSupplierSite() { OAViewObjectImpl vo = getSupplierSitesVO1(); if(vo.getFetchedRowCount() == 0) { //vo.setMaxFetchSize(0); vo.executeQuery(); } Row row = vo.createRow(); vo.insertRow(row); row.setNewRowState(Row.STATUS_INITIALIZED); System.out.println("Test"); // vo.setrow }