修改custom.pll文件里 的过程event;参考例子如下,修改好后上传至$AU_TOP/resource 运行编译frmcmp_batch CUSTOM apps/apps module_type=LIBRARY compile_all=YES,重新登录即可。注意修改前先做好备份

  1. PROCEDURE event(event_name VARCHAR2) IS
  2. --
  3. -- This procedure allows you to execute your code at specific events
  4. -- including:
  5. --
  6. -- ZOOM
  7. -- WHEN-NEW-FORM-INSTANCE
  8. -- WHEN-NEW-BLOCK-INSTANCE
  9. -- WHEN-NEW-RECORD-INSTANCE
  10. -- WHEN-NEW-ITEM-INSTANCE
  11. -- WHEN-VALIDATE-RECORD
  12. --
  13. -- Additionally, product-specific events will be passed via this
  14. -- interface (see the Applications Technical Reference manuals for
  15. -- a list of events that are available).
  16. --
  17. -- By default this routine must perform 'null;'.
  18. --
  19. -- Oracle Corporation reserves the right to change the events
  20. -- available through this interface at any time.
  21. --
  22. /* Sample code:
  23.  
  24. form_name varchar2(30) := name_in('system.current_form');
  25. block_name varchar2(30) := name_in('system.cursor_block');
  26. param_to_pass1 varchar2(255);
  27. param_to_pass2 varchar2(255);
  28. begin
  29. -- Zoom event opens a new session of a form and
  30. -- passes parameter values to the new session. The parameters
  31. -- already exist in the form being opened.
  32. if (event_name = 'ZOOM') then
  33. if (form_name = 'DEMXXEOR' and block_name = 'ORDERS') then
  34. param_to_pass1 := name_in('ORDERS.order_id');
  35. param_to_pass2 := name_in('ORDERS.customer_name');
  36. fnd_function.execute(FUNCTION_NAME=>'DEM_DEMXXEOR',
  37. OPEN_FLAG=>'Y',
  38. SESSION_FLAG=>'Y',
  39. OTHER_PARAMS=>'ORDER_ID="'||param_to_pass1||
  40. '" CUSTOMER_NAME="'||param_to_pass2||'"');
  41. -- all the extra single and double quotes account for
  42. -- any spaces that might be in the passed values
  43. end if;
  44.  
  45. -- This is an example of a product-specific event. Note that as
  46. -- of Prod 15, this event doesn't exist.
  47. elsif (event_name = 'OE_LINES_PRICING') then
  48. get_custom_pricing('ORDERS.item_id', 'ORDERS.price');
  49.  
  50. -- This is an example of enforcing a company-specific business
  51. -- rule, in this case, that all vendor names must be uppercase.
  52. elsif (event_name = 'WHEN-VALIDATE-RECORD') then
  53. if (form_name = 'APXVENDR') then
  54. if (block_name = 'VENDOR') then
  55. copy(upper(name_in('VENDOR.NAME')), 'VENDOR.NAME');
  56. end if;
  57. end if;
  58. else
  59. null;
  60. end if;
  61. end event;
  62. */
  63. --
  64. -- Real code starts here
  65. --
  66. form_name VARCHAR2(30) := name_in('system.current_form');
  67. block_name varchar2(30) := name_in('system.cursor_block');
  68. special_menu_name13 VARCHAR2(2000);
  69. special_menu_name14 VARCHAR2(2000);
  70. special_menu_name15 VARCHAR2(2000);
  71. param_to_pass1 NUMBER := NULL;
  72. param_to_pass2 NUMBER := NULL;
  73. param_to_pass3 varchar2(200) := NULL;
  74. param_to_pass4 number := NULL;--invoiec_id
  75. param_to_pass5 number := NULL;--ccid
  76. param_to_pass6 date := NULL;--gl_date
  77. param_to_pass7 number := NULL;--set_of_books_id
  78. V_PROPERTY VARCHAR2(30);
  79.  
  80. BEGIN
  81. special_menu_name13 := '返利';
  82. special_menu_name14 := '订单';
  83. special_menu_name15 := '更新';
  84. --FND_MESSAGE.DEBUG('CUSTOM.PLL');
  85. IF form_name = 'APXINWKB' AND event_name = 'WHEN-NEW-FORM-INSTANCE' THEN
  86. --SET_MENU_ITEM_PROPERTY('SPECIAL.MENU15',LABEL,'自动创建');
  87. set_menu_item_property('FILE.SAVE', enabled, PROPERTY_ON);-- able save menu
  88. app_special2.instantiate('SPECIAL13', special_menu_name13, NULL, TRUE); --添加菜单API
  89. app_special2.instantiate('SPECIAL14', special_menu_name14, NULL, TRUE); --添加菜单API
  90. app_special2.instantiate('SPECIAL15', special_menu_name15, NULL, TRUE); --添加菜单API
  91. RETURN;
  92. END IF;
  93.  
  94. IF form_name = 'APXINWKB' AND event_name = 'WHEN-NEW-ITEM-INSTANCE' /*AND
  95. block_name = 'INV_SUM_FOLDER'*/ THEN
  96. IF name_in('INV_SUM_FOLDER.QUICK_PO_NUMBER') IS NULL THEN
  97. set_item_property('INV_SUM_CONTROL.MATCH', enabled, property_false);
  98. ELSE
  99. set_item_property('INV_SUM_CONTROL.MATCH', enabled, property_true);
  100. END IF;
  101. RETURN;
  102.  
  103. END IF;
  104.  
  105. IF form_name = 'APXINWKB' AND event_name = 'WHEN-NEW-BLOCK-INSTANCE' THEN
  106.  
  107. --SET_MENU_ITEM_PROPERTY('SPECIAL.MENU15',LABEL,'自动创建');
  108. app_special.enable('SPECIAL1', property_on);
  109. app_special.enable('SPECIAL2', property_on);
  110. app_special.enable('SPECIAL3', property_on);
  111. RETURN;
  112. END IF;
  113.  
  114. IF ((form_name = 'APXINWKB') /*and (Block_Name = 'LINES')*/
  115. AND (event_name = 'SPECIAL13')) THEN
  116. param_to_pass1 := name_in('INV_SUM_FOLDER.ORG_ID');
  117. param_to_pass2 := name_in('INV_SUM_FOLDER.VENDOR_ID');
  118. param_to_pass4 := name_in('INV_SUM_FOLDER.INVOICE_ID');
  119. param_to_pass5 := name_in('INV_SUM_FOLDER.ACCTS_PAY_CODE_COMBINATION_ID');
  120. param_to_pass6 := name_in('INV_SUM_FOLDER.GL_DATE');
  121. param_to_pass7 := name_in('INV_SUM_FOLDER.SET_OF_BOOKS_ID');
  122. --FND_MESSAGE.DEBUG('CUSTOM.PLL');
  123. --FND_MESSAGE.DEBUG('param_to_pass4 '||param_to_pass4);
  124. --FND_MESSAGE.DEBUG('param_to_pass5 '||param_to_pass5);
  125. --FND_MESSAGE.DEBUG('param_to_pass6 '||param_to_pass6);
  126. --FND_MESSAGE.DEBUG('param_to_pass7 '||param_to_pass7);
  127. V_PROPERTY := Get_Menu_Item_Property('FILE.SAVE',enabled);
  128. --FND_MESSAGE.DEBUG('V_PROPERTY '||V_PROPERTY);
  129. --set_menu_item_property('FILE.SAVE', enabled, PROPERTY_OFF);-- disable save menu
  130.  
  131. fnd_function.execute(function_name => 'CUXAPREBATE',
  132. open_flag => 'Y',
  133. session_flag => 'Y',
  134. other_params => 'G_ORG_ID="' || param_to_pass1 ||
  135. '" G_VENDOR_ID="' ||
  136. param_to_pass2 || /*'"'||*/
  137. '" G_INVOICE_ID="' ||
  138. param_to_pass4 ||
  139. '" G_CCID="' ||
  140. param_to_pass5 ||
  141. '" G_GL_DATE="' ||
  142. param_to_pass6 ||
  143. '" G_SET_OF_BOOKS_ID="' ||
  144. param_to_pass7 || '"');
  145.  
  146. ELSIF ((form_name = 'APXINWKB') /*and (Block_Name = 'LINES')*/
  147. AND (event_name = 'SPECIAL14')) THEN
  148. param_to_pass3 := name_in('INV_SUM_FOLDER.QUICK_PO_NUMBER');
  149. fnd_function.execute(function_name => 'CUXAPPOINFOR',
  150. open_flag => 'Y',
  151. session_flag => 'Y',
  152. other_params => 'G_PO_NUMBER="' || param_to_pass3 ||
  153. '"' );
  154.  
  155. ELSIF ((form_name = 'APXINWKB') /*and (Block_Name = 'LINES')*/
  156. AND (event_name = 'SPECIAL15')) THEN
  157. fnd_message.debug('Event_Name = SPECIAL15');
  158. ELSE
  159. RETURN;
  160. END IF;
  161.  
  162. END event;

