示例代码:
PROCEDURE set_repl_status IS
BEGIN
sza_set_block_property(p_block_name => 'REPL_HEADERS', p_delete_flag => 'N');
sza_set_block_property(p_block_name => 'REPL_LINES', p_delete_flag => 'N', p_insert_flag => 'N');
IF :repl_headers.status_code IN ('1NEW') THEN
sza_set_block_property(p_block_name => 'REPL_HEADERS', p_delete_flag => 'Y');
sza_set_block_property(p_block_name => 'REPL_LINES', p_delete_flag => 'Y', p_insert_flag => 'Y');
ELSIF :repl_headers.status_code = '4REJECT' THEN
sza_set_block_property(p_block_name => 'REPL_LINES', p_delete_flag => 'Y', p_insert_flag => 'Y'); END IF;
app_standard.synchronize; END set_repl_status;
7.设置窗口的标题
在when-new-form-instance设置
app_window.set_title('RETIRE_PLAN', :PARAMETER.ORG_CODE);
8.跳转块或者查询块的正确方法(system.message_level)
在ebs form中,消息是有等级的,为了clear_block,do_key('execute_query')等时,屏蔽一些小错误,将等级下调至10.
if event = 'WHEN-BUTTON-PRESSED' then --在ebs form中 l_message_level := :system.message_level; :system.message_level := 10; go_block('approve_action');
clear_block;
:parameter.g_query_find := 'TRUE'; do_key('execute_query'); :parameter.g_query_find := 'FALSE';
:system.message_level := l_message_level; end if;
9. 分段排序
实现:晚于当前系统时间的item排在前面,升序。早于当前系统时间的item排在后面,升序
使用union的原因: Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union All:对两个结果集进行并集操作,包括重复行,不进行排序;
10.编译刚定义好的消息
刚定义好的消息要通过编译才能显示详细说明,不然只会显示简码。 编译消息 - 应用开发员职责-->其他 -->请求 -->运行复制按钮,选择‘生成消息’行,(如果自己选择,则需要输入参数信息)
11.提示:FND_MESSAGE
Question的使用:
fnd_message.set_name('SQLSZA', 'SZA_EAM_DRAW_RETURN_SAVE_TIP'); //用于显示在选择框的内容提示(set_string也可以) l_question_rt := fnd_message.question('YES', 'NO',
'CANCEL', 1, 3, 'question'); if l_question_rt <> 1 then raise form_trigger_failure; end if;
定义变量接受返回值即可l_question_rt为number类型,根据返回值执行逻辑。 例子:
第二种使用方法:
fnd_message.set_name('SQLSZA', 'SZA_EAM_TXN_CANCEL_LIN'); app_special.instantiate('SPECIAL5', fnd_message.get); 使用fnd_message.get取出栈内的消息
12. 提示:set_alert_property
使用set_alert_property来设置提示的信息,可以用字符串连接来输出信息,比FND_MESSAGE方便
13.屏蔽错误
如果碰到无法解决的错误,但是错误对程序并不影响。在ON-ERROR触发器中,用一下代码替代
app_standard.event('ON-ERROR'); BEGIN IF ERROR_CODE = 41016 THEN NULL; ELSE app_standard.event('ON-ERROR'); END IF; END;
14.关于list的一些函数
clear_listadd_list_element配合使用在procedure中动态生成,参考帮助文档
DELETE_LIST_ELEMENT('EVALUATION.EVAL_TYPE_CODE',2);删除list内index 为2值 GET_LIST_ELEMENT_COUNT('SHIP_LINES.CHECK_RESULT_CODE') 这个函数用途是得到list内元素的个数,NULL也是元素之一。
15.FOLDER中prompt块中的display item名称
在form中如果我们有需求,改变folder中的提示item,例如图中的”鉴定单号”-->”评估单号”,我们如何去改呢?
一般要在在folder初始化之前就改变他的值。(一定是有效果的)
但是像下图这种方式有可能成功,也有可能不成功,看具体的应用场景。
16.form中global变量的使用
使用global变量时可以在任何地方声明(声明方法是:global.xxx := ‘xxx’),然后可以在任意form,个性化中获取到
17.调试PLSQL Developer卡死
exception
when others then rollback;
dbms_output.put_line('---------'); 在Test Window后加入以上语句