Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选

首页 / 数据库 / MySQL / 解决EBS FORM 无法导出主从关系(Master Detail)数据到EXCEL

解决EBS FORM 无法导出主从关系(Master Detail)数据到EXCEL。 以下是关于解决EBS标准导出功能无法导出主从关系数据的方法。解决思路:1.  在form上增加一个导出按钮,或者在工具栏注册一个菜单项。2.  用制作一个报表,或者模仿系统标准的导出功能。然后用上面的按钮或者菜单项直接调用。这里主要介绍模仿系统标准导出功能。步骤:       1.  直接修改form级trigger EXPORT,把默认的 app_standard.event("EXPORT")注释掉。把下面的代码复制进去。         
  1. /*导出主从结构的COST GROUP 数据。*/  
  2. DECLARE  
  3.   --以上五个变量照搬即可   
  4.   URL               VARCHAR2(2000);  
  5.   DB_FILE           NUMBER;  
  6.   WEB_SERVER_PREFIX VARCHAR2(255);  
  7.   RES               BOOLEAN;  
  8.   MIME_TYPE         VARCHAR2(255);  
  9.    
  10.   L_ORGANZIATION_ID NUMBER;  
  11.   --定义一个包含主从关系数据的CURSOR   
  12.   CURSOR CSR(V_ORGANIZATION_ID IN NUMBER) IS  
  13.     SELECT CST.COST_GROUP_CODE,  
  14.            CST.COST_GROUP_DESCRIPTION,  
  15.            CST.COST_GROUP_DISABLE_DATE,  
  16.            CAP.CAPABILITY,  
  17.            EQP.EQP_CAP_DESC DESCRIPTION,  
  18.            CAP.ACTIVE  
  19.       FROM CUX2_CST_COST_GROUP_ALL      CST,  
  20.            CUX2_CST_COST_GROUP_EQPS_ALL CAP,  
  21.            CUX2_BOM_EQP_CAP_TYPE        EQP  
  22.      WHERE CAP.COST_GROUP_ID(+) = CST.COST_GROUP_ID  
  23.        AND EQP.EQP_CAP_CODE(+) = CAP.CAPABILITY  
  24.        AND EQP.ORGANIZATION_ID(+) = CAP.ORGANIZATION_ID  
  25.        AND CAP.ORGANIZATION_ID(+) = CST.ORGANIZATION_ID  
  26.        AND CST.ORGANIZATION_ID = V_ORGANIZATION_ID  
  27.      ORDER BY CST.ORGANIZATION_ID, CST.COST_GROUP_CODE, CAP.CAPABILITY;  
  28. BEGIN  
  29.   --获取Organzition_id   
  30.   L_ORGANZIATION_ID := FND_PROFILE.VALUE("MFG_ORGANIZATION_ID");  
  31.   --更改鼠标式样:漏斗鼠标(忙状态)   
  32.   SET_APPLICATION_PROPERTY(CURSOR_STYLE, "BUSY");  
  33.   --显示进度条窗口,并设置进度为0   
  34.   APP_WINDOW.PROGRESS(0);  
  35.   --创建数据包,并设置文件头类型。   
  36.   DB_FILE := FND_GFM.FILE_CREATE(CONTENT_TYPE => "text/html",  
  37.                                  PROGRAM_NAME => "export");  
  38.   /*系统标准的导出功能导出的只能是当前聚焦的BLOCK中已显示item数据。  
  39.     当客制的FORM含有主从关系的两个BLOCK则系统标准的导出则不能导出主从数据。  
  40.     研究系统标准导出后的文本格式如下:  
  41.     Cost Group Code     Cost Group Description    Cost Group Disable Date  
  42.     test-1              a test cost group code    2011-09-09  
  43.     test-2              another codst group code  2011-10-10  
  44.     .......  
  45.     ...  
  46.     ..  
  47.      
  48.     第一行为标题头,中间较长距离的空白为 tab 符,也就是  chr(9),  
  49.     接下来的数据行,数据列之间的分隔符也是 tab.  
  50.     摸清规律,模仿导出数据就很容易了。    
  51.   */  
  52.   --输出题头行    注:chr(9) 为  tab键   
  53.   FND_GFM.FILE_WRITE_LINE(DB_FILE,  
  54.                           "Cost Group Code" || CHR(9) ||  
  55.                           "Cost Group Description" || CHR(9) ||  
  56.                           "Cost Group Disable Date" || CHR(9) ||  
  57.                           "Capability" || CHR(9) || "Description" || CHR(9) ||  
  58.                           "Active");  
  59.   --循环数据行   
  60.   FOR R IN CSR(L_ORGANZIATION_ID) LOOP  
  61.     FND_GFM.FILE_WRITE_LINE(DB_FILE,  
  62.                             R.COST_GROUP_CODE || CHR(9) ||  
  63.                             R.COST_GROUP_DESCRIPTION || CHR(9) ||  
  64.                             TO_CHAR(R.COST_GROUP_DISABLE_DATE,  
  65.                                     "YYYY-MM-DD HH24:MI:SS") || CHR(9) ||  
  66.                             R.CAPABILITY || CHR(9) || R.DESCRIPTION ||  
  67.                             CHR(9) || R.ACTIVE);  
  68.   END LOOP;  
  69.   --关闭数据包   
  70.   DB_FILE := FND_GFM.FILE_CLOSE(DB_FILE);  
  71.   --将数据包提交给客户端   
  72.   URL := FND_GFM.CONSTRUCT_DOWNLOAD_URL(WEB_SERVER_PREFIX, DB_FILE, TRUE);  
  73.   --DBMS_OUTPUT.PUT_LINE(URL);   
  74.   --打开URL地址下载   
  75.   FND_UTILITIES.OPEN_URL(URL);  
  76.   --更改鼠标式样:默认指针(常规状态)   
  77.   SET_APPLICATION_PROPERTY(CURSOR_STYLE, "DEFAULT");  
  78.   APP_WINDOW.PROGRESS(1); --显示进度条窗口,并设置进度为1(100%)   
  79. END;  
效果: 


至于这种办法与 跑请求的 方法相比。个人感觉这种办法比较快。只是个人看法。。。。。OK ,就这样。Oracle EBS 报表输出保存文件名乱码问题连接Oracle数据库的Hibernate配置文件相关资讯      Oracle基础教程 
  • Oracle块编程返回结果集详解  (11/10/2013 10:45:58)
  • Oracle基础教程之设置系统全局区  (08/22/2013 14:24:00)
  • Oracle基础教程知识点总结  (06/18/2013 07:43:32)
  • Oracle基础教程之tkprof程序详解  (10/22/2013 11:49:50)
  • Oracle基础教程之sqlplus汉字乱码  (07/18/2013 16:30:00)
  • Oracle 管理之 Linux 网络基础  (02/16/2013 18:37:35)
本文评论 查看全部评论 (0)
表情: 姓名: 字数