FORM个性化

来源:互联网 发布:暗黑破坏神2 mac 迅雷 编辑:程序博客网 时间:2024/04/28 03:03

Form个性化控制讲义

Kenver()

 

纲要:

   概述

   如何使用 Form个性化控制

   转移个性化设计至其他环境

 

1.概述

Form个性化允许您修改基于Form基础页面的事件,包括:修改物件的属性、执行内建函数、产生提示信息和添加标签入口。

对于每个功能(需在功能处指定上下文条件,相应的Form才能执行)来说,您可以制定一个或一个以上的规则。每条规则包括:一个事件,事件执行的条件(可选),事件执行的范围,一个或多个动作。

 

Form上的一个Trigger就是一个事件。例如,开启页面的TriggerWHEN-NEW-FORM-INSTANCE),或者光标从一条记录移至另一条新的记录所触发的TriggerWHEN-NEW-RECORD-INSTANCE)等等,这几乎是每个Form传送资料都必须执行的,或者确认传送资料附加的事件。

若指定了事件执行的范围,当Form在运行的时候,系统会去检查当前的规则是否可执行。事件执行的范围有以下层级:SiteResoponsibilityUserIndustry,每个规则可有相应层级的执行范围与之相关联。

注:Industry层级的执行范围指的是为下一版本预留。

 

事件执行的条件是一段SQL语句,来控制事件在何时执行。只有在执行条件的返回结果是真时,该时间才会执行。

 

一个动作包含以下的任意一项内容:

²   设置属性,如:设置一个栏位状态为必输,隐藏一个Tab页签等。

²   执行内建函数,如:GO_BLOCKDO_KEYFND_FUNCTION.EXECUTE等。

²   显示提示信息。

²   呼叫一个特殊标签入口。

 

规则一旦建立,当目标功能执行时,这些规则会被系统视为Form里的一个事件,并且会自动执行。

2.如何使用Form个性化控制

要创建一个个性化控制,首先要进入到目标功能Form,然后按下拉菜单 HelpàDiagnoticsà Custoner CodeàPersonalize。若该下拉菜单不可见,请检查系统Profile设定选项:FND_HIDE_DIAGNOSTICS(Hide Diagnostics menu entry)DIAGNOSTICS (Utilities:Diagnostics)

进入到个性化控制页面时,系统会罗列当前功能页上已定义的规则。您若做了修改,请保存然后重新进入该功能页,这样所做的改动才能生效。您也可以按下按钮‘Validate和‘Apply,分别来验证修改的值和快速查看所做改动的执行结果,而不必重新进入功能页。

