在客制form时常常会遇到弹性栏位,如下图所示,其实就是调用标准API来实现的。
1、添加相关item:下列名称都可以自己定义
account_segment_values:会计科目节段,也就是上图中显示的费用科目,非database
Property |
Value |
Name |
account_segment_values |
Item Type |
Text Item |
Subclass Information |
Text Item |
List Of Values |
ENABLE_LIST_LAMP |
Validate form list |
No |
Database item |
No |
account_id:科目ID,这个一般写入Database
Property |
Value |
Name |
ACCOUNT_ID |
Item Type |
Text Item |
Subclass Information |
Text Item |
Database item |
Yes |
account_desc:科目描述
Property |
Value |
Name |
ACCOUNT_DESC |
Item Type |
Text Item |
Subclass Information |
Text Item |
2、使用到的函数
FND_KEY_FLEX.Define() 定义弹性域
FND_FLEX_EXT.GET_SEGS() 获取科目节段组合
fnd_flex_ext.get_ccid() 获取ID
FND_FLEX_KEYVAL.validate_ccid验证ccid的有效性
FND_FLEX_KEYVAL.concatenated_descriptions 得到ccid的描述
FND_KEY_FLEX.Update_Definition()
这里使用到前两个
在form的when-new-form-instance中定义弹性域:
FND_KEY_FLEX.Define
(
BLOCK=> 'SFC_MTL_SYSTEM_ITEM_CUSV',
FIELD=> 'EXPENSE_ACCOUNT_DSP',
ID=> 'EXPENSE_ACCOUNT',
APPL_SHORT_NAME=> 'SQLGL',
CODE=> 'GL#',
NUM=> :PARAMETER.CHART_OF_ACCOUNTS_ID,--STRUCTURE Number(CHART_OF_ACCOUNTS_ID')
REQUIRED=>'N',
VALIDATE=>'FULL',
USEDBFLDS=>'N',
VRULE=>'\\nSUMMARY_FLAG\\nI\\nAPPL=SQLGL;NAME=FLEX-Parent not allowed\\nN\\0GL_GLOBAL\\nDETAIL_POSTING_ALLOWED\\nE\\nAPPL=SQLGL;NAME=INV_VRULE_POSTING\\nN'
);
如有必要,一般在form和block的pre-query,post-query,pre-insert,pre-upadte,when-validate-record,when-new-item-instance这些trigger中添加如下标准函数:
FND_FLEX.EVENT('PRE-UPDATE');
FND_FLEX.EVENT('PRE-INSERT');
FND_FLEX.EVENT('POST-QUERY');
FND_FLEX.EVENT('PRE-QUERY');
FND_FLEX.EVENT('WHEN-VALIDATE-RECORD');
FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE');
3、如果要在开启form时带出会计科目组合,则需用到FND_FLEX_EXT.GET_SEGS()函数.
可在pre-form或when-new-form-instance中添加:
l_concat_segs :=
fnd_flex_ext.get_segs(
application_short_name => 'SQLGL',
key_flex_code => 'GL#',
structure_number =>:PARAMETER.CHART_OF_ACCOUNTS_ID,
combination_id => :PARAMETER.ORG_EXPENSE_ACCOUNT);
if l_concat_segs is null then
FND_MESSAGE.RETRIEVE;
FND_MESSAGE.ERROR;
RAISE FORM_TRIGGER_FAILURE;
else
--:SFC_MTL_SYSTEM_ITEM_CUSV.expense_account_dsp := l_concat_segs;
:PARAMETER.EXPENSE_ACCOUNT_DSP :=l_concat_segs;
这里注意,如果直接赋值给item,form默认进入insert模式,不允许使用F11查询,因此可以使用参数赋值,将item的Initial Value设置为该参数:PARAMETER.EXPENSE_ACCOUNT_DSP.
另外在POST-QUERY中,也要添加该函数,不然按CTRL+F11查询后该栏位会为空白.
相关推荐
ORACLEEBS财务全模块操作手册中文版收集.pdf
主要内容是oracle EBS财务模块,就学习ERP挺好的材料,分为五个部分 Oracle EBS财务模块(一)基本功能 Oracle EBS财务模块(二)基本组成模块 Oracle EBS财务模块(三)总账功能 Oracle EBS财务模块(四)账套 ...
Oracle EBS 财务模块表结构 PPT
oracle ebs 财务各模块介绍 doc文档
此针对于oracle ebs的值集进行详细的讲解
ORACLEEBS财务全模块操作手册中文版.docx
世新大学 ORACLE EBS 财务培训资料
Oracle EBS 操作手册
ORACLE EBS财务全模块操作手册中文版,一步一步教你学财务,很实用的
ORACLEEBS财务全模块操作手册中文版归纳.pdf
Oracle EBS 表 Oracle EBS 表 Oracle EBS 表 Oracle EBS 表 Oracle EBS 表
Oracle EBS中文数据字典.pdf
OracleEBS中文数据字典
Oracle EBS R12财务月结基础
win7 ORACLE ebs 需要的文件和具体设置步骤 详细
Integrating_EBS_with_Oracle_Internet_Directory_and_Oracle_Single_Sign-On Oracle EBS 单点登录 方案
ORACLE EBS R12 安装步骤详解,讲述ORACLE EBS R12的详细安装步骤,感觉不错,和大家一块分享
这是一份完整的Oracle ebs 项目制造模块培训文档,可以了解Oracle ebs 项目制造模块(PJM)的所有功能及流程。
Oracle EBS 各模块详解 01采购培训 02库存培训 03销售培训 04应付培训 05总帐培训 06应收培训
ORACLE ebs 各个模块的表之间的关联关系,方便大家熟悉ebs系统的表结构