Oracle EBS 報表輸出Excel @吃蘿蔔去
首先需要在系統中增加請求的輸出類型
增加EXCEL輸出類型
-
在快碼 ‘CP_OUTPUT_FILE_TYPE’ 中新增一行:
1.1) 路徑: (Responsibility) Application Developer > (Menu) Application > (SubMenu) Lookups > (Function) Application Object Library.
1.2) 查詢快碼 ‘CP_OUTPUT_FILE_TYPE’.
1.3) 增加一行:
Code: TEST, Meaning: TEST, Description: Test of Excel Output.
Note: 由于 FND_CONCURRENT_PROGRAMS.OUTPUT_FILE_TYPE 的字元類型為 VARCHAR2(4), 是以快碼的長度不能超過4個字元.
快碼 ‘CP_OUTPUT_FILE_TYPE’ 正常情況下是不允許新增資料的。
Note: 如果在建立資料的時候form提示 “FRM-41051- You can not create records here.” 可以使用form個性化來解決。
A.) FORM ‘Application Object Library Lookups’, 點選’Help’ > ‘Diagnostics’ > ‘Custom Code’ > ‘Personalize’.
B.) 在個性化界面設定以下内容 :
- 序号: 10
- 描述: Allow Edit
- 條件> Trigger Event : WHEN-NEW-RECORD-INSTANCE, Trigger Object : FND_LOOKUP_VALUES
- 動作> Seq : 10, Type : Property, Object Type : Block, Target Object : FND_LOOKUP_VALUES, Property Name : INSERT_ALLOWED, Value : TRUE. C.) 儲存.
-
為EXCEL輸出類型設定比對的檢視類型 ‘application/vnd.ms-excel’ :
2.1) 路徑 : (Responsibility) System Administrator > (Menu) Install > (Function) Viewer Options.
2.2) 增加一行:
類型 : TEST, Mime Mime類别: application/vnd.ms-excel, 描述: Test Excel Format.
2.3) 儲存.
- 确認并發請求的輸出類型為’TEST’ :
3.1) 路徑 : (Responsibility) System Administrator > (Menu) Concurrent > (SubMenu) Program > (Function) Define.
3.2)确認這個 ‘TEST’ 是最新建立的.
- 送出并發請求檢視輸出是否是用EXCLE打開.
并發請求參考代碼
create or replace procedure test_excel(
errbuf out varchar2,
errcode out number) as
begin
fnd_file.put_line(fnd_file.output,'
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
xmlns:html="http://www.w3.org/TR/REC-html40">
<Worksheet ss:Name="Demo Sheet">
<Table>
<Row>
<Cell><Data ss:Type="String">Hello!World!</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="String">Hello!World!</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="String">Hello!World!</Data></Cell>
</Row>
</Table>
</Worksheet>
</Workbook>');
end ;