FORM开发基本内容整理_第1页
FORM开发基本内容整理_第2页
FORM开发基本内容整理_第3页
FORM开发基本内容整理_第4页
FORM开发基本内容整理_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——FORM开发基本内容整理FORM开发基本内容整理

一、常用语句

EXECUTE_QUERY;

GO_FORM/BLOCK/ITEM(?form/block/item_name?);

GO_RECORD(system.cursor_record/:control.last_record_number);Fnd_message.debug(?信息内容?);

FND_MESSAGE.SET_STRING('指定过默认的生产商!');FND_MESSAGE.SHOW;raiseform_trigger_failure;

二、实现数据操作人员及时间记录

1.table中需建立以下五个列:

?CREATED_BYNUMBER--创立人USER_ID?CREATION_DATEDATE--创立时间

?LAST_UPDATED_BYNUMBER--修改人USER_ID?LAST_UPDATE_DATEDATE--修改时间

?LAST_UPDATE_LOGINNUMBER--修改时进ERP的登录ID2.在数据块的PRE-INSERT、PRE-UPDATE触发器中参与如下代码:

FND_STANDARD.SET_WHO;

三、调用日期控件

1.首先将ITEM的LOV属性设置为“ENABLE_LIST_LAMP〞,列表验证属性设置为“否〞;

2.在ITEM的“KEY-LISTVAL〞解发器下加如下代码:

CALENDAR.SHOW(TO_DATE('20-06-2023','DD-MM-YYYY'));

--无参数时,开启LOV光标默认定位到当前日期,有参数定位到参数所指日期。

四、CHOOSEORG功能

1.在Parameter里面增加如下几个参数,用于接收\组织\的值:

?ORG_ID(Number)?ORG_CODE(Char)?ORG_NAME(Char)

?CHART_OF_ACCOUNTS_ID(Number)

2.在FORM级触发器PRE-FORM增加如下代码,以显示LOV:

FND_ORG.CHOOSE_ORG;

五、设置WINDOW的TITLE

1.根据把ChooseORG加在FORM上还是BLOCK上定将以下语句写在其中一个触发器中,

WHEN-NEW-FORM-INSTANCE或者WHEN-NEW-BLOCK-INSTANCE:APP_WINDOW.SET_TITLE('RESULT',:PARAMETER.ORG_CODE);或者:SET_WINDOW_PROPERTY(window_name,title,'你要写的标题');

1.新增ITEM,设置ITEM的属性:子类信息:设成DRILLDOWN_RECORD_INDICATOR,数据库项:否.

六、记录指示器

七、客制化菜单

1.增加一个自定义Form级的触发器(SPECIAL11)

--名字必需定义为“SPECIAL+数字〞,否则会报错。并且数字的大小决定了菜单出现的先后顺序。数字还有更大作用就是决定了,自定义菜单项选择项放在哪个主菜单下。

1

SPECIAL1—SPECIAL15在“工具〞主菜单下。SPECIAL16—SPECIAL30在“报表〞主菜单下。

SPECIAL31—SPECIAL45在“活动〞主菜单下。

2.在Form级触发器WHEN-NEW-FORM-INSTANCE中添加如下代码进行调用:

APP_SPECIAL.INSTANTIATE('菜单触发器名','菜单显示名称','',TRUE,'LINE');

--可根据不同数据块,实现客制化菜单是否可用,语句:app_special.enable('SPECIAL11',property_off);

八、客制化右键菜单

1.在FROM级增加自定义触发器(名字规则为:POPUP+N)

2.在右键菜单所在的ITEM或BLOCK的“PRE-POPUP-MENU〞触发器上初始化菜单,增加代码如下:

APP_POPUP.INSTANTIATE('POPUP10','菜单显示名称',TRUE,'LINE');APP_POPUP.INSTANTIATE('POPUP3','菜单显示名称',FALSE,NULL);

九、实现手电筒查找的功能

1.开启标准FORMAPPSTAND.fmb。将对象组中的QUERY_FIND拖至待开发的FORM中。继承为子类。

将FORM的第一个导航块及控制台窗口设成QUERY_FIND。

2.开启QUERY_FIND画布,改写“新建〞、“查找〞两个按钮WHEN-BUTTON-PRESS之中的代码:

NEW代码:APP_FIND.NEW('查询的数据块名');

FIND代码::PARAMETER.G_QUERY_FIND:='TRUE';APP_FIND.FIND('查询的数据块名');

:PARAMETER.G_QUERY_FIND:='FALSE';

3.设置QUERY_FIND数据块的“前一导航数据块〞为要实现询查功能的数据块。4.修改QUERY_FIND数据块KEY-NXTBLK触发器代码如下:

:PARAMETER.G_QUERY_FIND:='TRUE';APP_FIND.FIND('查询的数据块名');

