Form客制化_快速导出功能_开发_V1.0_第1页
Form客制化_快速导出功能_开发_V1.0_第2页
Form客制化_快速导出功能_开发_V1.0_第3页
Form客制化_快速导出功能_开发_V1.0_第4页
Form客制化_快速导出功能_开发_V1.0_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Form客制化快速导出功能_开发Author:samt007Creation Date:2013-01-07Last Updated:2013-01-07Document Ref:<Document Reference Number> Version:1.0 Copy Number_Document ControlChange Record13DateAuthorVersionChange Reference2013-01-07Sam.T1.0No Previous DocumentReviewersNamePositionDistributionCopy No.NameLocat

2、ion1234Note To Holders:If you receive an electronic copy of this document and print it out, please write your name on the equivalent of the cover page, for document control purposes.If you receive a hard copy of this document, please write your name on the front cover, for document control purposes.

3、ContentsDocument Control2XYG Form客制化_快速导出功能_开发4功能优势和缺点4开发逻辑以及使用约束5相关设定以及说明8开发实例8测试/预览导出效果9Open and Closed Issues for this Deliverable13Open Issues13Closed Issues13XYG Form客制化_快速导出功能_开发本教程主要是介绍Form客制化_快速导出功能_开发的相关功能,包含如下几个部分:l 功能优势和缺点l 开发逻辑以及使用约束l 相关设定以及说明l 开发实例l 测试/预览导出效果功能优势和缺点该功能” Form客制化_快速导出功能”是

4、和标准功能的导出功能很类似的。都是对数据块的内容做批量导出。一、 相对于标准的导出功能,本次客制化开发的快速导出功能的优势在:1) 导出的速度快!特别是大量的数据。这个优势也是做这次客制化的最重要的目的。用标准的导出功能都有一个感觉:导出速度慢。其慢的原因是,标准的导出功能是通过对每一行的每一个Item进行复杂的判断,再获取值,将对应的值用CHR(9)分隔符写入FND_LOBS表,再输出的。举个简单的例子,如果一个Block块有30个栏位,查询出的数据有1000行,那标准的Export功能就需要做30*1000=30000次的Item取值。所以应该明白为什么当导出超过100行的时候,标准要问你

5、:是否要继续。?2) 新的功能是自动提交请求 导出数据,不需要写FND_LOBS表,所以长远来说对系统的优化是一大好处!因为标准导出功能,每次导出都要写一笔记录到FND_LOBS表,FND_LOBS表的日益增加,对数据库的性能是很大的挑战。二、 有优势当然有缺点,它的缺点在:新的导出功能的缺陷在,对于非数据库栏位的Item,是不可以导出的。是一个比较大的缺点。所以,如果希望用这个导出功能,那对应的Item必须是基于数据库的Item,不可以是格式化的Item或者是别的非数据库栏位的Item。另外,List Item也只可以获取其Value,没办法获取Value对应的Meaning。开发逻辑以及使

6、用约束 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的时候:报表不显示的Item的4种情况1)非数据库栏位的Item2)Item是对应数据库表格(视图)的

7、栏位,并且不可以是ROW_ID的栏位。3)Item的属性的显示行数=1的栏位4)Item是隐藏的栏位。当Profile值:XYG_EXPORT_ALL_BLOCK_COLUMN设为Y的时候:就是显示Form中的所有栏位。对于没有别名提示的栏位,就以栏位的名称代替。报表不显示的Item的3种情况1)非数据库栏位的Item2) Item是对应数据库表格(视图)的栏位,并且不可以是ROW_ID的栏位。3)Item的属性的显示行数=1的栏位二、 动态抓取对应要导出的Form Block的Last Query。就是抓:FROM XXX WHERE XXX的部分。三、 将第一步和第二步抓取的内容合并起来,

8、合并为一个完整的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个地方:一、 如

9、何动态逐个找对应要导出的Form-Block的Item以及其栏位意义。二、 动态栏位的报表如何实现。部分核心导出代码:动态栏位的报表的实现:主要是用动态游标。相关设定以及说明一、 Profile值:信义:导出Form所有栏位标识XYG_EXPORT_ALL_BLOCK_COLUMN作用:是否导出所有栏位。当设为“是”的时候,只要是Block有的数据库的Item,无论是否显示,都会导出来。当设为否,值会导出显示的栏位。二、 Profile值:信义:可导出Form文件标识XYG_FILE_EXPORT_PERMISSION作用:是否有文件导出的权限。设为是,则可以用导出的功能。否则不可以导出。三、

10、 全局参数:调试模式GLOBAL.FND_EXPORT_DEBUG作用:是否启用调试模式。设为TRUE则表示会调试,空或者FALSE则为不调试。开发实例第一步:如果您的Form没有Pll文件XYGPUBCORE.pll,需要加载。1. 加载之后,如下图:第二步:在任何一个想做导出功能的操作增加代码。例如我想用户在点打印按钮的时候,做文件导出,则具体步骤如下:1. 在Form级触发器增加KEY-PRINT触发器。2. 在KEY-PRINT触发器增加代码”XYG_FORM_EXPORT.EXPORT;”:开发完毕,是不是很简单?因为所有的代码都封装在Pll里面了。测试/预览导出效果1 首先“信义:导出Form所有栏位标识”设为否,测试导出功能:2 如果没有点查询就用导出,会提示:3 点查询,数据:4 点增加了数据导出功能的打印按钮:5 点继续,直接查看导出的文件:6 点查看请求,确认后台自动提交的数据导出的请求:7 对于非数据库块,点导出,会有错误提示:8 将“信义:导出Form所有栏位标识”设为是,测试导

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论