OAF_OAF控件系列10 - Key Flexfield键值弹性域的实现(案例)
2014-06-17 Created By BaoXinjian
一、摘要
OAF的弹性域的实现基本和Form的弹性域实现的大体思路是一致的,在注册Table和弹性域完全一样,之后通过控件去实现具体的弹性域显示
Form的弹性域初始化基本都在trigger when-new-form-instance中
OAF的弹性域初始化基本都在processRequest中,或者在processRequest调用AM中的初始化方法
1. 网上的一个例子
新建一个EO,其中需要有相关的CCID字段。这里,如果在EO的Dynamic Attribute Groups里添加键弹性域的内容时,会报错,所以这里不在这里进行设置。
新建一个基于EO的VO,这个这个VO里需要有相关CCID的字段。
把
要录入信息的字段添加到页面上(CCID字段不需要),然后添加一个Item
Style类型为flex的项。(注意,在messageComponentLayout里不能添加flex项,所以要先添加一个
messageLayout,然后再在messageLayout里添加flex项)。设置flex项的ID:DF, Appl Short
Name:SQLGL, Name:GL#, Type:key, View Instance:自己定义的VO实例。
2. 键值弹性域必须存在的四个属性
- Appl Short Name:SQLGL
- Name:GL#
- Type:key
- View Instance:自己定义的VO实例
负责系统会报无法找到弹性域错误
3. 在使用键值弹性域时,必须在processRequest中进行初始化,负责无法使用该键弹性域
因为键弹性域的结构、并联哪个字段(即哪个字段为CCID字段)都没有设置,所以这里需要代码来控制,在processRequest里添加代码,如下:
public void processRequst
{
OAKeyFlexBean keyFlex = (OAKeyFlexBean)webBean.findChildRecursive(“DF”);
keyFlex.setStructureCode(“ACCOUNTING_FLEXFIELD”);
keyFlex.setCCIDAttributeName(“CCID字段”);
keyFlex.mergeSegmentsWithParent(pageContext);
}
4. 注意,键值弹性域需关心两个表
验证弹性域分段的输入值,且如果这样的组合已经存在,使用当前组合的CCID来更新视图对象.如果这样的组合不存在,将会插入一个新的CCID行到组合表。
比如总账的会计科目弹性域,在expense invoice po中只存一个CCID,其具体的描述在gl_code_combination中,如组合不存在则插入一条会计科目
使用最多的键值弹性域,我相信应该也就是会计科目弹性域了
案例: 使用总账的会计科目键值弹性域定义Expense Header中的会计科目
1. 确认GL中的会计科目键弹性域定义方式
2. 建立一个测试使用的Accouting Structure,会计科目有不同的结构,通过Structure去区分
3. 在OAF中新增一个Key Flex弹性域
4. 在CO中进行初始化,制定弹性域的Structure和Account ID
1. 打开页面,确认Key Flexfield无问题
2. 录入新的会计科目
3. 保存后查看数据库
3.1 在基表中只存放了account id栏位
3.2 具体的account组合存在在总账的会计科目弹性域对应的表gl_code_combinations中
Thanks and Regards
OAF_OAF控件系列10 - Key Flexfield键值弹性域的实现(案例)的更多相关文章
- OAF_OAF控件系列9 - Description Flexfiled描述性弹性域的实现(案例)
2014-06-17 Created By BaoXinjian
- OAF_OAF控件系列3 - AdvancedTable的实现(案例)
2014-06-02 Created By BaoXinjian
- OAF_OAF控件系列1 - Region Type汇总(概念)
2014-06-22 Created By BaoXinjian
- OAF_OAF控件系列8 - SubTab的实现(案例)
2014-06-02 Created By BaoXinjian
- OAF_OAF控件系列7 - Tree的实现(案列)
2014-06-02 Created By BaoXinjian
- OAF_OAF控件系列5 - Train的实现(案例)
2014-06-02 Created By BaoXinjian
- OAF_OAF控件系列4 - HGrid的实现(案列)
2014-06-02 Created By BaoXinjian
- OAF_OAF控件系列3 - Poplist的实现(案例)
2014-06-02 Created By BaoXinjian
- OAF_OAF控件系列2 - LOV的实现(案例)
2014-06-02 Created By BaoXinjian
随机推荐
- C#调用C++ memcpy实现各种参数类型的内存拷贝 VS marshal.copy的实现 效率对比
using System; using System.Runtime.InteropServices; using System.IO; namespace tx { struct ST { publ ...
- RequireJS 参考文章
入门: http://www.cnblogs.com/snandy/archive/2012/05/22/2513652.html http://www.cnblogs.com/snandy/arch ...
- 什么是'脑分裂(split brain)'?
这个词明显有点恐怖.设想一下,如果某时刻连接两个控制器之间的通路出现了问题,而不是其中某个控制器死机,此时两个控制器其实都是工作正常的,但是两者都检测不到对方的存在,所以两者都尝试接管所有总线,这时候 ...
- linux CentOS7 安装scala
1.打开terminal ,进入当前用户路径: cd /home/sks 2.下载Scala2.11 wget https://downloads.lightbend.com/scala/2.11.8 ...
- 如何用7-zip创建自解压文件,7Z软件如何使用
1 要创建自解压文件,一般都是双击直接解压到C盘的Program Files文件夹里面,或许还需要在桌面创建一个快捷方式之类的.但是一般的绿色软件除了复制到Program Files还需要运行一下绿化 ...
- windows server 2012 IE增强的安全配置如何关闭
http://jingyan.baidu.com/article/6181c3e076ac0b152ff15354.html 打开左下角的 服务端 关闭这个就可以了
- Android获取网络图片应用示例
1.养成好习惯,配置字符串资源文件 strings.xml <?xml version="1.0" encoding="utf-8"?> <r ...
- window下redis nosql初试
1:redis官方下载地址http://redis.io/download 下载下来,有32位的,有64位的,自己选择. 2:将redis文件夹放到D盘:D:\redis watermark/2/ ...
- Websocket——Websocket原理
偶然在知乎上看到一篇回帖,瞬间认为之前看的那么多资料都不及这一篇回帖让我对 websocket 的认识深刻有木有.所以转到我博客里,分享一下.比較喜欢看这样的博客,读起来非常轻松.不枯燥,没有布道师的 ...
- 1z0-052 q209_5
5: Your database is open and the LISTENER listener is running. The new DBA of the system stops the l ...