:PARAMETER.G_QUERY_FIND:='FALSE';

5.修改QUERY_FIND窗口的标题及尺寸,并在QUERY_FIND画布上创立要查找的条件ITEM。6.在要实现查询的数据块,创立PRE-QUERY触发器,将各查询条件的值赋给块上的item,如下:

If:parameter.g_query_find='TRUE'then

APP_FIND.QUERY_RANGE(:query_find.dept,:query_find.dept,'test_livia.test_dept');

APP_FIND.QUERY_RANGE(:query_find.in_date_from,:query_find.in_date_to,'test_livia.test_indate');endif;

--注:APP_FIND.QUERY_RANGE参数前两个是QUERY_FIND中的item(主要用于范围参数form/to),后一个是查询块中的item。

7.在要实现查询的数据块,再创立QUERY_FIND触发器,增加代码如下:

APP_FIND.QUERY_FIND('查询的数据块名','QUERY_FIND','QUERY_FIND');

十、文件夹功能(注意每个对象都要设子类信息)

1.完成普通界面的各个对象设置;

2.在同一窗口开启标准的Form和我们自己客制的Form,并且选择APPSTAND.FMB的ObjectGroups

STANDARD_FOLDER然后用鼠标拖动至我们自己的Form的ObjectGroups,继承为子类。不要关闭APPSTAND.FMB。

3.做完上面的步骤后,检查一下Attachedlibraries里面有没有APPFLDR。假使没有,我们需要从resource中

手工添加进来。

4.增加StackedCanvas‘FOLDER_STACK’这一步是必需的,而且你期望实现Folder拖动功能的那些Item都

是放在这个Canvas里面,这个StackedCanvas又是放在前面我们建立的正常主Canvas上面。5.创立控制块MY_FOLDER_PROMPT,设置块的属性(子类信息:block;数据库数据块:否);

2

6.在控制块新增ITEM,即要在stacked-canvas上实现拖动的ITEM的列名。设置item属性(对象类型:显

示项;子类信息:FOLDER_PROMPT_MULTIROW;默认值:即显示的列名)7.在控制块增加相关的item:ItemPropertyValueORDER_BY1ItemTypePushButtonORDER_BY2SubclassInformationFOLDER_ORDERBYORDER_BY3CanvasMY_FOLDERX/Yposition、Width、Height0(此四项0是这是这个Item不需要显示出来,是由于目前我们不需要利用几个Button.)ItemPropertyValueFOLDER_OPENItemTypePushButtonSubclassInformationFOLDER_OPENCanvasMY_FOLDERTriggercopy('OPEN','global.folder_action');WHEN-BUTTON_PRESSEDexecute_trigger('folder_action');ItemPropertyValueFOLDER_TITLEItemTypeDisplayItemSubclassInformationDYNAMICTITLECanvasMY_FOLDERX/Yposition、Width、Height0ItemPropertyValueFOLDER_DUMMYItemTypeTextItemSubclassInformationFOLDER_DUMMYCanvasTOOLBARX/Yposition、Width、Height0

8.增加FORM级和BLOCK级的相关trigger。LevelTriggerEventFormFOLDER_ACTIONapp_folder.event(:global.folder_action);WHEN-NEW-FORM-INSTANCEapp_folder.define_folder_block('MY_FOLDER',--'ObjectName'(一般是该form的名称,有多个文件夹时,在form名称后加下划线接01,如:MY_FOLDER_01)'MY_FOLDER',--'folder_block','MY_FOLDER_PROMPT',--'prompt_block','FOLDER_STACK',--'stacked_canvas','MY_FOLDER',--'window',NULL--'disabledfunctions';);/*有多个文件夹时,在每个app_folder.define_folder_block语句后面加上下面的一行代码:app_folder.event('INSTANTIATE');*/BlockPRE-BLOCKapp_folder.event('PRE-BLOCK');POST-BLOCKapp_folder.event('POST-BLOCK');WHEN-NEW-BLOCK-INSTANCEapp_folder.event('WHEN-NEW-BLOCK-INSTANCE');3

备注

PRE-QUERYKEY-EXEQRYKEY-NEXT-ITEMKEY-PREV-ITEMapp_folder.event('PRE-QUERY');app_folder.event('KEY-EXEQRY');app_folder.event('KEY-NEXT-ITEM');app_folder.event('KEY-PREV-ITEM');最简单的方式是直接把标准Form‘APPSTAND.fmb’中的Block‘SAMPLE_FOLDER’中的各个Triger复制过来十一、说明性弹性域

1.创立数据表:使用说明性弹性域的数据表,必需含有ATTRIBUTE_CATEGORY及若干ATTRIBUT字段。

