Oracle Retail(Retek)小结之form_elements、form_elements_langs表

在oracle retail(retek)系统中,当我们新开发好一个form,并且将form上传到服务器编译以后,这时候这个form并不能被正确的运行,因为它并没有被注册进oracle retail系统中,这时候就需要往系统中进行注册,而本文将要提到的form_elements、form_elements_langs就是form注册到oracle retail系统要用到的核心表(注意:form_elements、form_elements_langs主要用于注册form各元素进系统,至于挂载等等,在后面的文章中再说)。

form_elements表存储的是form中元素(item、lov、window)的注册信息,而form_elements_langs存储的是form中元素的多语言注册信息,form_elements表注册是必要的,而form_elements_langs多语言表的注册并不是必要的,但是在进行开发的时候还是建议采用标准方式,通过多语言表来控制form中元素的文字显示。下面就form_elements、form_elements_langs表一一介绍:

1、注册信息表form_elements

form_elements表结构

图1:form_elements表结构

form_elements表的表结构如上图1所示,下面详细介绍每个字段的意义:

FM_NAME:form中form的name信息,值得是form属性中的name属性名,不是form的文件名,并且注意大写。

BLOCK_NAME:form中data block的name属性名,注意大写,一般注册item(如text item、push item等)的时候,这里需要注册block,如果是对于lov、window,那么这里为大写NONE。

ITEM_NAME:form中item、lov、window的name属性名,注意大写,这里不应该为空。

ITEM_TYPE:存储的item_name的对应的类型。item类型主要有Text Item、List Item、Check Box、Push Button、Radio Button等;Lov类型有LOV、LOV Column Mapping两种;Window类型只有Window一种。

SUB_ITEM_NAME:该列的值在ITEM_TYPE为item、window、LOV的时候,默认为NONE即可;只有在ITEM_TYPE为LOV Column Mapping的时候,该列的值为序列号,如1、2、3等,从1开始,所以在注册LOV的时候,也别忘了注册LOV Column Mapping。

DEFAULT_LABEL_PROMPT:对于Item项,这里表示的是prompt值;对于LOV、Window,表示的就是窗口的title;对于LOV Column Mapping,表示的就是在LOV窗口中显示的字段名。

DEFAULT_ACCESS_KEY:快捷键的设置,设置相应属性的快捷键,可以为空,很多时候都是NULL,不注册快捷键。

BASE_IND:默认为Y即可。

form_elements注册图示

图2:form_elements注册图示

根据上图2所示的form_elements注册图,下面给出一些示例的注册代码:

INSERT INTO form_elements
  (FM_NAME,
   BLOCK_NAME,
   ITEM_NAME,
   ITEM_TYPE,
   SUB_ITEM_NAME,
   DEFAULT_LABEL_PROMPT,
   DEFAULT_ACCESS_KEY,
   BASE_IND)
VALUES
  ('FM_USRATTR',
   'NONE',
   'LOV_LANG',
   'LOV Column Mapping',
   '1',
   'Description',
   '',
   'Y');
INSERT INTO form_elements
  (FM_NAME,
   BLOCK_NAME,
   ITEM_NAME,
   ITEM_TYPE,
   SUB_ITEM_NAME,
   DEFAULT_LABEL_PROMPT,
   DEFAULT_ACCESS_KEY,
   BASE_IND)
VALUES
  ('FM_USRATTR',
   'NONE',
   'LOV_LANG',
   'LOV Column Mapping',
   '2',
   'Language',
   '',
   'Y');
INSERT INTO form_elements
  (FM_NAME,
   BLOCK_NAME,
   ITEM_NAME,
   ITEM_TYPE,
   SUB_ITEM_NAME,
   DEFAULT_LABEL_PROMPT,
   DEFAULT_ACCESS_KEY,
   BASE_IND)
