天天看点

Oracle EBS 报表输出ExcelOracle EBS 报表输出Excel @吃萝卜去

Oracle EBS 报表输出Excel @吃萝卜去

首先需要在系统中增加请求的输出类型

增加EXCEL输出类型

  1. 在快码 ‘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.
    Oracle EBS 报表输出ExcelOracle EBS 报表输出Excel @吃萝卜去
    Oracle EBS 报表输出ExcelOracle EBS 报表输出Excel @吃萝卜去
    C.) 保存.
  1. 为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) 保存.

  2. 确认并发请求的输出类型为’TEST’ :
    Oracle EBS 报表输出ExcelOracle EBS 报表输出Excel @吃萝卜去

    3.1) 路径 : (Responsibility) System Administrator > (Menu) Concurrent > (SubMenu) Program > (Function) Define.

    3.2)确认这个 ‘TEST’ 是最新创建的.

  3. 提交并发请求查看输出是否是用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 ;