Oracle EBS Export 主从关系(Master Detail)数据到EXCEL

 以下是关于解决 EBS 标准导出功能无法导出主从关系数据的方法。

解决思路:

1. 在form上增加一个导出按钮,或者在工具栏注册一个菜单项。

2. 用制作一个报表,或者模仿系统标准的导出功能。然后用上面的按钮或者菜单项直接调用。

这里主要介绍模仿系统标准导出功能。

步骤:

1. 直接修改form级trigger EXPORT,把默认的 app_standard.event('EXPORT')注释掉。把下面的代码复制进去。

 


  1. DECLARE
  2. --以上五个变量照搬即可
  3. URL VARCHAR2(2000);
  4. DB_FILE NUMBER;
  5. WEB_SERVER_PREFIX VARCHAR2(255);
  6. RES BOOLEAN;
  7. MIME_TYPE VARCHAR2(255);
  8. L_ORGANZIATION_ID NUMBER;
  9. --定义一个包含主从关系数据的CURSOR
  10. CURSOR CSR(V_ORGANIZATION_ID IN NUMBER) IS
  11. SELECT CST.COST_GROUP_CODE,
  12. CST.COST_GROUP_DESCRIPTION,
  13. CST.COST_GROUP_DISABLE_DATE,
  14. CAP.CAPABILITY,
  15. EQP.EQP_CAP_DESC DESCRIPTION,
  16. CAP.ACTIVE
  17. FROM CUX2_CST_COST_GROUP_ALL CST,
  18. CUX2_CST_COST_GROUP_EQPS_ALL CAP,
  19. CUX2_BOM_EQP_CAP_TYPE EQP
  20. WHERE CAP.COST_GROUP_ID(+) = CST.COST_GROUP_ID
  21. AND EQP.EQP_CAP_CODE(+) = CAP.CAPABILITY
  22. AND EQP.ORGANIZATION_ID(+) = CAP.ORGANIZATION_ID
  23. AND CAP.ORGANIZATION_ID(+) = CST.ORGANIZATION_ID
  24. AND CST.ORGANIZATION_ID = V_ORGANIZATION_ID
  25. ORDER BY CST.ORGANIZATION_ID, CST.COST_GROUP_CODE, CAP.CAPABILITY;
  26. BEGIN
  27. --获取Organzition_id
  28. L_ORGANZIATION_ID := FND_PROFILE.VALUE('MFG_ORGANIZATION_ID');
  29. --更改鼠标式样:漏斗鼠标(忙状态)
  30. SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');
  31. --显示进度条窗口,并设置进度为0
  32. APP_WINDOW.PROGRESS(0);
  33. --创建数据包,并设置文件头类型。
  34. DB_FILE := FND_GFM.FILE_CREATE(CONTENT_TYPE => 'text/html',
  35. PROGRAM_NAME => 'export');
  36. --输出题头行 注:chr(9) 为 tab键
  37. FND_GFM.FILE_WRITE_LINE(DB_FILE,
  38. 'Cost Group Code' || CHR(9) ||
  39. 'Cost Group Description' || CHR(9) ||
  40. 'Cost Group Disable Date' || CHR(9) ||
  41. 'Capability' || CHR(9) || 'Description' || CHR(9) ||
  42. 'Active');
  43. --循环数据行
  44. FOR R IN CSR(L_ORGANZIATION_ID) LOOP
  45. FND_GFM.FILE_WRITE_LINE(DB_FILE,
  46. R.COST_GROUP_CODE || CHR(9) ||
  47. R.COST_GROUP_DESCRIPTION || CHR(9) ||
  48. TO_CHAR(R.COST_GROUP_DISABLE_DATE,
  49. 'YYYY-MM-DD HH24:MI:SS') || CHR(9) ||
  50. R.CAPABILITY || CHR(9) || R.DESCRIPTION ||
  51. CHR(9) || R.ACTIVE);
  52. END LOOP;
  53. --关闭数据包
  54. DB_FILE := FND_GFM.FILE_CLOSE(DB_FILE);
  55. --将数据包提交给客户端
  56. URL := FND_GFM.CONSTRUCT_DOWNLOAD_URL(WEB_SERVER_PREFIX, DB_FILE, TRUE);
  57. --DBMS_OUTPUT.PUT_LINE(URL);
  58. --打开URL地址下载
  59. FND_UTILITIES.OPEN_URL(URL);
  60. --更改鼠标式样:默认指针(常规状态)
  61. SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');
  62. APP_WINDOW.PROGRESS(1); --显示进度条窗口,并设置进度为1(100%)
  63. END;

效果:




至于这种办法与 跑请求的 方法相比。个人感觉这种办法比较快。只是个人看法。。。。。

OK ,就这样。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24627116/viewspace-754506/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24627116/viewspace-754506/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值