Form客制化_快速导出功能_开发

客制化_快速导出功能_开发

本教程主要是介绍Form客制化_快速导出功能_开发的相关功能,包含如下几个部分:

l  功能优势和缺点

l  开发逻辑以及使用约束

l  相关设定以及说明

l  开发实例

l  测试/预览导出效果

 

功能优势和缺点

该功能” Form客制化_快速导出功能”是和标准功能的导出功能很类似的。都是对数据块的内容做批量导出。

一、相对于标准的导出功能,本次客制化开发的快速导出功能的优势在:

1)         导出的速度快!特别是大量的数据。

这个优势也是做这次客制化的最重要的目的

用标准的导出功能都有一个感觉:导出速度慢。其慢的原因是,标准的导出功能是通过对每一行的每一个Item进行复杂的判断,再获取值,将对应的值用CHR(9)分隔符写入FND_LOBS表,再输出的。

举个简单的例子,如果一个Block块有30个栏位,查询出的数据有1000行,那标准的Export功能就需要做30*1000=30000次的Item取值。所以应该明白为什么当导出超过100行的时候,标准要问你:是否要继续。。。?

2)         新的功能是自动提交请求导出数据,不需要写FND_LOBS表,所以长远来说对系统的优化是一大好处!

因为标准导出功能,每次导出都要写一笔记录到FND_LOBS表,FND_LOBS表的日益增加,对数据库的性能是很大的挑战。

二、有优势当然有缺点,它的缺点在:

新的导出功能的缺陷在,对于非数据库栏位的Item,是不可以导出的。是一个比较大的缺点。所以,如果希望用这个导出功能,那对应的Item必须是基于数据库的Item,不可以是格式化的Item或者是别的非数据库栏位的Item

另外,List Item也只可以获取其Value,没办法获取Value对应的Meaning

 

开发逻辑以及使用约束

 XYG公用导出功能代码: XYG_FORM_EXPORT.EXPORT

功能用途:Form数据导出。

功能开发逻辑:

一、动态抓取对应要导出的Form Block的栏位。就是抓:SELECT XXX的部分。

其中,栏位别名用Form BLock Item对应的提示。

特别要注意的是:

新增Profile设定值:XYG_EXPORT_ALL_BLOCK_COLUMN(信义:导出Form所有栏位标识)。是否导出所有栏位。

         Profile值:XYG_EXPORT_ALL_BLOCK_COLUMN设为N的时候:

                   报表不显示的Item4种情况

                   1)非数据库栏位的Item

                   2)Item是对应数据库表格(视图)的栏位,并且不可以是ROW_ID的栏位。

                   3)Item的属性的显示行数=1的栏位

                   4)Item是隐藏的栏位。

         Profile值:XYG_EXPORT_ALL_BLOCK_COLUMN设为Y的时候:

                   就是显示Form中的所有栏位。对于没有别名提示的栏位,就以栏位的名称代替。

                   报表不显示的Item3种情况

                   1)非数据库栏位的Item

                   2) Item是对应数据库表格(视图)的栏位,并且不可以是ROW_ID的栏位。

                   3)Item的属性的显示行数=1的栏位

二、动态抓取对应要导出的Form BlockLast Query。就是抓:FROM XXX WHERE XXX的部分。

三、将第一步和第二步抓取的内容合并起来,合并为一个完整的SQL语句,将这个语句塞到临时表:XYG_FND_FORM_REPORT_TEMP

四、根据XYG_FND_FORM_REPORT_TEMP的表格ID,传给请求"XYG_信义玻璃Form导出报表"作为提交报表的SQL语句。然后自动提交报表。

五、公用标准导出功能的GLOBAL.FND_EXPORT_DEBUG,它是调试的标识。设为TRUE则表示会调试,空或者FALSE则为不调试。

六、公用导出功能的导出权限XYG_FILE_EXPORT_PERMISSION(信义:可导出Form文件标识),如果设为N,则不可以用导出的功能。

开发难点:

主要有2个地方:

一、如何动态逐个找对应要导出的Form-BlockItem以及其栏位意义。

二、动态栏位的报表如何实现。

 

只是一个引导作用。具体代码大家可以自己编写。

实践证明,这个功能还是非常的实用。因为可以将Form的内容简单直接导出到Excel里面,User在Excel操作数据,方便性和可操作行大大提高!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值