ATTRIBUTE_CATEGORY字段:指弹性域的CONTEXT字段。ATTRIBUT字段:指各弹性栏位实际使用的字段。2.注册弹性域表

register_table(p_appl_short_nameinvarchar2,p_tab_nameinvarchar2,p_tab_typeinvarchar2,

p_next_extentinnumberdefault512,p_pct_freeinnumberdefault10,p_pct_usedinnumberdefault70);3.注册弹性域列

register_column(p_appl_short_nameinvarchar2,

p_tab_nameinvarchar2,p_col_nameinvarchar2,p_col_seqinnumber,p_col_typeinvarchar2,p_col_widthinnumber,p_nullableinvarchar2,p_translateinvarchar2,

p_precisioninnumberdefaultnull,p_scaleinnumberdefaultnull);

4.注册弹性域列,操作路径:应用开发员=>弹性域=>说明性=>注册。

5.注册弹性域段,操作路径:应用开发员=>弹性域=>说明性=>段(注意global是共有栏位)。6.在FORM中启用说明性弹性域:首先,修改FORM级的一些触发器;

?POST-FORM:APP_STANDARD.EVENT('POST-FORM');?PRE-QUERY:FND_FLEX.EVENT('PRE-QUERY');?POST-QUERY:FND_FLEX.EVENT('POST-QUERY');?PRE-INSERT:FND_FLEX.EVENT('PRE-INSERT');?PRE-UPDATE:FND_FLEX.EVENT('PRE-UPDATE');

?WHEN-VALIDATE-RECORD:FND_FLEX.EVENT('WHEN-VALIDATE-RECORD');?WHEN-NEW-FORM-INSTANCE:

fnd_descr_flex.define(BLOCK=>'',

FIELD=>'',

APPL_SHORT_NAME=>'',DESC_FLEX_NAME=>'');

7.然后在需要使用弹性域的BLOCK增加弹性域的item,设置item属性;(子类信息:

TEXT_ITEM_DESC_FLEX,数据库项:否)。设置DESC_FLEX项的以下触发器:?WHEN-VALIDATE-ITEM:FND_FLEX.EVENT('WHEN-VALIDATE-ITEM');

?WHEN-NEW-ITEM-INSTANCE:FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE');

4

?KEY–EDIT:APP_STANDARD.EVENT('KEY-EDIT');

?KEY–LISTVAL:APP_STANDARD.EVENT('KEY-LISTVAL');

5

十二、附件功能

1.注册表和列2.定义单据实体3.定义单据类型:

?短文本类型,存放表:FND_DOCUMENTS_SHORT_TEXT?长文本类型,存放表:FND_DOCUMENTS_LONG_TEXT?Web页类型,存放表:FND_DOCUMENTS_TL?文件类型,存放表:FND_LOBS4.定义附件功能

十三、表单特性化

1.操作菜单路径:Help=>diagnostics=>CustomCode=>personalize

十四、LOV及联动

多个item调用同一个LOV时,删除联动:

可以调用APP_FIELD.clear_dependent_fields和APP_FIELD.set_dependent_field来将两个(或多个)Item建立关联,当一个为空时,另一个不可录入,反正,可录入,且父ItemField变化时,子Fields清空。

APP_FIELD.clear_dependent_fields(

master_fieldVARCHAR2,

field1VARCHAR2,

field2VARCHAR2DEFAULTNULL,field3VARCHAR2DEFAULTNULL,field4VARCHAR2DEFAULTNULL,field5VARCHAR2DEFAULTNULL,field6VARCHAR2DEFAULTNULL,field7VARCHAR2DEFAULTNULL,field8VARCHAR2DEFAULTNULL,field9VARCHAR2DEFAULTNULL,field10VARCHAR2DEFAULTNULL)实现:假使master_field为空,则清空后续所有fieldn.十五、常用接口表或API

6

