Form_Form Builder Export导出为Excel(案例)
2014-01-09 Created By BaoXinjian
一、摘要
以下是关于解决EBS标准导出功能无法导出主从关系数据的方法。
解决思路:
1. 在form上增加一个导出按钮,或者在工具栏注册一个菜单项。
2. 用制作一个报表,或者模仿系统标准的导出功能。然后用上面的按钮或者菜单项直接调用。
这里主要介绍模仿系统标准导出功能
二、开发
Step1. 直接修改form级trigger EXPORT,把默认的 app_standard.event('EXPORT')注释掉。把下面的代码复制进去。
Step2. 具体代码
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;
Step3. 导出Execl
Step4. 导出条形图
Step5. 导出的Execel
Thanks and Regards
参考:kawontony - http://blog.itpub.net/24627116/viewspace-754506/
参考:kawontony - http://blog.itpub.net/24627116/viewspace-754513/
ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
标签:
Form Builder
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?