EBS FORM 入门
1 一个基础的FORM
1. 在文件中选择新建,表格,从而新增出一个FORM。
2. 建立数据块
a) 在导航器中点击该FORM,选择数据块向导
b) 输入表名,点刷新,显示出字段名
c) 使用 ,把字段全部选择到数据库项中。
d) 点下一步,注意使用默认的:“请先创建数据库,然后调用布局向导”。
3. 建立布局
a) 进入布局向导
b) 选择默认的布局向导
c) 选择显示项,把可用项全部变成显示项
d) 选择框架风格为默认的表格
e) 指定框架的名称及显示记录数
f) 完成布局向导
4. 运行FORM
a) 运行FORM
b) 点击查询中的执行,显示出所有数据
c) 点增加,新建立一条记录,输入数据,点保存,完成一条记录的输入
d) 在某条记录中,改变数据内容,点保存,完成一条记录的修改
e) 点删除,则删除该记录
f) 点退出,结束FORM运行
2 一个查询FORM
1. 新建一个块
2. 加入一个框架
3. 加入数据项
4. 加入按纽,输入如下代码:
GO_BLOCK('LZHTEST001');
SET_BLOCK_PROPERTY('LZHTEST001',DEFAULT_WHERE,'NAME LIKE :block15.text_item21||''%''');
EXECUTE_QUERY;
3 多画布的操作方法
1. 加入一个画布,再加入一个堆叠式画布。
2. 加入两个块
3. 设置块的关系
4. 加入向子画布切换的按纽
其对应的WHEN_BUTTON_PRESSED语句为
go_block('lzhtest0011'); --lzhtest0011为子块名
5. 加入子画布隐藏的按纽
HIDE_VIEW('CANVAS39');-- CANVAS39为子块所在的画布名
GO_BLOCK('LZHTEST001');-- LZHTEST001为主块名
4 LOV使用
设置LOV的基本过程包括如下:
b) 增加LOV,点击在导航器中的LOVS,点 后,进行LOV添加。
c) 使用LOV向导
d) 输入SQL语句
e) 指定记录组列
f) 指定列宽度
g) 指定返回值
h) 指定标题
i) 指定显示行数等设置
j) 指定分配项
k) 完成向导设置
调用该LOV 的过程包括:
a) 点击CAT_C项
b) 点击显示列表
c) 选择某条列表后,确定后,选择的值输入到CAT_C项中。
点击入项CAT_C,点击显示列表,则显示如下对话框。
选择一条记录后,则在CAT_C中显示出选择的CAT_C值,如下图。
5 LIST的使用
1. 加入一个LIST
2. 加入一个文本域,用于显示LIST改变后的值
3. 加入一个按纽,用于初始化LIST的信息,其WHEN_BUTTON_PRESSED 语句为:
DECLARE
RG_ID RECORDGROUP;
ERRCODE NUMBER;
BEGIN
RG_ID := FIND_GROUP('REPORT_TYPE');
IF ID_NULL(RG_ID) THEN
RG_ID := CREATE_GROUP_FROM_QUERY('REPORT_TYPE','SELECT ''[''||MS1||'']''||MS2,ms1 FROM RB_SET WHERE ID=4000 ORDER BY va5');
ERRCODE := POPULATE_GROUP('REPORT_TYPE');
POPULATE_LIST('BLOCK2.LIST5','REPORT_TYPE');
END IF;
END;
4. 为LIST加入事件,改变值
:TEXT_ITEM7 := :BLOCK2.LIST5 ;
6 FORM的参数调用
1. 建立主FORM
建立布局,加入一个文本项,一个按纽,为按纽加入语句:
declare List_id ParamList;
begin
List_id:=Get_Parameter_List('input_params');
IF NOT Id_null(list_id) THEN
Destroy_Parameter_List(List_id);
end if;
List_id:=Create_Parameter_List('input_params');
Add_Parameter(List_id,'P_GIVEPARAVALUE',TEXT_PARAMETER,:BLOCK3.TEXT_ITEM5);
call_form('STEP006B',no_hide,no_replace,no_query_only,List_id);
end;
2. 建立从FORM
建立布局,加入一个文本项,一个按纽,为按纽加入语句:
:BLOCK3.TEXT_ITEM4 := :parameter.P_GIVEPARAVALUE;
3. 运行主FORM
输入值:HELLO!
点击按纽PUTPARA,弹出新的FORM
点击按纽GETPARA,得到传递来的数据。
此外,也可以使用全局变量的方式实现数据的传递,例如在主FORM中的WHEN-NEW-FORM-INSTANCE 中加入如下的语句。
:global.name :='GLOBAL hello';
而在从FORM中加入一个按纽,其WHEN-BUTTON-PRESSED中加入如下的语句:
:BLOCK3.TEXT_ITEM4 := :global.name;
则启动主FORM后,再执行到从FORM,按GETGLOBAL 得到如下的结果:
4.报表参数传递,报表的参数传递方式与FORM一致,其范例如下:
--无参数报表调用
Run_Product(REPORTS, 'LZHTEST.REP', SYNCHRONOUS, RUNTIME, FILESYSTEM, '', NULL);
--有参数报表调用
DECLARE
pl_id ParamList;
BEGIN
pl_id := Get_Parameter_List('REPORTPARALIST');
IF NOT Id_Null(pl_id) THEN
Destroy_Parameter_List( pl_id );
END IF;
pl_id := Create_Parameter_List('REPORTPARALIST');
--Add_Parameter(pl_id,'REPORTPARALIST',DATA_PARAMETER,'':FORMÏîÃû1'');
Add_Parameter(pl_id,'P_PARA',TEXT_PARAMETER, 'ABC');
Run_Product(REPORTS, 'LZHTEST.REP', SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL);
END;
报表中的参数定义:P_PARA 即可获得FORM传递过来的参数。
7 包含主从表的FORM
建立主从表的核心是两个数据块之间的数据关联,当主表中的数据项发生改变时,子表中的数据也相应变化。其基本步骤为:
1. 建立一个数据块
2. 建立第二个数据块
3. 设置数据块之间的数据关联条件
8 加入自定义菜单
1. 菜单的定义
2. 菜单的命令语句
在菜单条目中加入需要的菜单语句,如:
EXIT_FORM;
3. 菜单的编译
执行文件中的管理中的编译文件,把菜单文件编译成MMX文件
4. 菜单的使用
在FORM的属性中指定菜单文件以及使用的初始菜单。
5. 执行FORM
点击EXIT则表单退出。
9 加入图像的方法
1. 加入一个图像
2. 加入一个按纽
3. 在按纽中加入如下语句
read_image_file('D:\A1.BMP','BMP','IMAGE5');
参数说明:
1. 图象文件名称
2. 图象文件类型
3. FORM中的图象名称
10 一个选择的范例
1. 加入一个数据块
2. 加入一个复选框按纽
3. 设置该复选框选择时的值为YES,不选时为NO,默认为不选择的。设置其数据库项为否。
4. 另建一个数据块,加入ALL,UNALL,GETVALUE按纽,分别表示全选,全不选,获取值,分别为按纽加入语句:
a) GETVALUE
DECLARE
STRMESSAGE VARCHAR(255);
BEGIN
STRMESSAGE :='';
GO_BLOCK('SCORG');
First_record;
LOOP
IF :SCORG.CHECK_BOX12 = 'YES' THEN
STRMESSAGE :=STRMESSAGE || :SCORG.NAME||'YES';
END IF;
NEXT_RECORD;
EXIT WHEN :SCORG.name IS NULL;
END LOOP;
first_record;
MESSAGE(STRMESSAGE);
END;
b) ALL
GO_BLOCK('SCORG');
First_record;
LOOP
:SCORG.CHECK_BOX12 := 'YES';
NEXT_RECORD;
EXIT WHEN :SCORG.NAME IS NULL;
END LOOP;
first_record;
c) UNALL
GO_BLOCK('SCORG');
First_record;
LOOP
:SCORG.CHECK_BOX12 := 'NO';
NEXT_RECORD;
EXIT WHEN :SCORG.NAME IS NULL;
END LOOP;
first_record;
5. 为该FORM加入执行查询的语句:
GO_BLOCK('SCORG');
EXECUTE_QUERY;
形成的页面如下:
执行的结果页面如下:
11 常用系统热键
ABORT_QUERY Key-EXIT [退出/取消]
BLOCK_MENU Key-MENU [块菜单] F5
CLEAR_BLOCK Key-CLRBLK [清空块] Shift+F5
CLEAR_FORM Key-CLRFRM [清空FORM] Shift+F7
CLEAR_RECORD Key-CLRREC [清空记录] Shift+F4
COMMIT_FORM Key-COMMIT [提交/存盘] F10
COUNT_QUERY Key-CQUERY [计算查询记录总数] Shift+F2
CREATE_RECORD Key-CREREC [插入新记录] F6
DELETE_RECORD Key-DELREC [删除记录] Shift+F6
DOWN Key-DOWN [下滚记录] Ctrl+l、下箭头
DUPLICATE_ITEM Key-DUP-ITEM [复制域/项] F3
DUPLICATE_RECORDKey-DUPREC [复制记录] F4
EDIT_TEXTITEM Key-EDIT [打开编辑器] Ctrl+E
ENTER Key-ENTER [Enter]
ENTER_QUERY Key-ENTQRY [输入查询条件] F7
EXECUTE_QUERY Key-EXEQRY [执行查询] F8
EXIT_FORM Key-EXIT [退出/取消查询] Ctrl+Q
HELP Key-HELP [帮助] F1
LIST_VALUES Key-LISTVAL [显示值列表LOV] F9
LOCK_RECORD Key-UPDREC [Lock Record]
NEXT_BLOCK Key-NXTBLK [下一块] Ctrl+Page Down
NEXT_ITEM Key-NEXT-ITEM [下一域/项] Ctrl+Tab、Tab、Enter
NEXT_KEY Key-NXTKEY [定位到下一个主键项] Shift+F3
NEXT_RECORD Key-NXTREC [下一条记录] Shift+Down
NEXT_SET Key-NXTSET [下一个记录集] Ctrl+>
PREVIOUS_BLOCK Key-PRVBLK [前一块] Ctrl+Page Up
PREVIOUS_ITEM Key-PREV-ITEM [前一域/项] Shift+Tab、Shift+Ctrl+Tab
PREVIOUS_RECORD Key-PRVREC [前一条记录] Shift+Up
PRINT Key-PRINT [打印当前屏幕] Shift+F8
SCROLL_DOWN Key-SCRDOWN [下翻屏] Page Down
SCROLL_UP Key-SCRUP [上翻屏] Page Up
UP Key-UP [上滚记录] Ctrl+p、上箭头
Esc 取消
Backspace 向后删除
Ctrl+U 清除域/项
Ctrl+F1 显示有效的功能键列表
Shift+F1 发生错误时,显示错误窗口