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    发生错误时,显示错误窗口

posted @ 2012-12-25 21:00  IceRep  阅读(1009)  评论(0编辑  收藏  举报