OAF_OAF增删改-新增的实现(案例)

简介: 2014-09-14 Created By BaoXinjian 一、汇总     1.建立SearchInvoicePG对应的Create按钮以跳转到Create页面     2. SearchInvoiceCO.

2014-09-14 Created By BaoXinjian

一、汇总


    1.建立SearchInvoicePG对应的Create按钮以跳转到Create页面

    2. SearchInvoiceCO.java中添加如下方法

    3. 建立CreateInvoicePG,设定Button Region和Main Region

    4. CreateInvoiceCO.java中添加如下方法

    5. 在InvoiceAM中添加如下方法

    6. CreateInvoiceCO.java中添加如下方法

    7. 在InvoiceAM中添加如下方法

    8. SearchInvoiceCO.java中添加如下方法

 

二、分步解析


1.建立SearchInvoicePG对应的Create按钮以跳转到Create页面

    

 

2. SearchInvoiceCO.java中添加如下方法

public void processFormRequest(OAPageContext pageContext,OAWebBean webBean) { 

    super.processFormRequest(pageContext, webBean);

    /**按下创建发票Button,页面跳转至创建发票页面**/

    if (pageContext.getParameter("Create") != null) {

        pageContext.setForwardURL("OA.jsp?page=/oracle/apps/bxj/ap/invoice/webui/CreateInvoicePG",

                                  null,

                                  OAWebBeanConstants.KEEP_MENU_CONTEXT,

                                  null, null, true,

                                  OAWebBeanConstants.ADD_BREAD_CRUMB_YES,

                                  OAWebBeanConstants.IGNORE_MESSAGES);

    }

}

 

 

3. 建立CreateInvoicePG,设定Button Region和Main Region

    

 

4. CreateInvoiceCO.java中添加如下方法

public void processRequest(OAPageContext pageContext, OAWebBean webBean) {

    super.processRequest(pageContext, webBean);

    /**初始化页面,调用创建Row的方式**/

    if (!pageContext.isBackNavigationFired(false)) {

        TransactionUnitHelper.startTransactionUnit(pageContext, "CreateInvoiceTxn");

        if (!pageContext.isFormSubmission()) {

            OAApplicationModule am = pageContext.getApplicationModule(webBean);

            am.invokeMethod("AmCreateInvoice");

        }

    } else {

        if (!TransactionUnitHelper.isTransactionUnitInProgress(pageContext,"CreateInvoiceTxn",true)) {

            OADialogPage dialogPage = new OADialogPage(NAVIGATION_ERROR);

            pageContext.redirectToDialogPage(dialogPage);

        }

    }

    OAApplicationModule am = pageContext.getApplicationModule(webBean);

    am.invokeMethod("AmCreateInvoice", null);

}

 
 

5. 在InvoiceAM中添加如下方法

/**创建Invoice,初始化页面创建Row以存放资料**/

public void AmCreateInvoice() {

    OAViewObject vo = (OAViewObject)getInvoiceCreateVO1();

    vo.setMaxFetchSize(0);

    vo.executeQuery();

    Row row = vo.createRow();

    vo.insertRow(row);

    row.setNewRowState(Row.STATUS_INITIALIZED);

}

 

 

6. CreateInvoiceCO.java中添加如下方法

public void processFormRequest(OAPageContext pageContext,OAWebBean webBean) {

    super.processFormRequest(pageContext, webBean);

    /**按下确定Button后,调用创建Invoice的AM 方法**/

    OAApplicationModule am = pageContext.getApplicationModule(webBean);

    if (pageContext.getParameter("Apply") != null) {

        OAViewObject vo = (OAViewObject)am.findViewObject("CreateInvoiceVO1");

        am.invokeMethod("AmCreateApply", null);

        TransactionUnitHelper.endTransactionUnit(pageContext,"CreateInvoiceTxn");

        pageContext.forwardImmediately("OA.jsp?page=/oracle/apps/bxj/ap/invoice/webui/SearchInvoicePG",

                                       null,

                                       OAWebBeanConstants.KEEP_MENU_CONTEXT,

                                       null, null, true,

                                       OAWebBeanConstants.ADD_BREAD_CRUMB_NO);

    } else if (pageContext.getParameter("Cancel") != null) {

        am.invokeMethod("AmCreateRollback", null);

        TransactionUnitHelper.endTransactionUnit(pageContext, "CreateInvoiceTxn");

        pageContext.forwardImmediately("OA.jsp?page=/oracle/apps/bxj/ap/invoice/webui/SearchInvoicePG",

                                       null,

                                       OAWebBeanConstants.KEEP_MENU_CONTEXT,

                                       null,null,true,

                                       OAWebBeanConstants.ADD_BREAD_CRUMB_NO);

    }
}

 

 

