在 Oracle 表单中的选项卡之间移动项目
Posted
技术标签:
【中文标题】在 Oracle 表单中的选项卡之间移动项目【英文标题】:Move items between tabs in Oracle forms 【发布时间】:2012-07-04 13:13:12 【问题描述】:我在 6i 中有一个 Oracle 选项卡式表单,我在第一个选项卡上有一个文本项我想设置一个代码,当我更改选项卡时,项目应该移动到当前选项卡。我的意思是项目应该只移动或查看当前活动选项卡,如果项目在第一个选项卡上并且我选择第二个选项卡,那么第一个选项卡上的项目应该放在第二个选项卡上。
【问题讨论】:
【参考方案1】:我认为,您不能在选项卡之间移动项目,但我需要这样的东西。实际上很高兴从标签标签中看到当前呈现的数据类型而不使用按钮或文本标签。 如果您不想创建多个块,而只想更改 where 子句或更改其他属性,
-
以您的项目为例 BLOCK_A.NAME(在 TAB1 上),将项目复制为
BLOCK_A.NAME_2
对重复项使用与项目同步属性,然后从列表中选择名称项目。
设置 TAB 你想在上面显示重复的项目。
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。
【讨论】:
【参考方案2】:有一个触发器“WHEN-TAB-PAGE-CHANGED”可能会帮助您,但是...
...在我看来,您希望在另一个“基础”画布之上有一个选项卡式画布。如果您将希望始终显示在基本画布上的此字段放置,它始终可见,并且您不必在选项卡之间移动数据。
【讨论】:
有没有办法在运行时更改文本项的选项卡? 我不知道。为什么需要这样做?对我来说似乎不必要的复杂。 实际上我想为标签创建此功能,因为出于设计目的,我不想将项目放在其他项目的标签之外,我想将一个项目用于所有标签,所以请告诉我如何我可以在运行时将选项卡分配给文本项吗 你不能。查看可在 SET_ITEM_PROPERTY 内置设置上设置的项目属性,我认为您不会将标签页作为其中之一。 If you must have a field on each tab, then create a field on each tab, and when the tab changes, copy the data to each field.以上是关于在 Oracle 表单中的选项卡之间移动项目的主要内容,如果未能解决你的问题,请参考以下文章
在带有选项卡式控件的表单中,单击按钮会降低焦点选项卡页中的面板高度,如果移动到另一个选项卡并返回,则会更正
在 Visual Basic 2010 中的表单中的选项卡之间传递值