dfdr 发表于 2015-9-23 02:16:35

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=4000ORDER 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_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
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    发生错误时,显示错误窗口
页: [1]
查看完整版本: EBS FORM 入门