- 浏览: 325793 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (169)
- ORACLE EBS FORM开发 (39)
- ORACLE EBS业务 (18)
- ORACLE DB (13)
- ACCOUNTING (0)
- 休闲娱乐 (5)
- 开发自己 (1)
- OAF开发 (15)
- LINUX (2)
- ORACLE EBS文档 (1)
- 疑难杂症 (3)
- WEB ADI (2)
- 报表开发 (2)
- EBS有用SQL (8)
- ORACLE EBS开发 (5)
- ORACLE EBS DBA (15)
- EBS日常维护 (24)
- Oracle EBS workflow (2)
- Oracle EBS 个性化 (2)
- EBS常见接口表应用 (10)
- EBS标准API应用 (3)
- Oracle EBS 数据迁移 (2)
- Oracle EBS杂项技术荟萃 (1)
- EBS之事半功倍 (1)
- ORACLE EBS ALERT (1)
- OCP之路 (4)
最新评论
-
594597634:
楼主没有给解决方案啊
!我急求如何解决啊
亲历:JBO-25058 -
sjmei:
嗯,不错,学习了
PL/SQL NO_DATA_FOUND、SQL%NOTFOUND、SQL%ROWCOUNT -
maojieming:
做公交车,应该是“关门打X”
北京公交车一族必备绝技 -
hollysun:
现在功夫都练得炉火纯青了,独孤九剑~
北京公交车一族必备绝技 -
xyh:
还有一招:锁喉功,掐死你,捏死你
北京公交车一族必备绝技
Form中某些按钮可能调用了Package对表中某些字段进行更新,但是数据库中字段的修改不会马上反映到form的界面上,所以要进行重新查询,但是用户可能使用了查询窗口进行查询之后然后再点击按钮动作,如果简单的使用execute_query进行查询的话那么就会把原来的查询条件冲掉。所以这里写了一个公用的包进行查询:
procedure query_block(p_block_name varchar2)
is
l_cursor_block varchar2(50);
l_cursor_record number;
l_cursor_item varchar2(50);
l_trigger_record number;
l_default_where varchar2(1000);
l_last_query varchar2(2000);
l_where_anchor number;
l_order_anchor number;
l_where_clause varchar2(1000);
l_message_level number;
begin
l_cursor_item := name_in(‘SYSTEM.CURSOR_ITEM’);
l_cursor_record := name_in(‘SYSTEM.CURSOR_RECORD’);
l_cursor_block := name_in(‘SYSTEM.CURSOR_BLOCK’);
l_trigger_record := l_cursor_record;
l_message_level := :system.message_level;
if l_cursor_block <> p_block_name then
l_trigger_record := get_block_property(p_block_name, CURRENT_RECORD);
go_block(p_block_name);
if name_in(‘SYSTEM.CURSOR_BLOCK’) <> p_block_name then
fnd_message.debug(‘DEVELOPER ERROR: To select records ‘||
‘in another block, you must be able to navigate.’);
raise FORM_TRIGGER_FAILURE;
end if;
end if;
l_default_where := get_block_property(p_block_name, DEFAULT_WHERE);
l_last_query := get_block_property(p_block_name, LAST_QUERY);
//检查是否有Order By语句
if instr(upper(l_last_query), ‘ORDER BY’) = 0 then
l_order_anchor := length(l_last_query);
else
l_order_anchor := instr(upper(l_last_query), ‘ORDER BY’) – 1;
end if;
if instr(upper(l_last_query), ‘WHERE’) = 0 then
l_where_anchor := l_order_anchor – 5;
else
l_where_anchor := instr(upper(l_last_query), ‘WHERE’) + 1;
end if;
l_where_clause := substr(l_last_query, l_where_anchor+6, l_order_anchor-l_where_anchor-5);
set_block_property(p_block_name,default_where,l_where_clause);
:system.message_level := 25;
execute_query;
:system.message_level := l_message_level;
set_block_property(p_block_name,default_where,l_default_where);
go_block(p_block_name);
go_record(l_trigger_record);
go_block(l_cursor_block);
go_record(l_cursor_record);
go_item(l_cursor_item);
end query_block;
程序首先保存当前的block,record以及Item使得在执行完之后光标依然停留在原位置而不会跳来挑去。之后判断当前所在的Block是否和参数传进来的P_Block一致,如果不一致,那么就go到P_Block上,然后获取该Block的Last_Query,由于可能查询带有Order By,所以需要判断是否带有Order By来决定截取的最终位置。取得了where条件之后,通过使用set_block_property(p_block_name,default_where,l_where_clause)以及execute_query对block进行查询,在这之前需要先保存原来的default where,在查询之后将default_where设置为默认的。最后讲光标定位到原位置。
调用的时候输入Block Name,便可以截取到Block的查询条件查询该Block。
发表评论
-
FRM-40400:事务完成:已应用和保存X条记录"消息框不显示处理方法
2013-01-16 16:28 1500每次成功退出保存修改或添加记录时窗体都会弹出“FRM-4040 ... -
app_fields.set_required_field
2012-07-05 10:12 1213用来设置某个栏位为必录 可以在A的WHEN-VALIDAT ... -
Oracle EBS Form 开发 Tips
2012-07-05 09:49 12028EBS Form开发中经常会遇到一些小问题,以免再次遇到 ... -
form 触发器的层次Before、Override、after的区别
2012-04-10 16:54 1604问题描述:当我们在Form的BLOCK级里面增加了Tri ... -
FND_MESSAGE_PUB.get及error_handler.get_message用法
2012-02-20 20:56 37461. FND_MESSAGE_PUB.get用法,调用标准AP ... -
oracle EBS User Profile使用举例
2012-02-20 20:33 5474Oracle EBS 用户配置文件 ... -
commit_form do_key('commit_form') forms_ddl('commit');
2011-11-24 18:26 16951.commit_form 针对form上面的数据变动进行co ... -
open_form,call_form,new_form 的区别
2011-11-24 18:17 1165(一) open_form是一个受限的封装过程,他可以 ... -
亲历FRM-30425
2011-10-10 10:42 1163FRM-30425: Summarized database ... -
oracleform触发器执行顺序及键定义
2011-09-08 10:57 14341当打开FORM时: (1)PRE-FORM (2 ... -
FRM-30425问题解决
2011-08-01 16:31 2923FRM-30425: Summarized database ... -
EBS中取profile值的用法
2011-05-31 12:33 2178[code]fnd_profile.value的用法: ... -
Oracle EBS Standard Forms 开发规范标准的目的
2011-05-31 12:26 1257两大目标:一、让程序能由人类(human kind)进行维 ... -
调用Form
2011-05-11 11:36 1056(一) open_formopen_form是一个受限的封装过 ... -
范围弹性域
2011-03-24 16:32 1173范围弹性域是使用的键弹性域的一种扩展,其没有专门的弹性注册 ... -
form做好以后,别忘记检查这些
2011-03-24 16:30 11341.常规属性的设置,如模块、数据块、画布、窗口,常规触发器 ... -
使用Form个性化修改标准Form的LOV
2011-03-24 15:24 1399本文结合一个简单的Form做描述,这是没有个性化之前的LOV, ... -
使用Custom.pll修改标准Form的LOV
2011-03-24 15:23 1695在开发过程中,经常碰到需要修改标准Form中LOV的需求,一般 ... -
form开发的小总结
2011-03-22 12:14 1760Form 开发的一些小总结.当然要实现如下的功能不一定要这样做 ... -
FORM开发相关技术
2011-03-22 12:14 37371.一进页面就能看到表 ...
相关推荐
Oracle Form 是 Oracle E-Business Suite R12 中的一个功能强大且灵活的开发工具,用于创建复杂的商业应用程序。其中,触发器(Trigger)是一种非常重要的组件,它可以根据不同的事件来触发相应的操作。 Oracle ...
FORM 开发中的 FOLDER(文件夹)功能详解 在 Oracle FormBuilder 中,FOLDER(文件夹)功能是一个非常重要的组件,它能够帮助开发者快速地创建和管理文件夹结构。在这个教程中,我们将详细地介绍 FOLDER 功能的开发...
1. **Form 中的 Block 重新查询**: 当用户更改了某个字段的值时,可能需要更新与之关联的其他数据。通过触发器在适当的时候调用 `DO_BLOCK('BLOCK_NAME', 'REFRESH')` 可以实现对特定 Block 的重新查询,以确保...
- **查询 FORM**:在查询 FORM 中可以添加按钮,通过编程方式设置查询条件并执行查询。 - 新建一个块并加入一个框架。 - 加入数据项和按钮,编写代码实现动态查询功能。 - ```plsql GO_BLOCK('LZHTEST001'); ...
在Oracle Forms开发中,"FORM开发FOLDER参考实例"是一个教程,旨在帮助开发者实现类似Oracle标准Folder的功能。这个过程涉及到创建新的Form,添加必要的对象,调整触发器和程序单元,以及集成Oracle标准Form中的组件...
- 如果Form中有多个Data Block,可以创建它们之间的关系以实现数据交互,这可以通过“Create Relationship”完成。 4. **Layout Wizard**: - Layout Wizard用于定义数据如何在Canvas上显示,你可以选择显示在哪...
在网页设计中,表单(Form)是用户与网站交互的重要元素,用于收集用户输入的信息。"漂亮的form表单"这个主题关注的是如何创建既美观又功能强大的表单,以提高用户体验并提升网站的整体视觉效果。下面将详细介绍关于...
- 说明: 该标记用于避免在查询期间执行W-C-R(WHEN-CHANGED-READ-ONLY)操作。当`Lines`块的W-C-R触发器结束时,需重置该标记。 - **参数名称**: `max_line_num` - 类型: 数字 - 长度: 30 - 初始值: `0` - ...
在 Form 的 Console Window 中,设置 MY_FOLDER 为 Form 的 First Navigation Data Block。同时,设置 Window 的 Primary Canvas 为 MY_FOLDER,Block MY_FOLDER 的 Query Data Source Name 为 XXIN_BRAND_TYPE_V,...
如果需要,提交请求后还可以重新查询Block。 2. **非数据库字段查询处理**:当希望过滤掉某些特定记录,如不显示供应商A时,通常会考虑修改Block的默认WHERE条件。然而,直接使用set_block_property设置DEFAULT_...
这种绑定可以通过“Data Block”来实现,Data Block是表单中用于显示和操作数据库记录的一个容器。 3. **触发器与事件处理**:触发器是Form Builder中的一个重要概念,它们在特定事件发生时执行。例如,WHEN-NEW-...
都要指定 Property Class Name 作法相同, 但不同的 Object 选不同的 Class Data Block 较重要的 Property Data 是否可查询 查询 Data 的 Where 及 Order by 可写在此处 是否可新增/删除/修改 Data Windows Name 建议...
3. **按钮与代码的加入**:为了实现查询功能,需要在Form中加入按钮,并编写相应的代码,如`GO_BLOCK`, `SET_BLOCK_PROPERTY`, `EXECUTE_QUERY`等,用于执行查询逻辑。 ### 三、多画布操作 在复杂的应用场景下,...
手电筒查询方式是Oracle EBS FORM开发中的一个重要概念。手电筒查询方式可以根据不同的条件显示不同的数据。下面是一个简单的手电筒查询方式示例: 1. 多项添加一个窗口FIND_WND。 2. 画布FIND数据块FIND_BLK添加...
FormValidation通过自定义事件、回调函数和插件系统,使开发者能够轻松地集成验证功能到现有的项目中。 FormValidation的核心特性包括: 1. **多种验证规则**:内置了众多预定义的验证规则,例如邮箱、电话号码、...
- **Forms与Reports的协作**:一个Form可以调用Report,比如在Form中执行查询后生成报表。反之,Report也可以打开或更新Form中的数据。 - **Web发布**:Oracle EBS支持将Forms和Reports发布到Web,以适应互联网...
`commit_form`函数确保表单中的数据被保存到数据库中,是数据持久化的关键步骤。 #### 二十四、Convert Other Value - 转换值 `convert_other_value`函数用于转换下拉列表、圆形单选按钮组或复选框的值,使其符合...
FORM个性化是Oracle EBS R12中引入的一项强大功能,它允许用户在不修改原有FORM源代码的情况下,定制化修改FORM的标准功能。这一特性对于保持系统的稳定性和简化升级过程具有重要意义,因为个性化代码独立存储于...