範圍彈性域是使用的鍵彈性域的一種擴充,其沒有專門的彈性註冊,全部來源於鍵彈性域的結構定義:
應用表
CREATE TABLE FLEX_RANG_LN
(
CONCATENATED_SEGMENTS_LOW VARCHAR2(300),
CONCATENATED_SEGMENTS_HIGH VARCHAR2(300),
SEGMENT1_LOW VARCHAR2(30),
SEGMENT2_LOW VARCHAR2(30),
SEGMENT3_LOW VARCHAR2(30),
SEGMENT4_LOW VARCHAR2(30),
SEGMENT5_LOW VARCHAR2(30),
SEGMENT6_LOW VARCHAR2(30),
SEGMENT7_LOW VARCHAR2(30),
SEGMENT1_HIGH VARCHAR2(30),
SEGMENT2_HIGH VARCHAR2(30),
SEGMENT3_HIGH VARCHAR2(30),
SEGMENT4_HIGH VARCHAR2(30),
SEGMENT5_HIGH VARCHAR2(30),
SEGMENT6_HIGH VARCHAR2(30),
SEGMENT7_HIGH VARCHAR2(30)
) ;
需要說明點:SEGMENTn_LOW和 SEGMENTn_HIGH 是用來存放上,下範圍的段,在應用表中必須出現,
CONCATENATED_SEGMENTS_LOW與 CONCATENATED_SEGMENTS_HIGH 也必須成對出現,因為在應用指令碼中,需要指定的
/* 建立同義字 */
CREATE SYNONYM FLEX_RANG_LN FOR ERP_DEV.FLEX_RANG_LN ;
FND_RANGE_FLEX.DEFINE(
BLOCK=> 'FLEX_RANG_LN', -- 操作的BLOCK
FIELD=> 'RANGE_FLEX', - 建立的ITEM,用來容納範圍彈性域(在FORM介面中無RANGE_FLEX資料項目,只有
RANGE_FLEX_LOW與RANGE_FLEX_HIGH資料項目)
DATA_FIELD=>'CONCATENATED_SEGMENTS', --儲存範圍性域的值(CONCATENATED_SEGMENTS_LOW與
CONCATENATED_SEGMENTS_HIGH的共同段名稱)
APPL_SHORT_NAME=> 'EDV',
CODE=> 'K_LN', -- 鍵彈性域的註冊代碼 fnd_id_flex_structures.id_flex_code
NUM=> '101', --fnd_id_flex_structures.id_flex_num DISPLAYABLE=> '!ALL',
UPDATEABLE=> '!ALL',
INSERTABLE=> '!ALL',
ALLOWNULLS=> 'Y');
使用範圍彈性域是不需要任何註冊表和欄位的,因為其值就儲存在應用表中,引用的確實鍵彈性域的段結構
代碼說明:
FIELD=> 'RANGE_FLEX' 在FORM介面中,不存在RANG_FLEX的項,在此 泛指的是 RANG_FLEX_LOW與
RANG_FLEX_HIGH兩個範圍性的項,用來載入範圍彈性域
DATA_FIELD=>'CONCATENATED_SEGMENTS' 在FORM介面中,不存在CONCATENATED_SEGMENTS的項,在此 泛指的是
CONCATENATED_SEGMENTS_LOW與CONCATENATED_SEGMENTS _HIGH兩個範圍性的項,用來存放範圍彈性域的組合資訊,其中
SEGMENTn_LOW 與 SEGMENTn_HIGH 是存放上下範圍的每個段資訊,從中可以看到記錄的存放形式。