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
随机推荐
- go语言之进阶篇指针类型和普通类型的方法集
方法集 类型的方法集是指可以被该类型的值调用的所有方法的集合. 用实例实例 value 和 pointer 调用方法(含匿名字段)不受方法集约束,编译器编总是查找全部方法,并自动转换 receiver ...
- 运用CSS改进网站设计的3个技巧
CSS是一种分离表述编码和实际内容的一种最有用的方式,也是一种使搜索引擎最优化的方式,通常,网站设计中会建立一整套的css样式标准,这些标准存储在一个扩展名为css的单独文件中.然后利用HTML标签设 ...
- [Backbone] Parse JSON on Collection
// Get /appointments{ "per_page": 10, "page": 1, "total": 50, "ap ...
- DB2数据源在Spring环境中的配置
简单记录一下,以备不时之需. DB2的java驱动包可以在这里下载:http://pan.baidu.com/s/1gOoEJ DB2数据源的配置如下,粗体字部分是需要根据实际情况修改的: <b ...
- 打通Fedora19的vsftpd服务
Fedora19默认vsftpd也没安,安装界面里也没地方让我选,这一点不如以前的版本人性化.没办法只有自己来了,倒也不费事. 1.下载vsftpd rpm安装包 我是从http://rpmfind. ...
- Android插件化(三)载入插件apk中的Resource资源
Android载入插件apk中的Resource资源 简单介绍 怎样载入未安装apk中的资源文件呢?我们从android.content.res.AssetManager.java的源代码中发现,它有 ...
- Visual Studio使用中的问题
1.后台断点调试,一到断点的时候就VS已停止 原因:安装插件问题,我的由于安装了" .NET Reflector Visual Studio Extension "插件 解决办法: ...
- 商业价值:苹果iTV,再一次改变世界?
苹果(Apple)公司打算进军智能电视领域,这在行业里已经不是秘密,有关苹果智能电视的消息也是不绝于耳,结合苹果产品线的命名规则,苹果智能 电视基本上就是iTV.就目前而言,Android智能系统已经 ...
- Java从零开始学七(选择结构)
一. 程序的结构: 一般来说程序的结构包含有下面三种: 1.顺序结构 2.选择结构 3.循环结构 二.顺序结构 程序至上而下逐行执行,一条语句执行完之后继续执行下一条语句,一直到程序的末尾
- mac系统下ionic环境配置
本人是在mac环境下进行配置的: 下载nodejs:https://nodejs.org/download/ 并双击安装 Cordova and Ionic command-line tools 安装 ...