




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、所有的项都必须要继承父项22、form触发器 了解23、form中最好使用大写命名24、form中的参数:25、fnd_message.debeg26、注意使用block、item、form级的触发器27、画布:28、手动创建lov:29、数据块名字不需要和window名称相同310、Form Trigger触发311、fnd_message的用法312、将form挂到erp方法313、进入form时挑选org_id314、FORM开发标准使用FND_STANDARD.SET_WHO315、主从form,用块中的relations来创建主块与副块的关系416、创建form步骤:417、app_find触发器的学习418、不管是基于基表还是基于视图的Block,都建议编写ON-UPDATE、ON-INSERT、ON-DELETE、ON-LOCK触发器519、app_item_property.set_property520、添加日历项:521、lov的注意522、滚动条623、创建堆叠画布624、添加行指示符:625、建立块查询步骤:626、光标从块A点入块B时触发器执行过程:727、创建tab画布步骤:728、一个导航块中必须有一个ITEM可UPDATE或INSERT可输入829、一个块名称超过22个字符,830、创建文件夹步骤及注意:831、Oracle开发中出现FRM-40831错误的解决办法?1132、JTF Grid开发步骤1133、使用view开发form步骤:1134、跳转到其他的form,在触发器中添加go_item(item_name)函数,自动弹出item所在的canvas。1235、RAISE FORM_TRIGGER_FAILURE;自动触发整个form的回滚1236、配置文件存放表:fnd_profile_options、fnd_profile_option_values121、所有的项都必须要继承父项2、form触发器 了解3、form中最好使用大写命名4、form中的参数:1) 全局::global.* -引用全局变量2) Form级::PARAMETER.* -引用form级变量5、fnd_message.debeg(*); -弹出窗口6、注意使用block、item、form级的触发器7、画布:堆叠画布、内容画布、标签画布8、手动创建lov: 1)创建record group -填入sql语句点击确定 2)创建一个lov -修改标题、记录组(刚刚创建的)、修改列映射属性 3)修改ITEM的lov属性9、数据块名字不需要和window名称相同10、Form Trigger触发11、fnd_message的用法12、将form挂到erp方法13、进入form时挑选org_id 在form中要添加org_id,org_code,org_name,chart_of_accounts_id参数在pre_form触发器中添加fnd_org.choose_org,挑选的组织ID-_id,在将__id,在块级触发器中添加pre_insert触发器,并将_id-block__id;或者:_id := fnd_profile.value(ORG_ID);将org_id显示到window title上,在form或块中添加when_new_form/block_instance触发器,在pl/sql中添加app_window.set_title(window_name,:_id);14、FORM开发标准使用FND_STANDARD.SET_WHO 为form添加块级触发器:pre_insert,pre_update触发器,在触发器中添加入,FND_STANDARD.SET_WHO 由于在erp中新建表时必须包括:organization_id, CREATION_DATE, CREATED_BY, LAST_UPDATE_DATE, LAST_UPDATED_BY, LAST_UPDATED_LOGIN属性15、主从form,用块中的relations来创建主块与副块的关系1)创建表,主表与副表(要符合erp规范要求)2)创建block,主块与副块3)创建在主块中Relations-选择要关联的detail_block(副块)-修改Join Condition(在数据库中的关联连接)16、创建form步骤:1)新建一个form,并新建block,cavans,window,设置相关之间的关系2)添加参数:org_id,org_code,org_name,chart_of_accountS_id3)修改pre_form触发器:app_window.set_window_position(win block_name, FIRST_WINDOW);FND_ORG.CHOOSE_ORG;:PARAMETER.ORG_ID := :GLOBAL.ORG_ID;4)修改程序单元中的app_custom5)为块添加pre_insert,pre_update触发器,并添加FND_STANDARD.SET_WHO;在pre_insert添加:CUX_DEPT_CSW.ORGANIZATION_ID := :_id;用于传递org_id。6)修改form的第一个导航块,使一打开这个form时鼠标跟踪到该数据块,并设置块之间的导航顺序7)在when_new_form/block_instance设置form标题app_window.set_title(window_name,:_id);17、app_find触发器的学习1)app_find.query_find 格式:procedure APP_FIND.QUERY_FIND( lov_name varchar2);procedure APP_FIND.QUERY_FIND( block_window varchar2, find_window varchar2, find_block varchar2);DescriptionThese routines invoke either the Row-LOV or the Find Window. Call them from a user-named trigger QUERY_FIND.Arguments (input)lov_name The name of the Row-LOVblock_window The name of the window the Find Window is invoked forfind_window The name of the Find Windowfind_block The name of the block in the Find Window 2)APP_FIND.NEW 格式: procedure APP_FIND.NEW(block_name varchar2);DescriptionThis routine is called by the New button in a Find Window to return the user to a new record in the block on which the find is based.Arguments (input)block_name The name of the block the Find Window is based on 3) APP_FIND.CLEAR 格式: procedure APP_FIND.CLEAR;DescriptionThis routine is called by the Clear button in a Find Window to clear the Find Window.4) APP_FIND.CLEAR_DETAIL18、不管是基于基表还是基于视图的Block,都建议编写ON-UPDATE、ON-INSERT、ON-DELETE、ON-LOCK触发器,并且,把具体的DML和锁记录代码放入数据库Package中,然后在Form中调用,该Package以后还可以在其他地方调用。 理解:对于基于非单表视图的Block来说,这里的4个触发器是必须要写的,具体代码可以直接写在触发器内,但为了模块化管理和今后维护方便,这里分为三层调用,触发器中调用Program Unit中的过程,Program Unit中调用数据库Package中的过程。19、app_item_property.set_property(Item_name,update/insert/delete_allowed,property_true);过程用于修改item属性, set_block_property(block_name,update/._allowed,property_true); SET_ITEM_INSTANCE_PROPERTY(CUX_EMP_CSW.EMP_NAME,CURRENT_RECORD,UPDATE_ALLOWED,PROPERTY_FALSE); 设置当前某列的某个属性值20、添加日历项: 1)添加key_listval触发器,代码:calendar.show(默认日期); 2)修改项的格式掩码yyyy-mm-dd 时间显示格式 3)修改项的lov属性,为List of value 为enable_list_lamp,Validate from list为否21、lov的注意 1)列:指要返回的列,并在界面显示(一般全选) 2)列显示:要在界面上显示的标题,并设置返回值(修改标题,设置要返回到那个item) 3)项:指要在那个列上显示lov按钮(选要进行选择的列)22、滚动条 1)块滚动条:水平与垂直其一,一般只添加垂直滚动条 2)画布滚动条:因为view是显示在界面上的,而canvas是存放item的,如果view太小不足以显示所有的item则需要使用canvas滚动条了,一般使用在堆叠canvas上(一般使用水平滚动条)23、创建堆叠画布时,要再new form触发器中添加入:show_view(canvas_name); 步骤:1) 创建一个堆叠画布,设置标题、子类、显示水平滚动条、window与主画布相同2) 设置item到新增加的堆叠画布上3) 调整堆叠画布, 规则:1) view在canvas上的坐标为:0,0;宽度以情况而定,高度与canvas相同2) canvas左右没有空白,第一个item的坐标为0,0.25(用于放prompt)3) canvas底部留出0.2的宽度用于存放滚动条24、添加行指示符:在block中添加一个item,并设置为current_record_indicator25、建立块查询步骤: 1)打开appstand.fmb,并拖动query_fnd对象组到所需要建立块查询的form中,选择copy的方式 2)删除对象组query_fnd,此时我们的form中会新增加了一个window、canvas、block,分别设置它们的子类属性,并设置block属性的上、下导航块(上为目标块,下为null)而主块的上、下导航为本身 3)修改clear、new、find按钮触发器中的block_name为要查询的块名 4)为query_find block手动添加所需要的item,并显示到相应的canvas上 5)修改块触发器,为要查询的块block添加一个user_name(name:query_find)的触发器,并写入代码:app_find.query_find(block_window,query_find_window,query_find_block);将block_window与query_find的window、block进行绑定,调用EBS中的手电筒按钮6)为要查询的block添加一个pre_query触发器,并写入代码:(ture和false注意大小写)if :parameter.G_query_find = TRUE then copy(name_in(query_find.ORGANIZATION_ID),CUX_DEPT_CSW.ORGANIZATION_ID); copy(name_in(query_find.department_id),CUX_DEPT_CSW.DEPARTMENT_ID); app_find.query_date_range(:query_find.VALID_date_f, :query_find.VALID_date_t, CUX_DEPT_CSW.VALID_DATE); :parameter.G_query_find := FALSE;END IF; 将块查询的条件传递到主块上,并执行ctrl+F11,这样就达到了查询的目的了26、光标从块A点入块B时触发器执行过程:27、创建tab画布步骤:1)新建一个tab_canvas,并创建herders与lines pages(这两个pages是必须的),设置herders与lines的显示标签2)设置Item的显示canvas到新建立的tab_canvas上(设置初始化那个page显示)3)切换到主画布,在view-stacked canvas中选择tab_canvas将tab_canvas显示到主画布上4)控制标签pages的显示 1、在Form级WHEN-NEW-FORM-INSTANCE中追加:SET_CANVAS_PROPERTY(TAB_CANVAS, TOPMOST_TAB_PAGE, HEADERS); 2、新建Form级WHEN-TAB-PAGE-CHANGED触发器,该触发器是用鼠标点时才会触发;另外注意几个Form标准过程的使用:IF :system.tab_previous_page = HEADERS THENvalidate(block_scope);IF :system.MODE = ENTER-QUERY OR NOT form_success THEN-Message hereset_canvas_property(TAB_DEMO,topmost_tab_page,:system.tab_previous_page);RETURN;END IF;ELSIF :system.tab_previous_page = LINES THENvalidate(block_scope);IF :system.MODE = ENTER-QUERY OR NOT form_success THEN-Message hereset_canvas_property(TAB_DEMO,topmost_tab_page,:system.tab_previous_page);RETURN;END IF;END IF;IF :system.tab_new_page = LINES THEN-show_view(ORDER_LINES_STACKED);go_item(ORDER_LINES.ORGANIZATION_CODE);ELSIF :system.tab_new_page = HEADERS THEN-hide_view(ORDER_LINES_STACKED);go_item(ORDER_HEADERS.DESCRIPTION);END IF;28、一个导航块中必须有一个ITEM可UPDATE或INSERT可输入,否则会提示目标块中没有可导航的项(frm-40106错误)29、一个块名称超过22个字符,会提示(frm-41079:添加组列错误)30、创建文件夹步骤及注意:注意:如果创建文件夹不显示prompt,则在new_form_instance触发器中添加app_folder.event(INSTANTIATE); 为文件夹添加自动伸缩的效果:在when_window_resized中添加IF :SYSTEM.EVENT_WINDOW IN (WINDOW_NAME) THEN APP_FOLDER.EVENT(WHEN_WINDOW_RESIZED); END IF; 1)打开APPSTAND.FMB表单,将object group中的STARNDARD_FOLDER拖动到我们新建的form中,选择subclass,将SAMPLE_FOLDER中的所有触发器拖动到我们要建立文件夹选项的block上2)为我们新建的form导入APPFLDR.PLL库3)新建一个prompt block,建完结果图,说明:ORDER_BY3以下属性为要导航的Item4)设置各个Item的属性为:PropertyValueName要导航的列Item Type(项类型)Display Item Subclass Information子类信息FOLDER_PROMPT_MULTIROWCanvas画布FOLDER_STACK(这个属性不能设错,必须是你的Stacked Canvas)Initial Value初始值Brand Type、Brand Desc,Category(这个初始值就是在Form上面你将会看到的prompt值)Prompt提示保持为空ItemPropertyValueORDER_BY1ORDER_BY2ORDER_BY3Item TypePush ButtonSubclass InformationFOLDER_ORDERBYCanvasCONTEN_CANVASX Position0Y Position0Width0Height0备注后面的四个0是这是这个Item不需要显示出来,是因为目前我们不需要利用几个Button.ItemPropertyValueFOLDER_OPENItem TypePush ButtonSubclass InformationFOLDER_OPENCanvasCONTEN_CANVAS自带Trigger WHEN-BUTTON_PRESSEDcopy(OPEN, global.folder_action);execute_trigger(folder_action);ItemPropertyValueFOLDER_TITLEItem TypeDisplay ItemSubclass InformationDYNAMIC TITLE 动态名称CanvasCONTEN_CANVASX Position0Y Position0Width0Height0备注后面的四个0是这是这个Item不需要显示出来,是因为目前我们不需要利用这个Item.ItemPropertyValueFOLDER_DUMMYItem TypeText ItemSubclass InformationFOLDER_DUMMYCanvasTOOLBARX Position0Y Position0Width0Height0 5)修改block的prompt为空(包括主块和标签块)修改标签块的设置标签块的Initial Value属性:为要提示的内容 6)创建stacked canvas,并设置block显示到改canvas上,包括主块和标签块,设置stacked canvas的属性,水平滚动条为yes 7)修改trigger,在when_new_form_instance中添加:app_folder.define_folder_block(要导航的block名, -ObjectName 要导航的block名, -folder_block, 标签块, -prompt_block, 新建的stacked_canvas, -stacked_canvas, win_name, -window, NULL -disabledfunctions;); app_folder.event(INSTANTIATE); 8)在when_window_resized中添加IF :SYSTEM.EVENT_WINDOW IN (WINDOW_NAME) THEN APP_FOLDER.EVENT(WHEN_WINDOW_RESIZED); END IF; 结束!31、Oracle开发中出现FRM-40831错误的解决办法?在开发ORACLE Form录入界面处理的过程中,出现“FRM-40831: 出现截段,域XXX太长”的错误,经分析处理,发现问题是由于“域xxx”在Form中定义的长度与定义的数据表中的段xxx的长度不一致所致,经在Form中修改“域XXX”的maxlength的长度与数据表中定义的xxx字段长度一致后,问题就解决!32、JTF Grid开发步骤“遵循JTF Grid规范”换取“增删字段无需修改Form代码”。33、使用view开发form步骤: 1)建立view,form(参考创建form步骤)并设置相关属性2)在program unit中添加pkg,pkg中包括insert_row,update_row,delete_row,lock_row等过程,代码可由begin - Call the procedure oms_plsql_generator_pkg.form_view_iud_p(p_block_name = :p_block_name, p_table_name = :p_table_name, p_owner = :p_owner, p_primary_key = :p_primary_key);end; 生成3)在view块中加入on_insert,on_delete,on_update,on_lock触发器,相关代码引用新增加的program unit中的代码4)由于此时view更新、插入、删除、锁定等操作都只能关联到它对应的一个主表,而当它对应多个主表时,必须修改program unit中的各个过程的代码,或者为某些列(说明:为view来源的关联列)添加lov这样才能联级更新,插入等操作。34、跳转到其他的form,在触发器中添加go_item(item_name)函数,自动弹出item所在的canvas。35、RAISE FORM_TRIGGER_FAILURE;自动触发整个form的回滚36、配置文件存放表:fnd_profile_options、fnd_profile_option_valuesPLSQL获取配置文件的值:FND_PROFILE.VALUE();37、手电筒没反应:app_find.query_find(block_window,query_find_window,query_find_block)关闭不了,修改块之间的导航38、没有在界面上显示的列不能添加值列表选择39、在form中单击按钮让按钮变灰 GO_BLOCK(PO_HEADERS);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建三明市清流县财通国有投资集团有限公司招聘企业人员3人笔试历年参考题库附带答案详解
- 2025物产中大金属集团有限公司暑期实习招聘80人笔试历年参考题库附带答案详解
- 2025福建厦门市集美区双塔小学产假顶岗教师招聘1人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025年4月广东深圳光明区文化广电旅游体育局选聘特聘专干1人模拟试卷附答案详解(典型题)
- 2025安徽新华图书音像连锁有限公司外包服务人员(第二批)招聘3人笔试历年参考题库附带答案详解
- 2025四川省医医学验光配镜眼镜有限公司招聘2人笔试历年参考题库附带答案详解
- 2025广东医科大学招聘事业编制人员47人考前自测高频考点模拟试题及答案详解(易错题)
- 2025年佳木斯同江市事业单位公开遴选管理人员和专业技术人员73人模拟试卷及答案详解(名校卷)
- 2025年河南洛阳市考古研究院引进急需短缺专业人才4人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025年东营市垦利区卫生健康局公开招聘劳务派遣工作人员模拟试卷及答案详解参考
- 2025年中秋节知识竞赛题库及答案
- 2025装配钳工高级考试试题(含答案)
- 2025-2030中国酒店管理集团国际化发展路径与挑战分析报告
- 教师培训破冰行动课件
- 局生态环保培训课件
- 虚拟现实技术在宠物行为干预中的临床应用-洞察阐释
- 2025至2030中国石油化工设备行业发展分析及发展趋势分析与未来投资战略咨询研究报告
- 思想道德与法治2023年版电子版教材-1
- 冻伤的处理与急救措施
- 装修公司草签合同协议
- 粮食代烘干合同协议
评论
0/150
提交评论