个性化设置的界面(当前功能页:FND_FNDSCAUSFORMFNDSCUS

每个规则包含的栏位:

 

Seq:对应规则的序号。值从1-100,序号可重复,值小的优先执行。

Description:描述,可用于注明当前规则的用途。

Enable:勾选时当前规则才有效。

 

定位至Condition页签有如下栏位:

 

Trigger Event:选择规则执行的Trigger,您可以从LOV中挑选,或者自己键入当前Form还未用到的Tirgger,该栏位是复合型的,可从LOV挑选,也可自己输入。个性化规则会先匹配事件,然后按序号顺序执行。

 

Trigger Object:选择对象。对象的挑选值依赖Trigger Event,根据不同的Trigger Event 其状态亦不同。即,可能是不可输入的,也可能是必须输入的。例如,如果你挑选的Trigger Event

WHEN–NEW–ITEM–INSTANCE,此时您必须输入一个 Trigger Object

 

Condition:这个栏位是选择性输入的SQL语句段,只有SQL语句段返回值是真,个性化定义的动作才会执行。条件可包含如下内容:

²   SQL 函数和运算子,如ANDORTO_CHARDECODE NVL等。

²   关联到Form某个字段(:Block.feild),包括::System, :Globle, :parameter

²   调用服务器上没有外部参数的函数。

输入的判断条件语法上必须是正确的,可按下按钮‘Validate来检查语法的正确性。若语法上有错误,系统会弹出一个错误信息提示框警示出错的部分。

一些判断条件的例子:

条件

备注

:users.user_name is not null and :users.description is null

个性化规则动作执行的条件,User_name不为空,且 Description为空

sysdate >= to_date(‘1-1-2005’, ‘DD- MM-RRRR’)

个性化规则动作执行的条件,系统日期大于等于200511

 

Processing Mode:设定执行的模式。Not-in-Entry-Query-Mode,查询模式下不使用个性化规则;

Only-in-Entry-Query-Mode仅在查询模式下使用个性化规则;BOTH,两种状态下都使用个性化规则。

Level:个性化规则执行的层级。

Value:层级的值。

定位至Actions页签有如下栏位:

Seq:个性化规则动作的序号,值从1-100,序号可重复,值小的优先执行。

 

Type:个性化规则动作的类型,包括:(1Property即物件的属性。(2BuildtinForm的内建函数如:GO_BLOCKDO_KEY等。(3Message即提示消息。(4Special呼叫一个下拉菜单入口,定义其标签,已经在哪个Block可激活。

Discription:用于注明当前个性化动作的用途。

Language:个性化规则动作执行的语言环境 

Enable:勾选该个性化动作才有效。

 

以下按钮出现依赖于Type栏位的挑选值:

 

   Add Parameter,出现时机:Type Builtin ,挑选值为FND_FUNCTION.EXECUTE

   Add BlockLOV挑选Block的名字。

   Add ItemLOV挑选Item的名字。

 

下图区域依Type挑选值为Property时出现。

 

 

Select By Text快速需找某个栏位名表述方式。

 

Object Type:物件类型。如:ItemBlockWindowTabCanvasRadio ButtonView

GlobleParameter

 

Target Object:目标物件。指定当前个性化动作的执行对象,即指定要针对哪个物件进行动作设定。

 

Property Name:属性名。指定物件的属性。

 

Value:给出物件属性值。

 

Get Value:取得当前对象属性值。

 

下图区域依Type挑选值为Message时出现。

 

 

Message Type:用于设定提示信息的类型。'Show', 'Hint', ‘Warn’,'Error',和‘Debug’。值得注意的是,若消息类型挑选了‘Warn’ 'Error', 当您按下按钮 ‘Cancel ’时,系统会执行 form_trigger_failure这个Trigger,以阻止Form继续执行。‘Debug’类型的 message只有页面上的 Show Debug Message这个复选框勾选才会显示。

 

Message Text:提示消息的内容。

 

下图区域依Type挑选值为Builtin时出现。

 

Builtin Type:指定所使用的内建函数。

Argument:内建函数所使用的参数。

 

Builtin TypeFND_FUNCTION.EXECUTE时,会出现以下区域。

Function Name:指定要执行的函数。

Parameters:执行函数的参数。

 

下图区域依Type挑选值为Special时出现。

Menu Etry:指定下拉菜单的入口。由3个集组成。每个集15个,挑选不同的集,下拉标签将出现在不同的下拉菜单位置上。若你挑选了Form已有的Menu并且创建了个性化控制,那么所创建的个性化规则将改写Form原有的菜单入口功能。

 

Menu Lable:标签的标示符。

 

Render Line Before Menu :若勾选,在标签上方会出现一条直线以做区隔所用。

 

Enable In Block:在哪个Block标签被激活。

 

Icon Name:若需要在工具栏上添加一个图形(功能与点击对应下拉菜单的标签相同),则可以在此指定图形的名称。

 

每个属性值输入的字符串可能直接被引用,也可能个性化规则在运行时才被检查。(取决于字符串是否以”=”开头)

 不以”=”开头,值在个性化规则运行时直接被引用。

 以”=”开头,值在个性化规则运行时被检查,允许添加上下文逻辑,如:

ü SQL 运算子:||TO_CHARDECODE,和 NVL

ü 绑定变量值:(:Block.Field),:System,:Globle,:Parameter

ü 调用服务器上的函数。

ü Select 语句,但必须遵循以下条件:

u 需以’ = SELECT’开头。

u 查询值结果必须为字符型的,且长度不超过2000个字节。

u 所查询的栏位的别名需给“A

u 语句段的查询结果集不超过一行,若超过一行,只有第一行被使用。

 

 

使用“=的一些例子:

输入的字符

执行结果

='Your password will expire on '||(sysdate+7)

Your password will expire on 2007-12-28

(假设系统日期为2007-12-21)

='Your password must have at least

'||:global.password_length||' characters.'

Your password must have at least 8 characters

(假设该Global项的值长度为8

=Your password isn’’t valid.

 

Your password isnt valid.

=:items.part_number

 

{栏位=:items.part_number  的值}

=SELECT meaning A from fnd_lookups where

lookup_type = 'DAY_NAME' and lookup_code

= 'SAT' 

 

Saturday {假设系统作业是在英文环境下执行}

=SELECT 'The office is closed on '||meaning A

from fnd_lookups where lookup_type =

'DAY_NAME' and lookup_code = 'SAT'

 

The office is closed on Saturday {假设系统作业是在英文环境下执行}

 

3.      转移个性化设计至其他环境上

在测试环境上设计并且通过测试的个性化规则,可通过以下办法快速转移至新的环境。

1      下载页面配置命令

 

FNDLOAD <userid>/<password> 0 Y DOWNLOAD$FND_TOP/patch/115/import/affrmcus.lct

<filename.ldt> FND_FORM_CUSTOM_RULESfunction_name=<function name>

 注:<function name>是该命令必须给出的参数,若不给则不会产生ldt档。

2      上传页面配置命令

 

FNDLOAD <userid>/<password> 0 Y UPLOAD$FND_TOP/patch/115/import/affrmcus.lct

<filename.ldt>


0 0
原创粉丝点击