form builder学习总结整理

目录

目录

froms builder学习笔记总结:

一  form Builder基础知识点 (和必备知识)

1.1 form Builder的基本对象和功能

1.2 form对象之间的层次关系

1.3 常用触发器

 1.3.1 表单层次的触发器

 1.3.2 数据块层次的触发器

 1.3.3 项层次的触发器

1.4 plsql设置主键自增方式

 1.4.1 创建序列(sequence)

 1.4.2 创建触发器

 1.4.3 添加信息数据自增

二   新建form实现增删改查

2.1  新建表单

2.2  建立数据块

2.3 建立布局

2.4 建立其他的数据块

2.5 在程序单元里面之前写过的包和包体

2.6 编写触发器

2.7上传服务器并编译

2.8 登录sf 系统 新增DEM001-员工管理表单

2.9增删改查测试

三  遇到的问题

3.1 Stacked Canvas会突然消失的处理

3.2 打开sfcs网站报错解决方案

3.3 FRM-10043: 不能打开文件

3.4 打开菜单出现如下问题

3.5  关闭窗体出现问题

3.6  ORA-00054




froms builder学习笔记总结:

一  form Builder基础知识点 (和必备知识)

1.1 form Builder的基本对象和功能

Form builder: 的几个基本对象

FORM:     可以有多个Window。

Window: 只能有一个CANVAS

Canvas:    画布可以存放数据块

Block:      数据块,ITEM放在几面

Item:   最小的元素可以用来放字段按钮

 1.2 form对象之间的层次关系

表单里面放数据块,数据块里面放记录组,记录组里面存放项

form builder学习总结整理_第1张图片

 1.3 常用触发器

   1.3.1 表单层次的触发器

WHEN-NEW-BLOCK-INSTANCE
PRE-FORM
PRE-BLOCK
WHEN-NEW-FORM-INSTANCE
WHEN-NEW-BLOCK-INSTANCE
WHEN-NEW-RECORD-INSTANCE
WHEN-NEW-ITEM-INSTANCE

  1.3.2 数据块层次的触发器

WHEN-REMOVE-RECORD
WHEN-NEW-RECORD-INSTANCE
WHEN-NEW-ITEM-INSTANCE
WHEN-VALIDATE-RECORD

 1.3.3 项层次的触发器

WHEN-NEW-ITEM-INSTANCE
WHEN-VALIDATE-ITEM
WHEN-MOUSE-CLICK
WHEN-MOUSE-DOUBLECLICK

1.4 plsql设置主键自增方式

  1.4.1 创建序列(sequence)

--创建序列SQ_EMPTEST1
CREATE SEQUENCE SQ_EMPTEST1
increment by 1
start with 1
nomaxvalue
minvalue 1
nocycle
nocache

 1.4.2 创建触发器

  对emptest1表的employee_id进行自增

--创建触发器对department_id设置主键自增
create or replace trigger EMPTEST1
before insert on EMPTEST1
for each row
begin
select SQ_EMPTEST.nextval into :new.employee_id from dual;
end EMPTEST1

 1.4.3 添加信息数据自增

form builder学习总结整理_第2张图片

二   新建form实现增删改查

2.1  新建表单

点击formbuilder左上角文件中选择新建,表单,新增出一个FORM。

form builder学习总结整理_第3张图片

2.2  建立数据块

   在导航器中点击该FORM,选择数据块向导

form builder学习总结整理_第4张图片

 输入表名,点刷新,显示出字段名并把字段全部选择到数据库项中。

form builder学习总结整理_第5张图片

  点下一步,注意使用默认的:“请先创建数据库,然后调用布局向导”。

form builder学习总结整理_第6张图片

2.3 建立布局

    进入布局向导

form builder学习总结整理_第7张图片

选择新画布,类型选择内容

form builder学习总结整理_第8张图片

 选择显示项,把可用项全部变成显示项

form builder学习总结整理_第9张图片

选择框架的布局样式为列表

form builder学习总结整理_第10张图片

指定框架的名称及显示记录数

form builder学习总结整理_第11张图片

  完成布局向导

2.4 建立其他的数据块

同样的方法建立其他两个数据块将其放到一个画布里

form builder学习总结整理_第12张图片

 2.5 在程序单元里面之前写过的包和包体

 form builder学习总结整理_第13张图片

PACKAGE pkg_yy IS
  procedure insert_test(
                        v_last_name in varchar,
                        v_salary in number,
                        v_job_id in varchar,
                        v_department_id in number
  );
  procedure update_test(v_employee_id in number,
                        v_last_name in varchar,
                        v_salary in number,
                        v_job_id in varchar,
                        v_department_id in number
  );
END pkg_yy;

form builder学习总结整理_第14张图片

PACKAGE BODY pkg_yy IS

