Form 开发技巧 常用代码
Form中的变量
Form中用到的变量,总结如下:
变量定义位置 | 作用域,由低到高 | 访问方法 | 引用方式 |
---|---|---|---|
各层触发器中的变量 | 该触发器 | Form PL/SQL | 变量名 |
Program Units中的变量 | 该Form的Session | Form PL/SQL | 包名.变量名 |
DB存储过程中的变量 | 该Form的Session | Form PL/SQL+DB PL/SQL | 包名.变量名 |
Block中的Item | 该Form的Session | Form PL/SQL+界面录入、修改 | :块名.变量名 |
Parameters中的Item | 该Form的Session | Form PL/SQL+EBS定义Function传初值 | :parameter.变量名 |
SYSTEM变量 | 该Form的Session | Form PL/SQL,只读,不能定义和修改值 | :SYSTEM.变量名 |
GLOBAL变量 | 整个应用 | Form PL/SQL,不用明确定义 | :GLOBAL.变量名 |
初始值 格式掩码
ITEM 的初始值属性:
当前日期:$$dbdate$$
当前时间:$$dbdatetime$$
下一序列::sequence.<sequence_name>.nextval
引用参数::parameter.<parameter_name>
引用字段::<block_name>.<item_name>
在OU层获取本位币:
思路是根据财务选项视图(屏蔽OU)连接SOB表取:
SELECT sob.currency_code
INTO :parameter.g_default_currency
FROM financials_system_parameters fsp, gl_sets_of_books sob
WHERE fsp.set_of_books_id = sob.set_of_books_id
货币格式
思路是根据字段长度、预制文件设置的货币格式智能设置掩码:
set_item_property('<Block_Name>.<Item_Name>',
format_mask,
fnd_currency.get_format_mask(:parameter.g_default_currency,
get_item_property('<Block_Name>.<Item_Name>',
max_length)));
获得账户结构
思路是根据预知文件的账套:
SELECT sob.set_of_books_id, sob.chart_of_accounts_id
FROM gl_sets_of_books sob
WHERE sob.set_of_books_id = fnd_profile.VALUE('GL_SET_OF_BKS_ID')
消息处理
调式
fnd_message.debug('Message');
出错消息
fnd_message.set_name('<APP_SHORT_NAME>','<Message_CODE>') ;
fnd_message.error;
提示消息
fnd_message.set_name('<APP_SHORT_NAME>','<Message_CODE>') ;
fnd_message.show;
询问信息
fnd_message.set_name('<APP_SHORT_NAME>', '<Message_CODE>');
if fnd_message.question('YES','NO',NULL,1,2) = 1 then
--do something
else
--do something
end if;