开发包含folder的TAB页FORM

转自:https://blog.csdn.net/u012900186/article/details/40503579

较于只有FOLDER,没有TAB页的FORM开发,稍微复杂了一点。

包含FOLDER的TAB页一共需要4张画布。

1.MAIN                        --主画布

2.MAIN_TAB              --TAB页画布

2.BLOCK_FIX           --数据块的固定画布(相当于没有TAB页的FORM的MAIN画布,指示器和滚动条等都放在这个画布)

2.BLOCK_STK         --数据块的堆叠画布(与之前的堆叠画布基本相同,数据块的项和展示块(PROMPT块)的项都放在这个画布)

与没有TAB页的FOLDER相比,主要需要注意的地方有:

1.FOLDER的初始化

在触发器 when-new-form-intance 中初始化FOLDER

app_folder.define_folder_block(object_name        => 'ONHAND_FOLDER_FD1',                     --FOLDER的名字,可以任意取
                              folder_block_name  => 'ONHAND_DETAIL',                               --数据块的名字
                              prompt_block_name  => 'ONHAND_DETAIL_PROMPT',          --题头块的名字(PROMPT块)
                              folder_canvas_name => 'OHNAND_STK',                                   --数据块的堆叠画布
                              folder_window_name => 'MAIN',                                                    --主窗口
                              disabled_functions => '',                                                                  --禁用的函数
                              tab_canvas_name    => 'MAIN_TAB',                                             --TAB页
                              fixed_canvas_name  => 'ONHAND_FIX');                                     --数据块的固定画布
app_folder.event('INSTANTIATE');

2.添加触发器 WHEN-TAB-PAGE-CHANGED

主要用于响应 更换标签页 的事件 

主要用到的函数 (以从page1到page2的更换为例):

hide_view('page1_fix');  隐藏位于page1标签页的画布

show_view('page2_fix');  显示位于page2标签页的画布

go_item('bolck.item'); 定位到page2的item

:system.tab_new_page 目标TAB页的名字

示例:

PROCEDURE WHEN_TAB_PAGE_CHANGED IS
  BEGIN
    validate(block_scope);
    IF :system.mode = 'ENTER-QUERY' OR NOT form_success THEN
          set_canvas_property('MAIN_TAB',
                              topmost_tab_page,
                              :system.tab_previous_page);
          RETURN;
        END IF;
      IF :system.tab_new_page = 'PAGE1' THEN
        
        show_view('PAGE1_FIX');
        hide_view('PAGE2_FIX');
        go_item('BLOCK1.ITME1');
        
      ELSIF :system.tab_new_page = 'PAGE2' THEN
        go_item('BLOCK2.ITEM1');
        show_view('PAGE2_FIX');              
        hide_view('PAGE1_FIX');
      END IF;
      
  END WHEN_TAB_PAGE_CHANGED;

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值