VALUES
  ('FM_USRATTR',
   'NONE',
   'LOV_LANG',
   'LOV',
   'NONE',
   'List of Languages',
   '',
   'Y');
INSERT INTO form_elements
  (FM_NAME,
   BLOCK_NAME,
   ITEM_NAME,
   ITEM_TYPE,
   SUB_ITEM_NAME,
   DEFAULT_LABEL_PROMPT,
   DEFAULT_ACCESS_KEY,
   BASE_IND)
VALUES
  ('FM_USRATTR',
   'NONE',
   'W_USER_ATTRIB',
   'Window',
   'NONE',
   'User Attributes               (usrattr)',
   '',
   'Y');
INSERT INTO form_elements
  (FM_NAME,
   BLOCK_NAME,
   ITEM_NAME,
   ITEM_TYPE,
   SUB_ITEM_NAME,
   DEFAULT_LABEL_PROMPT,
   DEFAULT_ACCESS_KEY,
   BASE_IND)
VALUES
  ('FM_USRATTR',
   'B_ACTION',
   'PB_CANCEL',
   'Push Button',
   'NONE',
   'Cancel',
   'C',
   'Y');

LOV Column Mapping图示

图3:LOV Column Mapping图示

光说LOV Column Mapping可能比较抽象,不容易理解是什么,我最开始也不知道是什么,后来才知道原来就是上图3所示的东东,对于不知道的朋友,也可以参见下上图3所示。

2、多语言信息注册表form_elements_langs

一般建议在form中都给元素设置英文名,然后在form_elements_langs中注册多语言信息,对于中文用户来说,一般注册英文(1)和中文(8)即可。所以,在进行form_elements注册操作以后,一般接下来要做的就是注册form_elements_langs。form_elements_langs表的结构和form_elements几乎一样,只是多了一个表示语言的lang字段。lang字段设置为如下中的lang信息时,分别代表相应的语言:

LANG
DESCRIPTION
1英语
2
德语
3
法语
4
西班牙语
5
日语
6
韩语
7
俄语
8
中文(简体)
9
土耳其语
10匈牙利语
11中文(繁体)
12葡萄牙语-巴西
13阿拉伯语
14加拿大语
15克罗地亚语
16捷克语
17丹麦语
18荷兰语
19芬兰语
20希腊语
21
希伯来语
22意大利语
23拉美西班牙语
24立陶宛语
25挪威语
26波兰语
27葡萄牙语
28罗马尼亚语
29
斯洛伐克语
30斯洛文尼亚语
31瑞典语
32泰国语

form_elments_langs的数据插入形式也跟form_elements类似,只要加个lang字段即可,具体的可参考form_elements,下面只给出一个插入代码:

INSERT INTO form_elements_langs
  (FM_NAME,
   BLOCK_NAME,
   ITEM_NAME,
   SUB_ITEM_NAME,
   LANG,
   LANG_LABEL_PROMPT,
   LANG_ACCESS_KEY,
   BASE_IND)
VALUES
  ('FM_USRATTR', 'B_ACTION', 'PB_CANCEL', 'NONE', 1, 'Cancel', 'C', 'Y');
INSERT INTO form_elements_langs
  (FM_NAME,
   BLOCK_NAME,
   ITEM_NAME,
   SUB_ITEM_NAME,
   LANG,
   LANG_LABEL_PROMPT,
   LANG_ACCESS_KEY,
   BASE_IND)
VALUES
  ('FM_USRATTR', 'B_ACTION', 'PB_CANCEL', 'NONE', 8, '取消', 'C', 'Y');

经过上面的操作,就成功的将一个form中的元素注册到了系统中,但是并不代表这时候你就可以用这个form了,因为你只是注册了元素进入系统,并没有做其他的设置,比如挂载到哪里,至于这些操作,后面的博文中再说。

本文标题:Oracle Retail(Retek)小结之form_elements、form_elements_langs表

本文链接:http://yedward.net/?id=117

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章