procedure insert_test(
                        v_last_name in varchar,
                        v_salary in number,
                        v_job_id in varchar,
                        v_department_id in number
  )
  is
 
  
   
   begin
     
     insert into emptest1(last_name,salary,job_id,department_id)
     values(v_last_name,v_salary,v_job_id,v_department_id);
   		commit;
   
   	end insert_test;

  procedure update_test(v_employee_id in number,
                        v_last_name in  varchar,
                        v_salary in  number,
                        v_job_id in  varchar,
                        v_department_id in  number
  )
  is
   
   begin
   	update emptest1
     set 
       last_name =v_last_name,
       salary = v_salary,
       job_id = v_job_id,
       department_id = v_department_id 
       where employee_id = v_employee_id;
       
   end update_test;

end pkg_yy;

2.6 编写触发器

按钮右键选择plsql编辑器找到 WHEN_BUTTON_PROCESSED

在plsql编译器中填写增删改查代码只需要调用包里的存储过程就可以啦

--增加
pkg_yy.insert_test(
                   v_last_name=> :ADD.last_name ,
                   v_salary   => :ADD.salary,
                    v_job_id   => :ADD.job_id,
                   v_department_id => :ADD.department_id
                   
);
go_block('DOWN');
execute_query;
--删除
declare
	begin
          delete from emptest1 where employee_id= :DOWN.employee_id;
  
  commit;
 execute_query;
 end;
--更新
pkg_yy.update_test(v_employee_id => :DOWN.employee_id,
                   v_last_name=> :DOWN.last_name,
                   v_salary   => :DOWN.salary,
                    v_job_id   => :DOWN.job_id,
                   v_department_id => :DOWN.department_id
                   
);

execute_query;
--查询
begin
go_block('DOWN');
set_block_property('DOWN',
                     default_where,
                     'department_id = :UP.DEPARTMENT_ID');
execute_query;
end;

 2.7上传服务器并编译

  将文件另存为DEM001.fmb文件通过xshell和xftp上传到服务器并编译

form builder学习总结整理_第15张图片

 编译成功后生成.fmx文件

form builder学习总结整理_第16张图片

 2.8 登录sf 系统 新增DEM001-员工管理表单

2.9增删改查测试

form builder学习总结整理_第17张图片

form builder学习总结整理_第18张图片

form builder学习总结整理_第19张图片

form builder学习总结整理_第20张图片

 form builder学习总结整理_第21张图片

三  遇到的问题

3.1 Stacked Canvas会突然消失的处理

在Form里面,如果排版处理的不好,会出现如下

form builder学习总结整理_第22张图片

这个Form,看起来一切正常,Stacked Canvas的水平滚动条也能拖动。

但是有一个地方,如果我们去点击Category这个Item(紧挨着Stacked Canvas的一个Item),

就会出现一个问题:右边的画布不见了

form builder学习总结整理_第23张图片u

这个时候,Stacked Canvas以及上面的Item都消失了,但是我们按Tab键的时候,

其又会显示出来的。

 出现此问题的原因

Canvas CANVAS_TEST_STACKED和CANVAS_TEST有重叠的部分。

对于Stacked Canvas,任何部分被不在画布内的ITEM覆盖,Stacked Canvas就会整个被遮

 解决办法

调整最后一个Item和Stacked Canvas的位子,使之不出现重叠的部分。

注意:水平滚动条的每个项的左右不能有重叠部分(竖直水平条项的上下不能有重叠部分)

3.2 打开sfcs网站报错解决方案

打开网站显示此报错信

form builder学习总结整理_第24张图片

方案一:找到IE浏览器的Internet选项按照图示设置,如果不行跳到方案二

form builder学习总结整理_第25张图片

方案二:打开控制面板找到java控制面板

选择JAVA查看JAVA版本保留一个1.7,将其他版本卸载

点击确定选择安全

将安全级别设置为低(中)

选择JAVA控制面板的高级选项

将混合代码安全验证中设置为禁止验证

问题解决成功进入网站

3.3 FRM-10043: 不能打开文件

  原因:是fmb所在的路径中包含中文

  解决办法:把Form文件放到一个全英文的目录,需要注意中文的Windows,“桌面”的全路径是有     中文的

3.4 打开菜单出现如下问题

form builder学习总结整理_第26张图片

解决方案:在表单级的trigger中,修改PRE-FORM中的值。

把app_window.set_window_position('BLOCKNAME', 'FIRST_WINDOW');中的” ORDERMAIN”改为主window的名称。

 

3.5  关闭窗体出现问题

解决方案:在Program Units中的APP_CUSTOM包中,把if (wnd ='') then中的“first window”改成第一个window的名称。

form builder学习总结整理_第27张图片

3.6  ORA-00054

    报错信息:资源正忙, 但指定以 NOWAIT 方式获取资源

      原因: web服务器占用了表,关掉web就行了。

你可能感兴趣的:(学习,oracle)