分享
 
 
 

实现类GRID报表功能的程序包

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

1 前言

相信使用OracleDeveloper设计系统的同仁,都有一个愿望,就是实现类似于GRID的控件,配置相关的参数,就可以将查询结果显示给用户,不需要再另行编制用户界面,不需要再编制报表文件。

OracleDeveloper自身并不支持实现该功能的任何方法,之前考虑过用JavaBean来实现,由于时间关系,加上对Java开发环境不熟悉,此愿望一直没有实现。

前几天在莫兄的SLK文章指引下,编制了SLK文件生成的程序包,又经过数天的编码,终于实现通过前台参数配置<可以是数据块、SQL语句、数据表名、视图名 designtimesp=13499>,生成SLK文件,并在IE中显示。用户可以另存该文件或打印该文件。

2 说明

2.1 调用接口<由于程序包不是类,无法通过Public与Private开放或屏蔽内部函数,所以将调用函数列出,以方便同仁们使用 designtimesp=13504>

--以XLS报表方式输出查询结果,使用数据块语句方式,使用轮询方式,速度可能较慢

Procedure SP_RuntimeReport

(P_BlockName In VarChar2 --查询的数据块名称

,P_FieldList In VarChar2 --要查询的字段,以“,’分隔

,P_FieldTitleList In VarChar2 --要查询的字段名称,以“,’分隔

,P_SlkFileName In VarChar2 --要生成的SLK文件名

,P_ServerName In VarChar2 --OC4J服务器名

,P_ServerPort In Varchar2 --OC4J端口号

,P_VirualPath In VarChar2 --存盘SLK文件的WEB虚拟路径名

);

--以XLS报表方式输出查询结果,使用查询语句方式

Procedure SP_RunTimeReport

(P_SqlStr In Varchar2 --查询语句

,P_FieldList In VarChar2 --要查询的字段,以“,’分隔

,P_FieldName In VarChar2 --查询结果的标题,应与查询语句对应,以“,”分隔

,P_FieldType In Varchar2 --查询结果的字段类型,以“,”分隔

,P_FieldWidth In VarChar2 --标题宽度,应与查询语句对应,以“,”分隔

,P_SlkFileName In VarChar2 --要生成的SLK文件名

,P_ServerName In VarChar2 --OC4J服务器名

,P_ServerPort In Varchar2 --OC4J端口号

,P_VirualPath In VarChar2 --存盘SLK文件的WEB虚拟路径名

);

--以XLS报表方式输出查询结果,使用数据源语句方式

Procedure SP_RuntimeReport

(P_DataSourceName In VarChar2 --查询的数据源名称<可以是视图或数据表 designtimesp=13530>

,P_FieldList In VarChar2 --要查询的字段,以“,’分隔

,P_FieldName In VarChar2 --查询结果的标题,应与查询语句对应,以“,”分隔

,P_FieldWidth In VarChar2 --标题宽度,应与查询语句对应,以“,”分隔

,P_WhereStr In VarChar2 --查询条件

,P_OrderBy In VarChar2 --排序

,P_SlkFileName In VarChar2 --要生成的SLK文件名

,P_ServerName In VarChar2 --OC4J服务器名

,P_ServerPort In Varchar2 --OC4J端口号

,P_VirualPath In VarChar2 --存盘SLK文件的WEB虚拟路径名

);

2.2 调用说明

调用参数分为两类

2.2.1 数据参数

需要传入的参数中,包括指定数据源名称、需要在报表中显示的字段以及相应中文名称、中文、宽度;

2.2.2 SLK文件调用参数

需要传入的参数中,包括调用SLK文件需要的WEB服务器名、端口与,以及虚拟路径名

2.3 待完善的功能

2.3.1 目前关于数据参数仍有较多的配置项,有些可能可以简化, 如宽度设定、中文名设定<在FORM中,我使用Get_item_Property不能获得数据项的LABEL.... designtimesp=13553>等等,由于时间关系,目前将未明确可以程序自动实现的功能,全部使用参数传递方式。

2.3.2 排版功能较弱,较为重要的排版功能目前没有,如:合并单元格、页面设置、分页符...等。可能需要对SLK参数进行进一步的了解,目前对SLK参数的理解是基于将Excel转存为SLK,再通过阅读SLK代码获得。

2.3.3 目前没有对正要生成的SLK文件是否存在冲突以及存盘的目录是否合法进行判定和处理。

-------------------------------------------------------------

3 代码<考虑许多同仁没有安装DS9i,所以将源代码贴上,以方便大家

-------------------------------------------------------------

PACKAGE Fmp_System_RuntimeReport IS

--以XLS报表方式输出查询结果,使用数据块语句方式,使用轮询方式,速度可能较慢

Procedure SP_RuntimeReport

