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

2014-06-02
BaoXinjian

一、摘要

实现OAF的新增功能insert

二、案例

需求:创建新增功能

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中添加如下方法


 1 public void processFormRequest(OAPageContext pageContext,OAWebBean webBean) {
2
3 super.processFormRequest(pageContext, webBean);
4
5 /**按下创建发票Button,页面跳转至创建发票页面**/
6
7 if (pageContext.getParameter("Create") != null) {
8
9 pageContext.setForwardURL("OA.jsp?page=/oracle/apps/bxj/ap/invoice/webui/CreateInvoicePG",
10
11 null,
12
13 OAWebBeanConstants.KEEP_MENU_CONTEXT,
14
15 null, null, true,
16
17 OAWebBeanConstants.ADD_BREAD_CRUMB_YES,
18
19 OAWebBeanConstants.IGNORE_MESSAGES);
20
21 }
22
23 }

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

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


 1 public void processRequest(OAPageContext pageContext, OAWebBean webBean) {
2
3 super.processRequest(pageContext, webBean);
4
5 /**初始化页面,调用创建Row的方式**/
6
7 if (!pageContext.isBackNavigationFired(false)) {
8
9 TransactionUnitHelper.startTransactionUnit(pageContext, "CreateInvoiceTxn");
10
11 if (!pageContext.isFormSubmission()) {
12
13 OAApplicationModule am = pageContext.getApplicationModule(webBean);
14
15 am.invokeMethod("AmCreateInvoice");
16
17 }
18
19 } else {
20
21 if (!TransactionUnitHelper.isTransactionUnitInProgress(pageContext,"CreateInvoiceTxn",true)) {
22
23 OADialogPage dialogPage = new OADialogPage(NAVIGATION_ERROR);
24
25 pageContext.redirectToDialogPage(dialogPage);
26
27 }
28
29 }
30
31 OAApplicationModule am = pageContext.getApplicationModule(webBean);
32
33 am.invokeMethod("AmCreateInvoice", null);
34
35 }

5. 在InvoiceAM中添加如下方法


 1 /**创建Invoice,初始化页面创建Row以存放资料**/
