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

下载本文档

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

文档简介

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;raise form_trigger_failure;二、 实现数据操作人员及时间记录1. table中需建立以下五个列:l CREATED_BY NUMBER -创建人USER_IDl CREATION_DATE DATE -创建时间l LAST_UPDATED_BY NUMBER -修改人USER_IDl LAST_UPDATE_DATE DATE -修改时间l LAST_UPDATE_LOGIN NUMBER -修改时进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-2009,DD-MM-YYYY); -无参数时,打开LOV光标默认定位到当前日期,有参数定位到参数所指日期。四、 CHOOSE ORG功能1. 在Parameter里面增加如下几个参数,用于接收组织LOV的值:l ORG_ID (Number)l ORG_CODE (Char)l ORG_NAME (Char) l CHART_OF_ACCOUNTS_ID (Number)2. 在FORM级触发器PRE-FORM增加如下代码,以显示LOV:FND_ORG.CHOOSE_ORG;五、 设置WINDOW的TITLE1. 根据把Choose ORG加在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+数字”,否则会报错。并且数字的大小决定了菜单出现的先后顺序。数字还有更大作用就是决定了,自定义菜单选项放在哪个主菜单下。SPECIAL1SPECIAL15在“工具”主菜单下。SPECIAL16SPECIAL30在“报表”主菜单下。SPECIAL31SPECIAL45在“活动”主菜单下。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. 打开标准FORM-APPSTAND.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 thenAPP_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);end if;-注: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 的Object Groups STANDARD_FOLDER然后用鼠标拖动至我们自己的Form的Object Groups,继承为子类。不要关闭APPSTAND.FMB。3. 做完上面的步骤后,检查一下Attached libraries里面有没有APPFLDR。如果没有,我们需要从resource中手工添加进来。4. 增加Stacked CanvasFOLDER_STACK这一步是必须的,而且你期望实现Folder拖动功能的那些Item都是放在这个Canvas里面,这个Stacked Canvas又是放在前面我们建立的正常主Canvas上面。5. 创建控制块MY_FOLDER_PROMPT,设置块的属性(子类信息:block ;数据库数据块:否);6. 在控制块新增ITEM,即要在stacked-canvas上实现拖动的ITEM的列名。设置item属性(对象类型:显示项;子类信息:FOLDER_PROMPT_MULTIROW;默认值:即显示的列名)7. 在控制块增加相关的item:ItemPropertyValueORDER_BY1ORDER_BY2ORDER_BY3Item TypePush ButtonSubclass InformationFOLDER_ORDERBYCanvasMY_FOLDERX /Yposition、Width、Height0 (此四项0是这是这个Item不需要显示出来,是因为目前我们不需要利用几个Button.)ItemPropertyValueFOLDER_OPENItem TypePush ButtonSubclass InformationFOLDER_OPENCanvasMY_FOLDERTrigger WHEN-BUTTON_PRESSEDcopy(OPEN, global.folder_action);execute_trigger(folder_action);ItemPropertyValueFOLDER_TITLEItem TypeDisplay ItemSubclass InformationDYNAMIC TITLECanvasMY_FOLDERX /Yposition、Width、Height0ItemPropertyValueFOLDER_DUMMYItem TypeText ItemSubclass InformationFOLDER_DUMMYCanvasTOOLBARX /Yposition、Width、Height08. 增加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);PRE-QUERYapp_folder.event(PRE-QUERY);KEY-EXEQRYapp_folder.event(KEY-EXEQRY);KEY-NEXT-ITEMapp_folder.event(KEY-NEXT-ITEM);KEY-PREV-ITEMapp_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_name in varchar2, p_tab_name in varchar2, p_tab_type in varchar2, p_next_extent in number default 512, p_pct_free in number default 10, p_pct_used in number default 70 );3. 注册弹性域列register_column ( p_appl_short_name in varchar2, p_tab_name in varchar2, p_col_name in varchar2, p_col_seq in number, p_col_type in varchar2, p_col_width in number, p_nullable in varchar2, p_translate in varchar2, p_precision in number default null, p_scale in number default null );4. 注册弹性域列,操作路径:应用开发员=弹性域=说明性=注册。5. 注册弹性域段,操作路径:应用开发员=弹性域=说明性=段 (注意global是共有栏位)。6. 在FORM中启用说明性弹性域:首先,修改FORM级的一些触发器;l POST-FORM : APP_STANDARD.EVENT(POST-FORM);l PRE-QUERY: FND_FLEX.EVENT(PRE-QUERY);l POST-QUERY: FND_FLEX.EVENT(POST-QUERY);l PRE-INSERT: FND_FLEX.EVENT(PRE-INSERT);l PRE-UPDATE: FND_FLEX.EVENT(PRE-UPDATE);l WHEN-VALIDATE-RECORD: FND_FLEX.EVENT(WHEN-VALIDATE-RECORD);l 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项的以下触发器:l WHEN-VALIDATE-ITEM :FND_FLEX.EVENT(WHEN-VALIDATE-ITEM);l WHEN-NEW-ITEM-INSTANCE:FND_FLEX.EVENT(WHEN-NEW-ITEM-INSTANCE);l KEYEDIT:APP_STANDARD.EVENT(KEY-EDIT);l KEYLISTVAL:APP_STANDARD.EVENT(KEY-LISTVAL);13十二、 附件功能1. 注册表和列2. 定义单据实体3. 定义单据类型:l 短文本类型,存放表: FND_DOCUMENTS_SHORT_TEXT l 长文本类型,存放表: FND_DOCUMENTS_LONG_TEXTl Web页类型,存放表: FND_DOCUMENTS_TLl 文件类型,存放表: FND_LOBS4. 定义附件功能十三、 表单个性化1. 操作菜单路径:Help = diagnostics = Custom Code = personalize十四、 LOV及联动多个item调用同一个LOV时,删除联动:可以调用APP_FIELD.clear_dependent_fields和APP_FIELD.set_dependent_field来将两个(或多个)Item建立关联,当一个为空时,另一个不可录入,反正,可录入,且父Item Field变化时,子Fields清空。-APP_FIELD.clear_dependent_fields( master_field VARCHAR2, field1 VARCHAR2, field2 VARCHAR2 DEFAULT NULL, field3 VARCHAR2 DEFAULT NULL, field4 VARCHAR2 DEFAULT NULL, field5 VARCHAR2 DEFAULT NULL, field6 VARCHAR2 DEFAULT NULL, field7 VARCHAR2 DEFAULT NULL, field8 VARCHAR2 DEFAULT NULL, field9 VARCHAR2 DEFAULT NULL, field10 VARCHAR2 DEFAULT NULL)实现:如果master_field为空,则清空后续所有fieldn.十五、 常用接口表或API模块业务表标准请求接口表公开发布APIPO采购单PO_VENDORS、PO_HEADERS_ALL、PO_LINES_ALL、PO_LINE_LOCATIONS_ALL、PO_DISTRIBUTIONS_ALL、PO_REQUISITION_HEADERS_ALL、PO_REQUISITION_LINES_ALL、PO_REQ_DISTRIBUTIONS_ALLImport Standard Purchase Orders、Import Price Catalogspo_headers_interfacepo_lines_interfacepo_distributions_interface错误:po_interface_errorspo_change_api1_s.record_acceptancepo_change_api1_s.update_popo_document_control_pub.control_documentOM销售单OE_ORDER_HEADERS_ALL、OE_ORDER_LINES_ALL、WSH_DELIVERY_ASSIGNMENTS、WSH_DELIVERY_DETAILSOrder Importoe_headers_iface_alloe_lines_iface_alloe_actions_iface_alloe_order_cess_orderAP INVOICE应付发票AP_INVOICES_ALL、AP_INVOICE_DISTRIBUTIONS_ALL、AP_PAYMENT_SCHEDULES_ALLPayables Open Interface Importap_invoices_interface、ap_invoice_lines_interface、错误:ap_interface_rejectionsAR TRANSACTIONS应收发票RA_CUSTOMER_TRX_ALL、RA_CUSTOMER_TRX_LINES_ALL、AR_PAYMENT_SCHEDULES_ALL、RA_CUST_TRX_LINE_GL_DIST_ALLAutoinvoice Master Programra_interface_lines_all、ra_interface_salescredits_all、ra_interface_distributions、错误:ra_interface_errors_allAR_INVOICE_API_PUBBOM物料清单MTL_SYSTEM_ITEMS_B、BOM_INVENTORY_COMPONENTS、BOM_OPERATION_SEQUENCESBill and Routing Interfacebom_bill_of_mtls_interface、bom_inventory_comps_interface、错误:mtl_interface_errorsbom_bo_cess_bomBOM ROUTINGS工艺路线BOM_DEPARTMENTS、BOM_RESOURCES、BOM_DEPARTMENT_RESOURCESBill and Routing Interfacebom_op_routings_interface、bom_op_sequences_interface、bom_op_resources_interface、错误:mtl_interface_errorsbom_rtg_cess_rtgINV Items物料MTL_SYSTEM_ITEMS_B、MTL_SYSTEM_ITEMS_TL、MTL_MATERIAL_TRANSACTIONS、MTL_SECONDARY_INVENTORIES、MTL_ITEM_SUB_INVENTORIES、MTL_ITEM_LOCATIONSImport Itemsmtl_system_items_interfacemtl_item_revisions_interface错误:mtl_interface_errorsinv_item_grp.create_itemINV Item Categories物料类别MTL_ITEM_CATEGORIESItem Category Assignment Open Interfacemtl_item_categories_interfaceinv_item_category_pubAP Suppliers供应商AP_SUPPLIERS、AP_SUPPLIER_SITES、AP_SUPPLIER_CONTACTSSupplier Open Interface Importap_suppliers_int、ap_supplier_sites_int、ap_sup_site_contact_int、ap_po_vendors_apis_pkg(非公开发布的)AR Customers客户RA_CUSTOMERSCustomer Interfacera_customers_interface_all、ra_customer_profiles_int_all、ra_contact_phones_int_all、其他(总账、组织、人员)GL_SETS_OF_BOOKS、GL_PERIODS、HR_ALL_ORGANIZATION_UNITS、HR_ORGANIZATION_INFORMATION、PER_PEOPLE_F、PER_PERSON_TYPES、FND_USERhr_employee_api.create_employee(HR人员信息导入API) 十六、 FORM中的属性设置PACKAGE BODY Set_Property_Control IS Procedure Disable_Block (P_Block Varchar2) Is Begin 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); End Disable_Block; Procedure Disable_Block_Allow_Ud (P_Block Varchar2) Is Begin Set_Block_Property (P_Block, Update_Allowed, Property_True); Set_Block_Property (P_Block, Insert_Allowed, Property_False); Set_Block_Property (P_Block, Delete_Allowed, Property_False); End Disable_Block_Allow_Ud; Procedure Disable_Block_Allow_Is (P_Block Varchar2) Is Begin 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); End Disable_Block_Allow_Is; Procedure Disable_Block_Allow_UpIs (P_Block Varchar2) Is Begin 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); End Disable_Block_Allow_UpIs; Procedure Enable_Block (P_Block Varchar2) Is Begin Set_Block_Property (P_Block, Update_Allowed, Property_True); Set_Block_Property (P_Block, Insert_Allowed, Property_True); Set_Block_Property (P_Block, Delete_Allo

温馨提示

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

评论

0/150

提交评论