(P_BlockName In VarChar2 --查询的数据块名称

,P_FieldList In VarChar2 --要查询的字段,以“,’分隔

,P_FieldTitleList In VarChar2 --要查询的字段名称,以“,’分隔

,P_SlkFileName In VarChar2 --要生成的SLK文件名

,P_ServerName In VarChar2 --OC4J服务器名

,P_ServerPort In Varchar2 --OC4J端口号

,P_VirualPath In VarChar2 --存盘SLK文件的WEB虚拟路径名

);

--以XLS报表方式输出查询结果,使用查询语句方式

Procedure SP_RunTimeReport

(P_SqlStr In Varchar2 --查询语句

,P_FieldList In VarChar2 --要查询的字段,以“,’分隔

,P_FieldName In VarChar2 --查询结果的标题,应与查询语句对应,以“,”分隔

,P_FieldType In Varchar2 --查询结果的字段类型,以“,”分隔

,P_FieldWidth In VarChar2 --标题宽度,应与查询语句对应,以“,”分隔

,P_SlkFileName In VarChar2 --要生成的SLK文件名

,P_ServerName In VarChar2 --OC4J服务器名

,P_ServerPort In Varchar2 --OC4J端口号

,P_VirualPath In VarChar2 --存盘SLK文件的WEB虚拟路径名

);

--以XLS报表方式输出查询结果,使用数据源语句方式

Procedure SP_RuntimeReport

(P_DataSourceName In VarChar2 --查询的数据源名称<可以是视图或数据表 designtimesp=13585>

,P_FieldList In VarChar2 --要查询的字段,以“,’分隔

,P_FieldName In VarChar2 --查询结果的标题,应与查询语句对应,以“,”分隔

,P_FieldWidth In VarChar2 --标题宽度,应与查询语句对应,以“,”分隔

,P_WhereStr In VarChar2 --查询条件

,P_OrderBy In VarChar2 --排序

,P_SlkFileName In VarChar2 --要生成的SLK文件名

,P_ServerName In VarChar2 --OC4J服务器名

,P_ServerPort In Varchar2 --OC4J端口号

,P_VirualPath In VarChar2 --存盘SLK文件的WEB虚拟路径名

);

--创建报表标题,从前台FORM数据块创建

Procedure SP_CreateReportTitle

(P_SlkFile In Text_Io.File_Type --SLK文件对象

,P_BlockName In VarChar2 --查询的数据源名称<可以是视图或数据表 designtimesp=13600>

,P_FieldList In VarChar2 --要生成报表的字段列表

,P_FieldTitleList In VarChar2 --要返回至报表的字段名称,以“,”分隔

,P_FieldWidthType In Number --字段宽度设定方式,值表:0->不设定字段宽度;1->根据数据顶设定字段宽度

);

--创建报表标题,根据用户设定创建

Procedure SP_CreateReportTitle

(P_SlkFile In Text_Io.File_Type --SLK文件对象

,P_FieldNameList In VarChar2 --标题名

,P_FieldWidthList In VarChar2 --标题宽度,应与查询语句对应,以“,”分隔

);

--创建报表标题,从后台数据库对象创建

Procedure SP_CreateReportTitle

(P_SlkFile In Text_Io.File_Type --SLK文件对象

,P_DataSourceName In VarChar2 --数据源名

,P_FieldWidthType In Number --字段宽度设定方式,值表:0->不设定字段宽度;1->根据数据源设定字段宽度;

);

--将数据导入至SLK

Procedure SP_ImportDataToSlk

(P_SlkFile In Out Text_Io.File_Type --Slk文件对象

,P_GetTypeObject In VarChar2 --查询字段类型标识,若数据源是BLOCK->数据块名;若数据源是SQL->字段类型列表;若数据源是数据库对象->数据库对象名

,P_GroupName In Varchar2 --记录组名称

,P_FieldList In VarChar2 --要查询的字段,以“,’分隔

,P_DataSourceType In Varchar2:='Block' --查询方式,值表为:Block数据块;

SQL查询语句;DBObject数据库对象

);

--获取字段类型

Function FN_GetFieldType

(P_BlockName In VarChar2 --数据块名称

,P_ItemName In Varchar2 --数据项名称

)

Return VarChar2; --返回字段类型,一般为“CHAR”字符型;“NUMBER”数值型;“DATE”日期型

--获取字段类型

Function FN_GetFieldType

(P_DataSourceName In VarChar2 --数据库对象名称,可以是视图也可以是数据表

,P_FieldName In Varchar2 --字段名称

,P_DataSourceType In VarChar2 --数据库对象类型,值表为:“VIEW”或“TABLE”

)

Return VarChar2; --返回字段类型,一般为“CHAR”字符型;“NUMBER”数值型;“DATE”日期型

-------------------------------------

--设置创建SLK文件--------------------

-------------------------------------

Procedure SP_CreateSlkFile

(P_SlkFile In Out Text_Io.File_Type --SLK文件对象

,P_FileName In VarChar2 --要创建的文件名

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有