2
3 public void AmCreateInvoice() {
4
5 OAViewObject vo = (OAViewObject)getInvoiceCreateVO1();
6
7 vo.setMaxFetchSize(0);
8
9 vo.executeQuery();
10
11 Row row = vo.createRow();
12
13 vo.insertRow(row);
14
15 row.setNewRowState(Row.STATUS_INITIALIZED);
16
17 }

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


 1 public void processFormRequest(OAPageContext pageContext,OAWebBean webBean) {
2
3 super.processFormRequest(pageContext, webBean);
4
5 /**按下确定Button后,调用创建Invoice的AM 方法**/
6
7 OAApplicationModule am = pageContext.getApplicationModule(webBean);
8
9 if (pageContext.getParameter("Apply") != null) {
10
11 OAViewObject vo = (OAViewObject)am.findViewObject("CreateInvoiceVO1");
12
13 am.invokeMethod("AmCreateApply", null);
14
15 TransactionUnitHelper.endTransactionUnit(pageContext,"CreateInvoiceTxn");
16
17 pageContext.forwardImmediately("OA.jsp?page=/oracle/apps/bxj/ap/invoice/webui/SearchInvoicePG",
18
19 null,
20
21 OAWebBeanConstants.KEEP_MENU_CONTEXT,
22
23 null, null, true,
24
25 OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
26
27 } else if (pageContext.getParameter("Cancel") != null) {
28
29 am.invokeMethod("AmCreateRollback", null);
30
31 TransactionUnitHelper.endTransactionUnit(pageContext, "CreateInvoiceTxn");
32
33 pageContext.forwardImmediately("OA.jsp?page=/oracle/apps/bxj/ap/invoice/webui/SearchInvoicePG",
34
35 null,
36
37 OAWebBeanConstants.KEEP_MENU_CONTEXT,
38
39 null,null,true,
40
41 OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
42
43 }
44
45 }

7. 在InvoiceAM中添加如下方法


1 /**创建Invoice,将资料做Commit**/
2
3 public void AmCreateApply() {
4
5 getTransaction().commit();
6
7 }

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


 1 public void processRequest(OAPageContext pageContext, OAWebBean webBean) {
2
3 super.processRequest(pageContext, webBean);
4
5 /**从创建Invoice页面跳转至查询Invoice页面时,检查Create Invoice资料是否被Commit**/
6
7 OAApplicationModule am = pageContext.getApplicationModule(webBean);
8
9 if (TransactionUnitHelper.isTransactionUnitInProgress(pageContext,"CreateInvoice",false)) {
10
11 am.invokeMethod("AmCreateRollback");
12
13 TransactionUnitHelper.endTransactionUnit(pageContext, "CreateInvoiceTxn");
14
15 }
16
17 }

Thanks and Regards

时间: 2024-10-10 02:13:36

OAF_OAF增删改-新增的实现(案例)的相关文章

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

2014-06-02 BaoXinjian 一.摘要 实现OAF的删除功能delete 二.案例 需求:实现删除功能 1. 建立Delete按钮的连接 2. 修改VO,增加按钮 3. 在SearchInvoiceCO.java中添加如下方法 4. 在InvoiceAM中添加如下方法 三.案例实现 1. 建立Delete按钮的连接 2. 修改VO,增加按钮 3. 在SearchInvoiceCO.java中添加如下方法 1 public void processFormRequest(OAPage

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

2014-06-02 BaoXinjian 一.摘要 实现OAF修改功能Update 二.案例 需求:实现修改功能 1. 建立Update按钮的连接 2. 设定触发事件为FireAction 3. 在SearchInvoiceCO.java中添加如下方法 4. 建立UpdateInvoicePG 5. 在UpdateInvoiceCO.java中添加如下方法 6. 在InvoiceAM中添加如下方法 7. 在InvocieUpdateVO中添加如下方法 8. 在UpdateInvoiceCO.j

React__TodoList 简单增删改查—本地存储-案例

1 import React, { Component } from 'react' 2 3 export default class todolist extends Component { 4 constructor(props) { 5 super() 6 this.state = { 7 name: [] 9 } 10 } 12 //refs 13 todoonclick = () => { 14 if (this.refs.inputmy.value === '') { 15 aler

Android(java)学习笔记245:ContentProvider之银行数据库创建和增删改查的实现

1.Android的四大组件: (1)Activity  用户交互的UI界面 (2)Service  后台运行的服务 (3)BroadcastReceiver 广播接收者 (4)ContentProvider  内容提供者 2. ContentProvider  内容提供者 用途:把应用程序私有的数据暴露给别的应用程序. 3.下面通过一个银行数据库创建和增删改查的实现案例说明ContentProvider的使用: (1)首先我们这里要用到数据库,首先我们必须先扩展一个抽象类SQLiteOpenH

OAF_OAF EO系列增删改 - Delete详解和实现(案例)

2014-06-14 BaoXinjian 一.摘要 在OAF中,似乎不是根据你光标所在的行来删除对应的记录,而是根据记录指针来删除,而这个指针又与你的光标位置无关需要用代码来精确的定位.因此我们在删除记录时,需要编写一定的代码来实现. User’s Guide中提供了一种标准的删除方法,通过在在当前记录集中用指针进行循环来定位需要删除的记录(例子提供的是只删一条). 不管如何删除,总的实现思路如下: Step1. 首先给需要删除的记录做标记:  要么打勾选上,要么在行上放个图标按钮来点火,总之

AngularJS的增删改查、state嵌套案例,不涉及服务端

本篇实践一个案例,大致是:左边有导航菜单,右边显示列表,并可对列表项编辑或删除,也可添加新的列表项.借此,可体会到:如何组织可扩展的AngualrJS文件结构,如何点击左侧菜单项右侧显示相应内容,angular-ui-router的使用以及嵌套state,增删改查,等等. 大致如下: 当点击添加按钮: 当点击更新按钮: 文件结构 node_modules/src/.....app/..........categories/  ...............categories.js  <包含一个

安卓版php服务器的mysql数据库增删改查简单案例

index.php文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html

Hibernate入门案例及增删改查

一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private Integer age; private String name; public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } public Integer getAge() {

Hibernate入门案例 增删改

一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private Integer age; private String name; public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } public Integer getAge() {