欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle Form Builder Export导出功能问题解决

程序员文章站 2024-01-23 10:41:16
...

客户化FORM如果文件中导出为灰色导致不能导出的问题

对于数据块项,是不用添加任何触发器就可以使用导出功能的。

可能性1:那个Block不是Data Base的Block
可能性2:你在需要使用导出功能的块上客户化了某些重要的Trigger, 例如When-new-record-INSTANCE或者 When-new-item-INSTANCE,,但执行层次为“忽略”,应该把执行层次改为“之前”,这样就可以实现导出功能了。
(如果必须对那些Trigger客户化,必须加入一句 APP_STANDARD.EVENT('WHEN-NEW-ITEM-INSTANCE'); --括号里面的事件名称就看实际情况,同理,如果增加了其它TRIGGER,需增加相应的代码才能实现和标准FORM一样的功能)

 

如果需要重新开发导出功能如下:

 Oracle Form Builder Export导出功能问题解决一、摘要


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

解决思路:

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

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

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

 

Oracle Form Builder Export导出功能问题解决二、开发


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

 Oracle Form Builder Export导出功能问题解决

Step2. 具体代码

Oracle Form Builder Export导出功能问题解决

DECLARE
   --以上五个变量照搬即可
   URL                 VARCHAR2 (2000);
   DB_FILE             NUMBER;
   WEB_SERVER_PREFIX   VARCHAR2 (255);
   RES                 BOOLEAN;
   MIME_TYPE           VARCHAR2 (255);
   L_ORGANZIATION_ID   NUMBER;

   --定义一个包含主从关系数据的CURSOR
   CURSOR CSR ( V_ORGANIZATION_ID   IN            NUMBER)
   IS
        SELECT   CST.COST_GROUP_CODE,
                 CST.COST_GROUP_DESCRIPTION,
                 CST.COST_GROUP_DISABLE_DATE,
                 CAP.CAPABILITY,
                 EQP.EQP_CAP_DESC DESCRIPTION,
                 CAP.ACTIVE
          FROM   CUX2_CST_COST_GROUP_ALL CST,
                 CUX2_CST_COST_GROUP_EQPS_ALL CAP,
                 CUX2_BOM_EQP_CAP_TYPE EQP
         WHERE       CAP.COST_GROUP_ID(+) = CST.COST_GROUP_ID
                 AND EQP.EQP_CAP_CODE(+) = CAP.CAPABILITY
                 AND EQP.ORGANIZATION_ID(+) = CAP.ORGANIZATION_ID
                 AND CAP.ORGANIZATION_ID(+) = CST.ORGANIZATION_ID
                 AND CST.ORGANIZATION_ID = V_ORGANIZATION_ID
      ORDER BY   CST.ORGANIZATION_ID, CST.COST_GROUP_CODE, CAP.CAPABILITY;
BEGIN
   --获取Organzition_id
   L_ORGANZIATION_ID := FND_PROFILE.VALUE ('MFG_ORGANIZATION_ID');
   --更改鼠标式样:漏斗鼠标(忙状态)
   SET_APPLICATION_PROPERTY (CURSOR_STYLE, 'BUSY');
   --显示进度条窗口,并设置进度为0
   APP_WINDOW.PROGRESS (0);
   --创建数据包,并设置文件头类型。
   DB_FILE :=
      FND_GFM.FILE_CREATE (CONTENT_TYPE   => 'text/html',
                           PROGRAM_NAME   => 'export');
   --输出题头行 注:chr(9) 为 tab键
   FND_GFM.FILE_WRITE_LINE (
      DB_FILE,'Cost Group Code'|| CHR (9)|| 'Cost Group Description'|| CHR (9)|| 'Cost Group Disable Date'|| CHR (9)
      || 'Capability'|| CHR (9)|| 'Description'|| CHR (9)|| 'Active'
   );

   --循环数据行
   FOR R IN CSR (L_ORGANZIATION_ID)
   LOOP
      FND_GFM.FILE_WRITE_LINE (
         DB_FILE,R.COST_GROUP_CODE|| CHR (9)|| R.COST_GROUP_DESCRIPTION|| CHR (9)|| TO_CHAR (R.COST_GROUP_DISABLE_DATE, 'YYYY-MM-DD HH24:MI:SS')
         || CHR (9)|| R.CAPABILITY|| CHR (9)|| R.DESCRIPTION|| CHR (9)|| R.ACTIVE
      );
   END LOOP;

   --关闭数据包
   DB_FILE := FND_GFM.FILE_CLOSE (DB_FILE);
   --将数据包提交给客户端
   URL := FND_GFM.CONSTRUCT_DOWNLOAD_URL (WEB_SERVER_PREFIX, DB_FILE, TRUE);
   --DBMS_OUTPUT.PUT_LINE(URL);
   --打开URL地址下载
   FND_UTILITIES.OPEN_URL (URL);
   --更改鼠标式样:默认指针(常规状态)
   SET_APPLICATION_PROPERTY (CURSOR_STYLE, 'DEFAULT');
   APP_WINDOW.PROGRESS (1);            --显示进度条窗口,并设置进度为1(100%)
END;

Oracle Form Builder Export导出功能问题解决

Step3. 导出Execl

 Oracle Form Builder Export导出功能问题解决

 Step4. 导出条形图

 Oracle Form Builder Export导出功能问题解决

Step5.  导出的Execel

Oracle Form Builder Export导出功能问题解决

 

Thanks and Regards

参考:kawontony - http://blog.itpub.net/24627116/viewspace-754506/

参考:kawontony - http://blog.itpub.net/24627116/viewspace-754513/

相关标签: Oracle EBS