Tab Canvas自我总结
来源:互联网 发布:手机淘宝上买二手 编辑:程序博客网 时间:2024/05/22 14:24
转自:http://blog.csdn.net/rfb0204421/article/details/7613307
Tab Canvas与Stacked Canvas在数据上没有任何联系,它们都要放在一个content Canvas上面,只是遮挡与被遮挡的关系.
需要分别调整各个Stacked Canvas与Tab Canvas的位置关系,通过菜单Views->stacked views来调整与隐藏已调整好的.
响应Tab Canvas点击事件的代码需要放在FORM级WHEN-TAB-PAGE-CHANGED的trigger中.
下了俩个前人写的例子,以备自己以后参考:
例子一:
WHEN-TAB-PAGE-CHANGED事件中:
IF :system.tab_previous_page = 'MAIN_PAGE' THEN
validate(block_scope);
IF :system.MODE = 'ENTER-QUERY' OR NOT form_success THEN
--Message here
set_canvas_property('INVOICE_LINE_TAB',topmost_tab_page,:system.tab_previous_page);
RETURN;
END IF;
ELSIF :system.tab_previous_page = 'SALES_ORDER_PAGE' THEN
validate(block_scope);
IF :system.MODE = 'ENTER-QUERY' OR NOT form_success THEN
--Message here
set_canvas_property('INVOICE_LINE_TAB',topmost_tab_page,:system.tab_previous_page);
RETURN;
END IF;
--
ELSIF :system.tab_previous_page = 'MORE_PAGE' THEN
validate(block_scope);
IF :system.MODE = 'ENTER-QUERY' OR NOT form_success THEN
--Message here
set_canvas_property('INVOICE_LINE_TAB',topmost_tab_page,:system.tab_previous_page);
RETURN;
END IF;
--
END IF;
IF :system.tab_new_page = 'MAIN_PAGE' THEN
show_view('INVOICE_LINE_FIX_STACKED');
show_view('INVOICE_LINE_MAIN_STACKED');
show_view('LINE_SCROLLBAR_STACKED');
hide_view('INVOICE_LINE_ORDER_STACKED');
hide_view('INVOICE_LINE_MORE_STACKED');
go_item('AR_INV_LINES.L_UOM_CODE');
ELSIF :system.tab_new_page = 'SALES_ORDER_PAGE' THEN
show_view('INVOICE_LINE_FIX_STACKED');
show_view('INVOICE_LINE_ORDER_STACKED');
show_view('LINE_SCROLLBAR_STACKED');
hide_view('INVOICE_LINE_MAIN_STACKED');
hide_view('INVOICE_LINE_MORE_STACKED');
go_item('AR_INV_LINES.L_SALES_ORDER');
--
ELSIF :system.tab_new_page = 'MORE_PAGE' THEN
show_view('INVOICE_LINE_MORE_STACKED');
hide_view('INVOICE_LINE_MAIN_STACKED');
hide_view('INVOICE_LINE_FIX_STACKED');
hide_view('LINE_SCROLLBAR_STACKED');
hide_view('INVOICE_LINE_ORDER_STACKED');
go_item('AR_INV_LINES.L_INTERFACE_LINE_CONTEXT');
--
END IF;
例子二:
WHEN-TAB-PAGE-CHANGED事件中:
control.Tab_Controler('WHEN-TAB-PAGE-CHANGED');
Program Units中:
PACKAGE BODY CONTROL IS
PROCEDURE TAB_CONTROLER(EVENT VARCHAR2) IS
CURR_CANVAS_NAME VARCHAR2(30) := GET_ITEM_PROPERTY(:SYSTEM.CURSOR_ITEM, ITEM_CANVAS);
CURRENT_TAB VARCHAR2(30);
TARGET_CANVAS_NAME VARCHAR2(30) := :SYSTEM.TAB_NEW_PAGE;
BEGIN
IF (EVENT = 'WHEN-TAB-PAGE-CHANGED')
THEN
IF (TARGET_CANVAS_NAME = 'PAGE1') THEN
validate(record_scope);
IF NOT FORM_SUCCESS THEN
set_canvas_property('CANVAS_TAB',topmost_tab_page,:system.tab_previous_page); --:system.tab_previous_page
return;
END IF;
GO_ITEM('TRUCK_BASIC_LINE.STATION_START');
SHOW_VIEW('CAN_LINE1');
HIDE_VIEW('CAN_LINE2');
set_block_property('TRUCK_BASIC_LINE',insert_allowed,Property_True);
set_block_property('TRUCK_BASIC_LINE',update_allowed,Property_True);
set_block_property('TRUCK_BASIC_LINE',delete_allowed,Property_True);
ELSIF TARGET_CANVAS_NAME = 'PAGE2' THEN
validate(record_scope);
IF NOT FORM_SUCCESS THEN
set_canvas_property('CANVAS_TAB',topmost_tab_page,:system.tab_previous_page); --:system.tab_previous_page
return;
END IF;
GO_ITEM('TRUCK_BASIC_LINE.CREATION_DATE');
SHOW_VIEW('CAN_LINE2');
HIDE_VIEW('CAN_LINE1');
set_block_property('TRUCK_BASIC_LINE',insert_allowed,Property_False);
set_block_property('TRUCK_BASIC_LINE',update_allowed,Property_False);
set_block_property('TRUCK_BASIC_LINE',delete_allowed,Property_False);
END IF;
END IF;
END TAB_CONTROLER;
END CONTROL;
- Tab Canvas自我总结
- Tab Canvas自我总结
- 自我总结一下实现Indicator,ViewPager与Fragment实现tab导航
- 自我总结
- 自我总结
- 自我总结
- 自我总结
- 自我总结
- 自我总结
- 自我总结。。。
- 自我总结
- 自我总结
- 自我总结
- 自我总结
- 自我总结
- 总结自我
- 自我总结
- 自我总结
- detours
- 数据库中的聚集索引和非聚集索引
- UI 关于userInteractionEnabled的属性的理解
- VC++中DLL中全局变量的导出和导入
- HDOJ 题目4587 TWO NODES(双联通,割点,枚举)
- Tab Canvas自我总结
- oracle单机__手工卸载
- Js计算时间差(天、小时、分钟、秒)
- 2015年大一下第11周项目3-日期时间类
- python朝花夕拾
- Java学习日记之数组
- nodejs学习(一)函数定义
- IOS与Android系统的简单区别
- C++与C变量或函数的混合调用