修改CUSTOM.PLL文件调用客户化FORM&修改标准FORM的更多相关文章

  1. FORM调用FORM(标准调客户化&客户化调标准)并执行查询的实现研究

    一.先来个比较简单的,标准FORM调用客户话FORM并执行查询 1.修改CUSTOM.PLL,使用 fnd_function.execute实现打开和传递参数 参考例子如下 PROCEDURE eve ...

  2. 【相当实用】如何让TortoiseSVN导出新增或修改过的文件

    当一个网站项目进入运营维护阶段以后,不会再频繁地更新全部源文件到服务器,这个时间的修改大多是局部的,因此更新文件只需更新修改过的文件,其他没有修改过的文件就没有必要上载到服务器.但一个稍微上规模的网站 ...

  3. 使用.net Reflector手动修改单个dll文件

    在项目中修改bug会存才版本混乱的问题,加上dll中的依赖项目比较多,想要修改单个dll文件中的少量代码是很麻烦的. 可以使用Reflector和Reflexil可以手动修改单个dll文件,我使用的是 ...

  4. 修改VS2017模板文件,添加文件头部自定义注释

    找到Class.cs文件 找到VS2017安装目录下面的Class.cs文件,一般在C盘或者D盘 模块文件位置: 接口模版:C:\Program Files (x86)\Microsoft Visua ...

  5. python文件操作:文件指针移动、修改

    一.文件指针移动 二.修改   一.文件指针移动 #大前提:文件内指针的移动是Bytes为单位的,唯独t模式下的read读取内容个数是以字符为单位 # f.read(3) # with open('a ...

  6. Form_通过Custom.pll新增菜单项(案例)

    2014-05-31 Created By BaoXinjian

  7. CUSTOM.PLL的使用

    在开发中对系统标准form的修改一般不建议修改系统原有FORM,对所需要修改的内容一般写在CUSTOM.PLL里即可,应为每个form运行的时候都会调用CUSTOM.PLL具体概念性东西可参考网上资料 ...

  8. 修改ASP.NET文件上传大小限制

    转自:http://www.hello-code.com/blog/asp.net/201603/5954.html 要点: 1.web.config中的<httpRuntime maxRequ ...

  9. 用 C# 轻松读取、改变文件的创建、修改、访问时间

    创建时间是文件存入到电脑中的时间,而修改时间则是改变起内容的最后时间 // 读取文件的创建.修改.访问时间FileInfo fi = new FileInfo("C://test.txt&q ...

