如何更改按钮标签文本并在运行时添加新功能?甲骨文表格

Posted

技术标签:

【中文标题】如何更改按钮标签文本并在运行时添加新功能?甲骨文表格【英文标题】:How to change the push button label text and add a new functionality in runtime? Oracle Forms 【发布时间】:2017-09-06 22:26:16 【问题描述】:

我正在学习 Oracle 表单和报告,这次我想在一个按钮内编写一些功能。我添加了一个名为“Filter”的按钮,用于激活“enter_query”模式,以在项目级别使用“WHEN-BUTTON-PRESSED”触发器添加一些搜索条件,并在此触发器中添加代码。编码太容易了:

BEGIN 
  ENTER_QUERY; 
END; 

但是现在,我必须为这个按钮添加两个新功能:

1- 首先,当我编写一些搜索条件并按下名为“SEARCH”的第二个按钮以检索相关数据时,“过滤器”按钮必须重命名为“LAST RECORD”,如果我按下“LAST RECORD”按钮该表单应仅检索 las 搜索检索到的最后一条记录。我已经考虑过应该如何解决这个问题,并尝试添加 SET_ITEM_PROPERTY 来触发,但它无法正常工作。

BEGIN 
   ENTER_QUERY; 
   SET_ITEM_PROPERTY('BLOCK_NAME', LABEL, 'LAST RECORD'); 
   LAST_RECORD;
END;

2- 最后,在按下“LAST RECORD”按钮后,它应该重命名为“CANCEL”,如果我再次按下此按钮,它应该清除表格并在第一个名为“的位置重新开始” FILTER" 以根据客户的需要多次启动新的搜索条件...

你有什么想法吗?谢谢。

【问题讨论】:

【参考方案1】:

你可以编辑这个 sn-p :

begin 
     if ( :system.mode = 'ENTER-QUERY' ) then
           set_item_property('b_search', label, 'search'); 
           go_block('blk_yours');
           execute_query;    
     else
           set_item_property('b_search', label, 'last record');         
           go_block('blk_yours');    
           enter_query;
     end if;    
           last_record;
end;

in when-button-pressed 项目的触发器 b_search

【讨论】:

先生,我尝试将此脚本添加到我的触发器中,我认为它会很好用,但我有一个问题。添加代码以仅检索查询的最后一条记录的最佳方法是什么?谢谢。 哦,我已经在我忘记的答案中编辑了“last_record”。顺便说一句,我认为您将检索整个记录集,而“last_record”仅代表转到网格的最后一行。我不明白你为什么只想看最后一个,请告诉我。 因为加入 smalll 软件公司是培训的一部分。稍后我将添加一个显示表单的屏幕截图,因为它不起作用,我认为我的问题表达得太错误了,如果我通过屏幕截图,人们可以理解我。感谢您的回复巴巴罗斯。我继续尝试。 您好,先生,我已阅读有关 Oracle Forms 内置插件和方法(如 GET_ITEM_PROPERTY 及其属性)的信息,它帮助我完成了测试。感谢您抽出时间多次回复。我会检查你的答案是否正确。再次感谢!

以上是关于如何更改按钮标签文本并在运行时添加新功能?甲骨文表格的主要内容,如果未能解决你的问题,请参考以下文章

如何在运行时更改集合视图标题中的标签文本位置?

如何在功能运行时更改按钮的文本

本地化 Windows 窗体并在运行时更改语言

动态添加带有特定文本和坐标的标签

单击表格视图中的按钮时如何更改表格视图外部的标签文本

用按钮单击更改标签文本