7. 在InvoiceAM中添加如下方法

/**创建Invoice,将资料做Commit**/

public void AmCreateApply() {

    getTransaction().commit();

}

 

 

8. SearchInvoiceCO.java中添加如下方法

public void processRequest(OAPageContext pageContext, OAWebBean webBean) {

    super.processRequest(pageContext, webBean);

    /**从创建Invoice页面跳转至查询Invoice页面时,检查Create Invoice资料是否被Commit**/

    OAApplicationModule am = pageContext.getApplicationModule(webBean);

    if (TransactionUnitHelper.isTransactionUnitInProgress(pageContext,"CreateInvoice",false)) {

        am.invokeMethod("AmCreateRollback");

        TransactionUnitHelper.endTransactionUnit(pageContext, "CreateInvoiceTxn");

    }

}

 

Thanks and Regards

 

ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
相关文章
|
关系型数据库 MySQL 数据库管理
netcore2.0 ORM框架中如何配置自定义的主外键加载
环境:netcore2.0 DB :mysql ORM:Ant https://github.com/yuzd/AntData.ORM/tree/netcore2 [给我一个star吧] NUGET:Install-Package AntData.
1221 0
|
测试技术
OAF_开发系列24_实现OAF更新记录显示Record History(案例)
20150716 Created By BaoXinjian 一、摘要 OAF页面控件中显示记录历史信息有如下的限制: 1. 首先当然是后台的表结构中必须包含WHO字段列了 2. 基于的视图对象必须是非PL/SQL的可更新VO 3.
1070 0
|
Oracle 关系型数据库
OAF_开发系列20_实现OAF打印功能
ddddd   添加一个页面级的button区域:pagebuttonBar,在之下添加button item ,这里主要设置的参数有:采用默认的oaf的打印按钮的id名称: IcxPrintablePageButton,设置属性集为:/oracle/apps/fnd/attributesets...
1195 0
OAF_开发系列21_实现OAF事物控制TransactionUnitHelper(案例)
20150716 Created By BaoXinjian 一、摘要 TransactionUnitHelper用以创建一个被标记的Transaction,个人感觉类似PLSQL SavePoint用以Commit和Rollback特定交易的作用 主要用法 1.
1125 0
|
关系型数据库 Oracle
OAF_开发系列14_实现OAF代码动态新增控件
dERP技术讨论群: 288307890 技术交流,技术讨论,欢迎加入 Technology Blog Created By Oracle ERP - 鲍新建
1129 0
|
关系型数据库 测试技术
OAF_开发系列13_实现OAF通过Vector动态查询设置(案例)
20150715 Created By BaoXinjian 一、摘要 Oracle OAF Guide上介绍的标准客制化查询的方式,在多条件下进行查询 具体实现步骤如下 Step1.在controler中的processRequest 的方法中调用 (1).
1641 0
|
测试技术
OAF_开发系列04_实现OAF查询4种不同的实现方式的比较和实现(案例)
2014-06-02 Created By BaoXinjian 一、摘要 OAF实现查询功能或需求,一般都会采用以下四种方式 (1). ResultBasedSearch 最简单的实现方式,将结果中某些栏位需要查询的栏位的属性search设定为true即可 (2).
1787 0
|
SQL Oracle 关系型数据库
OAF_开发系列10_实现OAF动态LOV设定
20150712 Created By BaoXinjian 一、摘要 要在OAF中动态创建LOV的功能是很复杂的一件事,本文所讲述的动态LOV创建场合用于事先不能知道页面上会有多少个LOV,而且LOV所使用的SQL查询,也是由用户交互而获得的。
934 0
|
SQL 数据库
OAF_开发系列03_实现OAF如何在保存前判断数据是否存在变更(案例)
2014-06-26 Created By BaoXinjian 一、摘要 在OAF的开发中,可能有这样的需求,在选择保存按钮时,如果存在改动的数据,则提交事务,保存到数据库中; 如果不存在改动的数据,就提示用户当前没有数据可更改; 解决时需要判断页面中所使用的视图对象是否发生过改动,存在多种方法   1. 调用OADBTransaction.isDirty()方法 此方法用于判断当前事务中,视图对象是否发生过变更。
1204 0