在Oracle表单中的选项卡之间移动项目

时间:2012-07-04 03:51:53

标签: forms oracle tabs textinput

我在6i中有一个Oracle选项卡表单,我在第一个选项卡上有一个文本项目我想设置一个代码,当我更改选项卡时,项目应该移动到当前选项卡。我的意思是项目应移动或仅查看当前活动选项卡,如果项目在第一个选项卡上,我选择第二个选项卡,则第一个选项卡上的项目应放在第二个选项卡上。

2 个答案:

答案 0 :(得分:0)

触发“WHEN-TAB-PAGE-CHANGED”可能会帮助你,但是......

...对我而言,就像你想在另一个“基础”画布上面的标签画布一样。如果您想要将此字段始终显示在基础画布上,它始终可见,您不必在选项卡之间移动数据。

答案 1 :(得分:0)

我认为,你不能在标签之间移动项目,但我需要这样的东西。从标签标签看,实际呈现的是什么类型的数据,而不是使用按钮或文本标签。 如果您不想创建多个块,但只更改where子句或更改其他属性,

  1. 以你的物品为例BLOCK_A.NAME(在TAB1上),重复项目为 BLOCK_A.NAME_2
  2. 在重复项目上使用与项目属性同步,然后从列表中选择NAME项目。
  3. 设置选项卡您想要显示重复的项目。
  4. WHEN-TAB-PAGE-CHANGED触发器可能如下所示:

    declare
       curr_tab varchar2(30);
    begin
        if :SYSTEM.CURRENT_BLOCK in ('BLOCK_A') then
            curr_tab := get_canvas_property('MYTABPAGE',topmost_tab_page); 
            if curr_tab = 'TAB1' then
                --Set WHERE 1, execute_query;
                go_item('BLOCK_A.NAME');--Navigate to TAB1
            else
                --Set WHERE 2, execute_query;
                go_item('BLOCK_A.NAME_2');--Navigate to TABX
            end if;
        end if;
    end;
    

    这样我可以拥有几个具有相同数据源但属性不同的项目。 对于直接导航,只需转到适当的项目以显示您想要的TAB。