随机推荐

  1. [Cqoi2010]扑克牌

    Description 你有n种牌,第i种牌的数目为ci.另外有一种特殊的 牌:joker,它的数目是m.你可以用每种牌各一张来组成一套牌,也可以用一张joker和除了某一种牌以外的其他牌各一张组成1 ...

  2. SAC E#1 - 一道难题 Tree

    题目背景 冴月麟和魏潇承是好朋友. 题目描述 冴月麟为了守护幻想乡,而制造了幻想乡的倒影,将真实的幻想乡封印了.任何人都无法进入真实的幻想乡了,但是她给前来救她的魏潇承留了一个线索. 她设置了一棵树( ...

  3. hdu 4568 Hunter 最短路+dp

    Hunter Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  4. 51Nod 1331 狭窄的通道

    有一个长为L的狭窄通道,我们假设这个通道在x轴上,其两个出口分别在x=0与x=L处.在这个通道里有N只狼,第i只狼有一个初始位置ai,它想到达位置bi(0<=i=L处空间足够大可以装下任意数量的 ...

  5. 勤拂拭软件 java web 开发教程(1) - 开发环境搭建

    勤拂拭软件系列教程 之 Java Web开发之旅(1) Java Web开发环境搭建 1 前言 工作过程中,遇到不少朋友想要学习jsp开发,然而第一步都迈不出,连一个基本的环境都没有,试问,如何能够继 ...

  6. Python virtualenv 使用总结篇

    一.virtualenv的安装 1.使用pip全局安装virtualenv,建议使用pip 1.3或更高版本,在1.3之前,pip没有通过SSL从PYPI下载. $ [sudo] pip instal ...

  7. Python Socket第二篇(socketserver)

    本节内容 socketserver基础知识 ThreadingTCPServer源码剖析 1.socketserver基础 ThreadingTCPServer实现的Soket服务器内部会为每个cli ...

  8. Linux之grep命令

    概述 所有的类linux系统都会提供一个名为grep(global regular expression print,全局正则表达式输出)的搜索工具.grep命令在对一个或多个文件的内容进行基于模式的 ...

  9. C语言程序第三次作业

    (一)改错题 计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数. 输入输出样例1: Enterr x: 10.0 f(10.0) = 0.1 输入输出样例2: En ...

  10. 计科1702冯亚杰C语言程序设计预备作业

    阅读邹欣老师的博客--师生关系,针对文中的几种师生关系谈谈你的看法,你期望的师生关系是什么样的? 答:首先老师和学生之间要互相尊重,我认为这是必要的.在第一点的基础上师生要互相帮助,互相配合,共同进步 ...