解決EBS FORM 無法匯出主從關係(Master Detail)資料到EXCEL

來源:互聯網
上載者:User

解決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 ,就這樣。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.