form开发相关技巧Word文件下载.docx

上传人:b****5 文档编号:16340249 上传时间:2022-11-23 格式:DOCX 页数:15 大小:27.79KB
下载 相关 举报
form开发相关技巧Word文件下载.docx_第1页
第1页 / 共15页
form开发相关技巧Word文件下载.docx_第2页
第2页 / 共15页
form开发相关技巧Word文件下载.docx_第3页
第3页 / 共15页
form开发相关技巧Word文件下载.docx_第4页
第4页 / 共15页
form开发相关技巧Word文件下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

form开发相关技巧Word文件下载.docx

《form开发相关技巧Word文件下载.docx》由会员分享,可在线阅读,更多相关《form开发相关技巧Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。

form开发相关技巧Word文件下载.docx

将其中的代码app_standard.event('

EXPORT'

屏蔽掉,改为null;

试一试

3当form启动时,在pre-form触发器中instantiate你特定的菜单items

调用app_special.instantiate包

procedureAPP_SPECIAL.INSTANTIATE(

option_namevarchar2,--定义tigger名字

hintvarchar2defaultnull,--定义菜单实体的名字,使用&

来定义菜单实体的键盘快捷键

iconvarchar2defaultnull,--

initially_enabledbooleandefaulttrue,

separatorvarchar2defaultnull);

--定义'

LINE'

为separator

例子

app_special.instantiate(’SPECIAL1’,’&

rintOrder’,’PRINTORD’);

4,在tool菜单中的checkboxes

--option_name与trigger_name包括关键字CHECKBOX(例如:

SPECIAL3_CHECKBOX)

app_special.instantiate(’SPECIAL3_CHECKBOX’,’Spe&

cial3BoxwLine’,’’,TRUE,’LINE’);

--调用app_special.set_checkbox来初始化checkbox的值

app_special.set_checkbox(’SPECIAL3_CHECKBOX’,’TRUE’);

--在SPECIALn_CHECKBOX函数中和相应的逻辑代码中测试checkbox

app_special.get_checkbox

if(app_special.get_checkbox(’SPECIAL3_CHECKBOX’)=’TRUE’)then

fnd_message.debug(’Special3isTrue!

’);

else

fnd_message.debug(’Special3isFalse!

endif;

5,在你在pre-form中instantiate实体,随意将指定的菜单实体设置为可用或不可用(基于数据块),

调用APP_SPECIAL.ENABLE

procedureAPP_SPECIAL.ENABLE(option_namevarchar2,

state);

在form-level中的pre-blocktrigger里面,将你的special菜单的item定义为disable

app_special.enable(’SPECIAL1’,PROPERTY_OFF);

在form-level中的pre-blocktrigger里面,将你的special菜单的item定义为able

app_special.enable(’SPECIAL1’,PROPERTY_on);

将所有的special菜单设置为disable

app_special.enable(’SPECIAL’,PROPERTY_OFF);

6,编辑鼠标右键菜单

调用APP_POPUP.INSTANTIATE(block或者item层的PRE-POPUPMENUTrigger)

procedureAPP_POPUP.INSTANTIATE(

option_namevarchar2,

txtvarchar2,

initially_enabledbooleandefaulttrue,

与app_special.instantiate类似

例如:

APP_POPUP.INSTANTIATE('

POPUP1'

'

FirstEntry'

7,关于ImplementingZoomUsetheCustomLibrary的学习:

1..pll文件可以用formbuilder打开,修改,创建

2..pll文件的编译方法:

f60genmodule=CUTOM.PLLuserid=apps/appsmodule_type=LIBRARY

3.当系统不自动激活菜单上的图标时,可以在数据块的block-level的when-new-block-instancetrigger中

添加如下代码:

以zoom为例子:

set_menu_item_property('

VIEW.ZOOM'

,ENABLED,PROPERTY_TURE)

在form-level的相应的trigger(比如zoomtrigger)中改写下列代码:

custom.event('

ZOOM'

4.fnd_function.exrcute语法:

procedureFND_FUNCTION.EXECUTE

(function_nameINvarchar2,

open_flagINvarchar2default’Y’,

session_flagINvarchar2default’SESSION’,

other_paramsINvarchar2defaultNULL,

activateINvarchar2default’ACTIVATE’,

browser_targetINvarchar2defaultNULL);

5.FND_FUNCTION.TEST(function_nameINvarchar2)

测试指定的函数是否可以连接,该函数用于form启动时测试函数的可用性,

8,弹性域(Flexfields)的总结:

使用FND_KEY_FLEX.DEFINE在itemhandler中设定key弹性域的定义

procedureflexfield_item_name(eventvarchar2)

is

begin

fnd_key_flex.define(

block=>

'

block_name'

field=>

concatenated_segements_field_name'

id=>

ccid_field_name'

appl_short_name=>

shortname_of_application_used_to_register_flexfield'

code=>

flexfield_code'

NUM=>

structure_number'

any_other_auguments);

例:

FND_KEY_FLEX.DEFINE(

BLOCK=>

’LINES’,

FIELD=>

’ACCTG_FLEX_VALUES’,

ID=>

’GL_ACCOUNT_CC_ID’,--YourIDfieldistheGL_ACCOUNT_CC_IDitem

APPL_SHORT_NAME=>

’SQLGL’,

CODE=>

’GL#’,

’101’--可以使用GL_SET_OF_BOOKS_ID作为structureid

----------------------------------------------------------------------------------

使用FND_DESCR_FLEX.DEFINE在itemhandler中设定描述性弹性域的定义

定义

FND_DESCR_FLEX.DEFINE(

BLOCK_NAME'

DISPLAYED_FLEXFIELD_FIELD_NAME'

SHORTNAME_OF_APPLICATION_USED_TO_REGISTER_FLEXFIELD'

DESC_FLEX_NAME=>

FLEXFIELD_NAME'

ANY_OTHER_ARGUMNTS);

’ORDERS’,

’DESC_FLEX’,

’DEM’,

’DEM_ORDERS’);

9,COPY命令

Copiesavaluefromoneitemorvariableintoanotheritemorglobalvariable.

Syntax

PROCEDURECOPY(sourceVARCHAR2,destinationVARCHAR2)

Parameters

source:

Thesourceisaliteralvalue.

destination:

Thedestinationcanbeeitheratextitemoranotherglobalvariable.

例:

COPY('

Yes'

'

GLOBAL.'

||global_var_name);

将‘YES’付值给变量global_var_name

10,message用法总结:

1.设置信息:

--FND_MESSAGE.SET_NAME语法:

procedureFND_MESSAGE.SET_NAME(application_shortnameINvarchar2,message_nameINvarchar2);

作用:

从MessageDictionary获取一条信息

一般情况下在FORM中显示出错信息使用以下代码:

FND_MESSAGE.SET_NAME(APPL_SHORT_NAME,MESSAGE_NAME);

FND_MESSAGE.ERROR;

--FND_MESSAGE.RETRIEVE

取得一条数据库中的等待信息

--FND_MESSAGE.SET_STRING(valueINvarchar2)

作用:

将字符串放到消息栈中,

--FND_MESSAGE.SET_TOKEN

用值替换message的信息中的变量

语法:

procedureFND_MESSAGE.SET_TOKEN(token_nameINVARCHAR2,valueINVARCHAR2

translateINbooleandefaultFALSE);

--在form用于显示信息的函数

1.FND_MESSAGE.ERROR

2.FND_MESSAGE.WARN

Example:

FND_MESSAGE.SET_NAME(’SQLAP’,’AP_PAY_MULTI_PAY_VOID’);

REC_COUNT:

=<

NUMBEROFPAYMENTS>

;

FND_MESSAGE.SET_TOKEN(’NUM_OF_RECS’,REC_COUNT);

IF(NOTFND_MESSAGE.WARN)THEN

RaiseFORM_TRIGGER_FAILURE;

ENDIF;

3.FND_MESSAGE.QUESTION

FND_MESSAGE.QUESTION(

button1INvarchar2default‘YES’,

button2INvarchar2default‘NO’,

button3INvarchar2default‘CANCEL’;

default_btnINnumberdefault1,

cancel_btnINnumberdefault3,

iconINvarchar2default‘question’)returnnumber;

FND_MESSAGE.QUESTION返回一个被选中的button的number

FND_MESSAGE.SET_NAME(’FND’,’ATCHMT-COMMITBEFOREINVOKING’);

IFFND_MESSAGE.QUESTION

(’YES’,’CANCEL’,NULL,1,2,NULL)=2THEN

RAISEFORM_TRIGGER_FAILURE;

4.FND_MESSAGE.SHOW

显示信息

5.FND_MESSAGE.DEBUG

6.FND_MESSAGE.GET

取得在message中设置好的message信息

11设置Item-level和Item-instance-level属性时需特别的注意,

Item-level属性影响所有的记录,而Item-instance-level属性只影响特定的记录(当前行)。

12fotmattingcurrencyfields(货币的转换和格式化)

FND_CURRENCY:

TheDynamicCurrencyfeatureallowsdifferentvaluesinarbitrarycurrenciestobedisplayedin

thesamereportorform,eachshownwithappropriateformatting.

FND_CURRENCY.GET_FORMAT_MASK(:

ORDERS.CURRENCY_CODE,GET_ITEM_PROPERTY('

LINES.PRICE'

MAX_LENGTH));

1.取得需对应的货币

其中:

GET_ITEM_PROPERTY('

MAX_LENGTH)为返回一个该item的最大长度,

FND_CURRENCY.GET_FORMAT_MASK(currency_codeINvarchar2,field_lengthINnumber)returnvarchar2;

2.格式化(需要的话进行汇率转换)item的货币类型

APP_ITEM_PROPERTY.SET_PROPERTY('

FORMAT_MASK,

ORDERS.CURRENCY_CODE,

MAX_LENGTH)))

3.动态控制item的显示格式的触发范围

在Block-level的Post-querytrigger和Item-level的when-validate-itemtrigger调用handler,控制显示格式。

CALENDAR日历

如何实现在form中弹出calendar并返回所选日期的功能?

1.设textitem为日期型,LOV属性为:

ENABLE_LIST_LAMP并且ValidatefromListLOV—>

No

2.在该textitem的KE_LISTVAL下加入如下代码:

calendar.show;

trigger属性ExecutionHierarchy—>

Override,fireinenter-querymode—>

No。

使用APP_DATE.FND_DATE取得服务器端的时间环境

13,Dependenciesitem的编程

1.APP_FIELD.SET_DEPENDENT_FIELD(EVENT,:

block.master_item=CONDITION,

‘block.dependent_item’);

用途:

Aconditionally-dependentitemchangesvalidationwhenthevalueinthemaster

itemchanges.Specifytheconditionratherthanthemasteritemname.

Thisproceduremakesanitementerableornotenterablebasedonwhetherthemasteritem

isNULLoraspecifiedconditionisTRUE,andclearsthefield.Thedependentitemcanbe

atextitem,checkbox,orpoplist.

Youtypicallycallthisprocedureinthefollowingtriggers:

?

WHEN–VALIDATE–ITEMonthemasterfield

WHEN–VALIDATE–ITEMonthefield(s)theconditionisbasedonorineventINIT

onthedependentfield

PRE–RECORD

POST–QUERY(requiredonlywhenthedependentitemisina

multi–recordblock)

:

block.master_item=CONDITION包括:

--APP_FIELD.SET_DEPENDENT_FIELD(EVENT,(:

block.master_itemISNOTNULL),

’block.dependent_item’);

用于Multipleitemsmaydependonasinglemaster.

--APP_FIELD.SET_DEPENDENT_FIELD(EVENT,((:

block.master_item1ISNOTNULL)AND

(:

block.master_item2ISNOTNULL)),’block.dependent_item’);

用于Twomasteritemsmayshareadependentitem.

--APP_FIELD.SET_DEPENDENT_FIELD(EVENT,’block.master_item,’block.dependent_item’);

用于Cascadingdependence-anitemcanbebothmasteranddependent.

2.APP_FIELD.SET_EXCLUSIVE_FIELD

用途Mutuallyexclusiveitems—theylookliketwoitems,butbehaveasone.Use

APP_FIELD.SET_EXCLUSIVE_FIELDtocode.

--APP_FIELD.SET_EXCLUSIVE_FIELD(EVENT,’block.item1’,’block.item2’,’block.item3’);

Callitemhandlerproceduresin:

–WHEN-VALIDATE-ITEMforeachexclusiveitem

–PRE-RECORDontheitems’block(FireinEnter-QueryMode:

No)

–WHEN-CREATE-RECORDontheitems’block

3.APP_FIELD.SET_INCLUSIVE_FIELD

用途MutuallyInclusiveItems—oneforallandallforone!

UseAPP_FIELD.SET_INCLUSIVE_FIELDtocodeasetofitemswhere,ifany

oftheitemsisnotnull,allitemsarerequired.

--APP_FIELD.SET_INCLUSIVE_FIELD(EVENT,’block.item1’,’block.item2’);

Callitemhandlerproceduresin:

–WHEN-VALIDATE-ITEMforeachinclusiveitem

4.APP_FIELD.SET_REQUIRED_FIELD

ConditionallyMandatoryitems—useAPP_FIELD.SET_REQUIRED_FIELDto

requirecertainitemsonlyifacertainconditionismet.

--APP_FIELD.SET_REQUIRED_FIELD(EVENT,(CONDITION),’block.item’);

通常在以下的trigger中调用Dependencies控制逻辑:

PRE-RECORD,when-create-record,

when-validate-item,when-checkbox-changed,when-radio-changed,when-list-changed

和‘INIT’事件。

PRE-RECORD和INIT是在操作数据前初始化这些逻辑,而其他是在item发生变化后验证这些逻辑,满足条件则进行后续的动作。

------------------------------------------------------------------------------

使用APP_ITEM_PROPERTY.SET_PROPERTY代替SET_ITEM_PROPERTY设置item属性

APP_ITEM_PROPERTY.SET_PROPERTYmo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1