模块业务表标准请求接口表公开发布APIPO购买单PO_VENDORS、PO_HEADERS_ALL、ImportStandardPurchasepo_headers_interfacepo_change_api1_s.record_accepPO_LINES_ALL、PO_LINE_LOCATIONS_ALL、Orders、po_lines_interfacetancePO_DISTRIBUTIONS_ALL、ImportPriceCatalogspo_distributions_interfacepo_change_api1_s.update_poPO_REQUISITION_HEADERS_ALL、错误:po_interface_errorspo_document_control_pub.contrPO_REQUISITION_LINES_ALL、ol_documentPO_REQ_DISTRIBUTIONS_ALLOM销售单OE_ORDER_HEADERS_ALL、OE_ORDER_LINES_ALL、OrderImportoe_headers_iface_alloe_order_cess_orderWSH_DELIVERY_ASSIGNMENTS、oe_lines_iface_allWSH_DELIVERY_DETAILSoe_actions_iface_allAPINVOICE应付发票AP_INVOICES_ALL、PayablesOpenInterfaceap_invoices_interface、AP_INVOICE_DISTRIBUTIONS_ALL、Importap_invoice_lines_interface、AP_PAYMENT_SCHEDULES_ALL错误:ap_interface_rejectionsARTRANSACTIONSRA_CUSTOMER_TRX_ALL、AutoinvoiceMasterra_interface_lines_all、AR_INVOICE_API_PUB应收发票RA_CUSTOMER_TRX_LINES_ALL、Programra_interface_salescredits_all、AR_PAYMENT_SCHEDULES_ALL、ra_interface_distributions、RA_CUST_TRX_LINE_GL_DIST_ALL错误:ra_interface_errors_allBOM物料清单MTL_SYSTEM_ITEMS_B、BillandRoutingInterfacebom_bill_of_mtls_interface、bom_bo_cess_bomBOM_INVENTORY_COMPONENTS、bom_inventory_comps_interface、BOM_OPERATION_SEQUENCES错误:mtl_interface_errorsBOMROUTINGS工艺BOM_DEPARTMENTS、BOM_RESOURCES、BillandRoutingInterfacebom_op_routings_interface、bom_rtg_cess_rtg路线BOM_DEPARTMENT_RESOURCESbom_op_sequences_interface、bom_op_resources_interface、错误:mtl_interface_errorsINVItems物料MTL_SYSTEM_ITEMS_B、MTL_SYSTEM_ITEMS_TL、ImportItemsmtl_system_items_interfaceinv_item_grp.create_itemMTL_MATERIAL_TRANSACTIONS、mtl_item_revisions_interfaceMTL_SECONDARY_INVENTORIES、错误:mtl_interface_errorsMTL_ITEM_SUB_INVENTORIES、MTL_ITEM_LOCATIONSINVItemCategoriesMTL_ITEM_CATEGORIESItemCategoryAssignmentmtl_item_categories_interfaceinv_item_category_pub

7

物料类别OpenInterfaceAPSuppliers供应商AP_SUPPLIERS、SupplierOpenInterfaceap_suppliers_int、ap_po_vendors_apis_pkgAP_SUPPLIER_SITES、Importap_supplier_sites_int、(非公开发布的)AP_SUPPLIER_CONTACTSap_sup_site_contact_int、ARCustomers客户RA_CUSTOMERSCustomerInterfacera_customers_interface_all、ra_customer_profiles_int_all、ra_contact_phones_int_all、其他(总账、组织、人GL_SETS_OF_BOOKS、GL_PERIODS、hr_employee_api.create_employ员)HR_ALL_ORGANIZATION_UNITS、ee(HR人员信息导入API)HR_ORGANIZATION_INFORMATION、PER_PEOPLE_F、PER_PERSON_TYPES、FND_USER十六、FORM中的属性设置

PACKAGEBODYSet_Property_ControlIS

ProcedureDisable_Block(P_BlockVarchar2)IsBegin

Set_Block_Property(P_Block,Update_Allowed,Property_False);Set_Block_Property(P_Block,Insert_Allowed,Property_False);Set_Block_Property(P_Block,Delete_Allowed,Property_False);--App_Block_Property.Set_Property(P_Block,Alterable,Property_Off);EndDisable_Block;

ProcedureDisable_Block_Allow_Ud(P_BlockVarchar2)IsBegin

Set_Block_Property(P_Block,Update_Allowed,Property_True);Set_Block_Property(P_Block,Insert_Allowed,Property_False);

8

Set_Block_Property(P_Block,Delete_Allowed,Property_False);EndDisable_Block_Allow_Ud;

ProcedureDisable_Block_Allow_Is(P_BlockVarchar2)IsBegin

Set_Block_Property(P_Block,Update_Allowed,Property_False);Set_Block_Property(P_Block,Insert_Allowed,Property_True);Set_Block_Property(P_Block,Delete_Allowed,Property_False);EndDisable_Block_Allow_Is;

ProcedureDisable_Block_Allow_UpIs(P_BlockVarchar2)IsBegin

Set_Block_Property(P_Block,Update_Allowed,Property_True);Set_Block_Property(P_Block,Insert_Allowed,Property_True);Set_Block_Property(P_Block,Delete_Allowed,Property_False);EndDisable_Block_Allow_UpIs;

ProcedureEnable_Block(P_BlockVarchar2)IsBegin

Set_Block_Property(P_Block,Update_Allowed,Property_True);Set_Block_Property(P_Block,Insert_Allowed,Property_True);Set_Block_Property(P_Block,Delete_Allowed,Property_True);--App_Block_Property.Set_Property(P_Block,Alterable,Property_On);EndEnable_Block;

Proce

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论