Nanshan即时通讯 在向导中选择生产Create Method,则EOImpl中会包含标准create()

地址: Nanshan即时通讯 在向导中选择生产Create Method,则EOI ...

Nanshan即时通讯,从主页面ExpenseSummary.PG通过按钮Create,跳转至明细页面ExpenseCreate.PG,对Expense进行新增

实现OAF的新增功能insert的具体解析

建立EO时,在向导中选择生产Create Method,则EOImpl中会包含标准create()

public void create(AttributeList attributelist)

{

   super.create(attributeList);

}

在以上方法中可以加入初始化方法,在super.create后

当用户进行create record时,数据流向如下

Page Create Page Button->CO 中processFormRequest -> AM具体的create方法 ->VO具体的create的方法 ->EO 中的create方法

在Create时必须的VO进行初始化,新增Row以存放需create record的内容

  • 创建记录常用的两种方式
    • 在新增一个主界面上有个Create按钮,一旦触发该按钮,直接跳到一个明细页,用以新增记录
    • 在主Table上,有个Add New An Record按钮,一旦触发该按钮,直接在表后新增一个Record,用以新增记录
  • VO的数据的三个层次
    • View Object
    • Row
    • Attribute
  • EO Row的六个status
    • STATUS_NEW-> 新增记录状态
    • STATUS_DELETED-> 记录已被删除状态
    • STATUS_MODIFIED-> 记录已被修改状态
    • STATUS_UNMODIFED-> 记录未被修改或者已修改未提交
    • STATUS_DEAD-> 新增未提交即被删除
    • STATUS_INITALZIED -> 初始化状态

注意点:当执行EO的create()方法后,EO默认Row的状态为STATUS_NEW,这时,这条Row会被加入OAF的校验队列里,也就是说OAF会对这 条记录进行有效性的校验.这时,如果你的记录中有必填项,但新增时必然还没填入值,这校校验失败,OAF会返回错误信息,当然,新增动作也就失败了.因 此,我们可以加上row.setNewRowState(Row.STATUS_INITIALIZED)来设置记录状态为初始化状态,这样,这条记录将 不再进入校验队列,所以可以正常的建立,并输入值了

  • AM Create Date关键方法

public void createData()

{

   OAViewObjectImpl vo1 = this.getOrderLineVO1(); //取得VO的实例

   Row row = vo1.createRow();  //新增记录

   vo1.insertRow(row); //插入记录

   row.setNewRowState(Row.STATUS_INITIALIZED); //置EO Row的状态

}

  • AM Commit Date关键方法

public void applyDate()

{

getOADBTransaction().commit();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值