EBS Form开发 弹性域定义中的参数<二>

EBS Form开发 弹性域定义中的参数<二>

(版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处;否则请与本人联系,违者必究)

来源:Oracle Applications Developers Guide

其它可选的参数

如果你不指定一个特定的可选的参数,弹性域方法为这个参数使用通常的默认值。

DERIVE_ALWAYS

仅用于关键性弹性域.和DERIVED参数一起使用.如果你指定其值为Y,那么即使用户导航到弹性域而没改变任何值(为分段 选择一样的值并不会把弹性域标记为已修改),提取值也会被计算。

默认值是N,仅当弹性域有修改时,提取值才会被计算。

VRULE

仅用于关键性弹性域或者范围弹性域.使用VRULE添加额外的限制到弹性域分段上来限制用户可以输入的值,这些分段基于分段qualifiers(附件到单个分段值)的值。你可以指定弹性域qualifier的名称和分段qualifier,是否要Include或者Exclude验证值,以及用于显示是否用户输入了一个不合适值的Message Dictionary 应用缩写名和消息名。分隔符\\n必须是小写,并且使用分号来隔离应用名称和消息名称。

比如,假设你构建了一个form,你想当不允许detail posting时禁止用户输入Oracle General Ledger Accounting弹性域的所有分段值。

你想在你的规则中使用DETAIL_POSTING_ALLOWED,它是分段qualifier,并基于全局弹性域qualifier GL_GLOBAL。当DETAIL_POSTING_ALLOWED的值为N(No)可以排除所有值。消息名称是”GL Detail Posting Not Allowed”, 它相应的信息是”you cannot use values for which detail posting is not allowed.” 你可以想下面指定规则:

VRULE=’GL_GLOBAL\\nDETAIL_POSTING_ALLOWED\\nE\\nAPPL=SQLGL;

NAME=GL Detail Posting Not Allowed\\nN’

不要在VRULE参数中使用换行符(新行字符)。前面的示例包含换行符只用于清晰演示,但是在代码中,所有代码一定要在一行.如果不能放在一行,使用下面的格式:

vrule => ’first line’ ||

’second line’;

当用户在由qualifier影响的分段输入了一个排除值,用户会得到你指定的信息.另外,排除值不会出现在分段上值列表上。其它的值,也就是没有特殊排除的,就会包含在内。

你可以指定一个或者多个有\\0(zero)隔离的VRULE参数.Oracle Application Object Library以你列出它们的顺序从下到上检查多个VRULE参数。要小心排列规则,那么用户就可以看到先看到最有用的错误消息。

VALATT

仅用于关键性弹性域。当弹性域窗口关闭的时候,VALATT会拷贝由唯一的弹性域qualifier代表的分段的qualifier值到block.field上。分隔符\\n必须是小写.

USEDBFLDS

对于组合form,仅当组合表即包含完整的关键性弹性域列集合并且其中的一列作为外键列引用另一个关键性弹性域(另一个组合表)时,才指定这个参数。设置这个参数为N会使外键弹性域不使用属于主弹性域(组合form维护的)的数据库分段字段。

对于外键form,如果你的form是基于一个拥有引用两个或多个弹性域外键的表时,并且如果你有非数据库SEGMENT1 通过几个form字段(这里N是组合表上的分段的编号),指定这个参数。如果存在这样的字段,弹性域默认会加载值到当前相应弹性域的分段值组合到弹性域。如果设置这个参数值为N,弹性域不会为当前弹性域加载分段字段。如果你在form上有多于一个的弹性域,可以使用这个参数来指明哪一个弹性域使用分段字段(指定Y为一个弹性域程序调用,指定N为另一个弹性域程序调用)。

对于描述性弹性域,为这个参数指定N会禁止描述性弹性域使用隐藏分段字段(比如ATTRIBUTEn).

默认值是Y。

COLUMN

仅用于关键性弹性域。使用COLUMN参数来显示组合表中处理当前分段列的其它列,这里n是列的显示宽度.可以把其它列的值放到当前form的字段上。当用户选择一个存在的弹性域组合时,值会自动拷贝到字段上。

比如,要显示叫做SEG_DESC的描述列和E_FLAG的错误消息,它们的标题头为DESCRIPTION和ERROR FLAG,你可以设置如下:

COLUMN=>’SEG_DESC DESCRIPTION(15),

E_FLAG \”ERROR_FLAG\”(*)’

(*)的话会动态设置列的宽度,大小会由选择的值来决定.

如果你想把描述放到字段block_1.field_1上,错误消息放到block_1.field_2上的话,可以设置:

COLUMN=>’SEG_DESC DESCRIPTION(15)

INTO BLOCK_1.FIELD_1,

E_FLAG \”ERROR_FLAG\” (*)

into BLOCK1_FIELD_2’

可以使用32个不同的INTO列在COLUMN=子句上。额外列的最大宽度是240个字符。

WHERE_CLAUSE

仅用于关键性弹性域。指定WHERE条件来限制哪一个编码组合用于显示在值列表窗口上。这个参数禁止用户输入一个不符合WHERE子句的组合。这个通常不应用于组合form上的弹性域,因为一般想在组合form上显示所有的组合。

不要在这个WHERE子句参数上包含”WHERE”关键字。你应该和不允许动态插入,或这DINSERT为N,或者在结构级别禁止动态插入的弹性域一起使用这个标志。

对于允许动态插入的弹性域,不要使用WHERE_CLAUSE参数。

使用WHERE_CLAUSE_MSG参数来指定当组合违反WHERE子句时要显示给用户的适合的信息。

COMBQP_WHERE

仅用于关键性弹性域。这个参数的主要用处是用于在这个form上为弹性域禁止组合值列表。指定为NONE会禁止组合值列表。

作为选择,你可以使用这个参数来指定额外的WHERE子句来限定那些编码组合显示在值列表窗口。这个WHERE子句会附加到WHERE_CLAUSE参数并使用AND表述。它会仅影响组合值列表,尽管如此,但不会影响用户手工输入的组合。

不要在这个WHERE子句参数中指定关键字”WHERE”。

WHERE_CLAUSE_MSG

仅用于关键性弹性域。和WHERE_CLAUSE参数一块使用。如果当用户输入一个由WHERE子句限定的无效组合时,并且向显示你自定义的信息,可以在这里指定应用缩写名称和消息名称。否则弹性域使用显示整个WHERE子句给用户的标准Oracle Applications信息(不建议)。


 


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页