Tab Canvas自我总结

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;

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值