第一步 当然是建表了
example : -- create table
drop table t_tname;
create table t_tname(xh number(2), -- 序号
xm varchar2(10), -- 姓名
csrq date, -- 出生日期
bz varchar2(100), -- 备注
constraint pk_t_tname primary key(xh));
下面都以表格 t_tname 为例
第二步 就是实现功能了
打开form builder 前期准备工作
首先要有一个画布、窗口(假如将其名字名为cc_main,w_main)两者必须对应,然后就是添加数据块(就是
选择你建立的表格)布局画面,按照提示一步一步完成了,最后将你需要实现什么功能添加功能按钮,放在
另外一个非数据库块
然后就是代码编写了。
1.WHEN-NEW-FORM-INSTANCE(进入FROM时执行) 所要做的就是初始化窗口和一些自己需要的查询
1.1 将初始化窗口写成一个过程
PROCEDURE Prc_Init_Windows IS
BEGIN
Set_Window_Property(Forms_Mdi_Window,TITLE, 'WINDOW_NAME '); --设置多文档窗
口标题
Set_Window_Property(Forms_Mdi_Window,WINDOW_STATE,maximize); --设置多文档窗口最
大化
Set_Window_Property( 'W_Main ',WINDOW_STATE,maximize); --设置主
窗口最大化
:System.Message_Level:= '15 ';
--设置信息提示级别
END;
然后直接调用过程在WHEN-NEW-FORM-INSTANCE触发器里
-- code
Prc_Init_Windows;
GO_BLOCK( 't_tname ');
SET_BLOCK_PROPERTY( 't_tname ',INSERT_ALLOWED,PROPERTY_false);
SET_BLOCK_PROPERTY( 't_tname ',UPDATE_ALLOWED,PROPERTY_false);
execute_query; -- 内置子程序执行查询(查询所有记录)
2.添加 (所要做的就是保证序号不能为空,关键字)
两种操作方法一种直接在界面上输入,二种弹出另外一个窗口进行操作
就讲第一种吧,定义一个form参数p_xh (在对象导航器里面定义)
declare
nXH NUMBER(2);
BEGIN
GO_BLOCK( 't_tname ');
SET_BLOCK_PROPERTY( 't_tname ',INSERT_ALLOWED,PROPERTY_TRUE);
SET_BLOCK_PROPERTY( 't_tname ',UPDATE_ALLOWED,PROPERTY_false);
last_record;
create_record;
select max(xh) into nXH from t_tname;
:parameter.p_xh := nXH;
:t_tname.xh := :parameter.p_xh;
END;
在t_tname数据块中添加WHEN-NEW-RECORD-INSTANCE触发器
if get_block_property( 't_tname ',insert_allowed) = 'true ' then
if :t_tname.xh is null then
:parameter.p_xh := :parameter.p_xh + 1;
:t_tname.xh := :parameter.p_xh;
end if;
end if;
3.修改
GO_BLOCK( 't_tname ');
IF :t_tname.XH IS NOT NULL THEN
SET_BLOCK_PROPERTY( 't_tname ',INSERT_ALLOWED,PROPERTY_FALSE);
SET_BLOCK_PROPERTY( 't_tname ',UPDATE_ALLOWED,PROPERTY_TRUE);
END IF;
4.删除
GO_BLOCK( 't_tname ');
IF :t_tname.XH IS NOT NULL THEN
SET_BLOCK_PROPERTY( 't_tname ',delete_ALLOWED,PROPERTY_true);
delete_record;
commit;
SET_BLOCK_PROPERTY( 't_tname ',delete_ALLOWED,PROPERTY_false);
END IF;
5.保存
GO_BLOCK( 't_tname ');
COMMIT;
SET_BLOCK_PROPERTY( 't_tname ',delete_ALLOWED,PROPERTY_FALSE);
SET_BLOCK_PROPERTY( 't_tname ',INSERT_ALLOWED,PROPERTY_FALSE);
SET_BLOCK_PROPERTY( 't_tname ',UPDATE_ALLOWED,PROPERTY_FALSE);
6.撤消
DECLARE
P_WHERE VARCHAR2(200);
BEGIN
GO_BLOCK( 't_tname ');
CLEAR_BLOCK(NO_COMMIT);
P_WHERE := GET_BLOCK_PROPERTY( 't_tname ',DEFAULT_WHERE);
SET_BLOCK_PROPERTY( 't_tname ',DEFAULT_WHERE,P_WHERE);
EXECUTE_QUERY;
END;
7.查询
以姓名和出生日期为字段进行查询,从新添加一个窗口和画布,一个查询非数据块(例如块名为
BLK_QUERY)
DECLPARE
P_WHERE VARCAHR2(200) := '1=1 ';
BEGIN
IF :BLK_QUERY.XM IS NOT NULL THEN
P_WHERE := P_WHERE|| ' AND XM = '||CHR(39)||:BLK_QUERY.XM||CHR(39);
END IF;
IF :BLK_QUERY.CSRY IS NOT NULL THEN
P_WHERE := P_WHERE|| ' AND TO_CHAR(CSRY, ' 'YYYYMMDD ' ') =
'||CHR(39)||TO_CHAR(:BLK_QUERY.CSRY, 'YYYYMMDD ')||CHR(39);
END IF;
GO_BLOCK( 't_tname ');
CLEAR_BLOCK(NO_VALIDATE);
SET_BLOCK_PROPERTY( 't_tname ',DEFAULT_WHERE,P_WHERE);
EXECUTE_QUERY;
END;
分享到:
相关推荐
在企业级应用开发领域,Oracle Forms作为一款功能强大且灵活的应用开发工具,在多个版本迭代过程中积累了大量的用户基础与应用场景。随着技术的发展与需求的变化,从早期版本Oracle Forms 4.5升级到更先进的6i版本...
首先,手动提交Request是Oracle Forms中处理后台任务的关键操作。这通常涉及到与Oracle Request Manager的交互,用于调度并发程序执行。使用APPS.FND_REQUEST.SUBMIT_REQUEST函数可以实现这一目标。该函数接收105个...
1. **Oracle Forms基础**:首先,我们需要了解Oracle Forms的基本概念,包括表单对象(如按钮、字段、标签等)、事件驱动编程以及PL/SQL在Forms中的应用。表单是Oracle Forms的基础,它是由一系列可交互的对象组成的...
以下是OracleForms的一些基础知识和关键概念: 1. **基本对象概念**: - **Items**:Items是用户界面中的基本元素,如文本框、复选框或按钮,它们允许用户输入数据或与应用交互。 - **Blocks**:Blocks代表数据库...
通过这本书,读者不仅可以学习到Oracle Forms的基本概念和开发流程,还能深入了解如何在Oracle EBS环境下实现高效且可靠的业务逻辑。对于那些希望提升Oracle Forms开发能力的专业人士来说,这是一份宝贵的资源。
- **Event Handling**:Oracle Forms的核心是事件驱动的,开发者可以编写触发器来响应用户操作或系统事件。 - **Error Handling**:通过异常处理机制,可以捕获并管理运行时错误。 4. **高级特性**: - **Pre- ...
2. **PL/SQL支持**:Forms与Oracle的PL/SQL语言紧密结合,允许开发者编写复杂的业务逻辑和数据库操作。 3. **数据绑定**:可以方便地将表单控件与数据库表或视图的字段进行绑定,实现数据的动态显示和更新。 4. **...
安装Oracle Forms需要按照特定顺序进行,首先是Oracle Log,它是Oracle Application Server的基础,负责日志记录和错误追踪。接着安装Oracle Application Server,它提供了运行Forms服务的环境,允许Forms应用程序在...
### Oracle9iDS Forms 开发人员参考指南 ...通过阅读本书,读者不仅能够掌握 Oracle9iDS Forms 的基本操作,还能够深入了解其内部机制,从而更好地利用这一强大的工具来构建高效稳定的企业级应用程序。
在"Oracle forms & reports Common Built-in Packages(Release 6i)"中,我们探讨的是这个版本中内置的公共包,它们为开发者提供了丰富的功能,以便更高效地处理数据库交互、用户界面操作和其他业务逻辑。 一、...
3. **PL/SQL支持**:Forms与PL/SQL紧密集成,可以编写存储过程、函数和包,以处理复杂的数据操作和事务控制。 4. **数据绑定**:可以直接将表单控件与数据库表的字段关联,实现数据的实时显示和更新。 5. **图形...
这份指南可能包含了从基础知识到高级技巧的全方位教程,旨在帮助用户理解和掌握Oracle Forms的开发和应用。 Oracle Forms的核心特性包括以下几点: 1. **图形化界面**:Oracle Forms提供了直观的图形化界面,允许...
### Oracle Forms:构建高效数据库应用的关键工具 #### 定义与功能 Oracle Forms是一种图形用户界面(GUI)...通过结合Oracle数据库的强大功能,Oracle Forms为构建高性能、安全可靠的数据库应用提供了坚实的基础。
1. **Oracle Forms基础**:介绍Oracle Forms的架构,包括Form Builder环境,以及如何创建和设计基本的表单。 2. **图形用户界面(GUI)元素**:讲解如何添加、配置和布局各种GUI元素,如文本字段、按钮、列表框、复...
这篇博文主要总结了Java程序中与Oracle数据库交互的一些基本操作。通过`PersonCreditComplainDao.java`这个文件名,我们可以推测这是一个Java Dao(数据访问对象)类,它负责与数据库进行具体的交互。以下是关于Java...
通过以上内容,我们可以得知,该文档是Oracle EBS Forms开发人员的重要指南,涵盖了从基础搭建到高级组件使用及开发的全面内容。文档不仅是技术细节的描述,同时也是在特定Oracle ERP环境下的最佳技术实践的传达。...
本知识点将详细讲解如何在Oracle Forms中集成和调用Oracle Reports,以便用户能够从表单直接运行报表,提高工作效率。 首先,Oracle Forms是Oracle Application Development Framework (ADF)的一部分,它提供了一个...