一种报表系统自定义函数的实现方法技术方案

技术编号:11213694 阅读:82 留言:0更新日期:2015-03-27 00:16
本发明专利技术公开了报表系统自定义函数实现方法,包括以下步骤:步骤1):自定义函数及参数登记;步骤2):自定义函数相关存储过程创建;步骤3):在报表中使用自定义函数;步骤4):识别报表中的自定义函数;步骤5):自定义函数参数列表中变量识别与替换;步骤6):准备参数并调用自定义函数关联存储过程;步骤7):执行自定义函数关联存储过程并返回结果;步骤8):接收自定义函数关联存储过程返回结果并应用到报表中。本发明专利技术创建自定义函数的技术门槛较低,报表用户只需要熟悉存储过程的设计就可以创建自定义函数,只要在设计器中登记了自定义函数的名称和参数信息并提交及在数据库中创建了关联存储过程就完成了自定义函数的创建及部署。

【技术实现步骤摘要】

本专利技术涉及计算机软件应用领域,尤其涉及。
技术介绍
自定义函数功能是商业报表系统的重要功能之一,它允许报表设计者或报表用户将格式转换函数及业务处理逻辑包装为函数的形式供设计报表时使用,实现代码重用及特定应用领域的特色需求。 报表是企业应用软件必不可少的部分,为了方便报表的开发,各类报表开发系统中都提供了一定数量的系统函数以完成一些通用的功能,如数学处理、字符串处理、日期格式转换等。但在实际应用中,根据应用领域的具体需要,报表设计者还需要经常用到一些系统函数中没有的功能,如特定格式的日期格式转换或数字格式转换,以及与应用业务逻辑相关的处理功能,这些功能就需要报表设计者自行设计成自定义函数供其反复使用。 在当前主流的商业报表系统中,大多提供了设计自定义函数的方法。微软公司乂18皿1 31:11(110集成开发环境中的水晶报表(0781:211系统中,提供了自定义函数编辑器供用户设计自定义函数,设计完成后可以发布到报表系统的储备库中与所有其他设计者共享使用。水晶报表自定义函数设计及发布都比较简单,但需要使用71%从8…X或水晶报表专用的编程语言编写,而且对代码功能有诸多限制,如在自定义函数中不能使用报表或数据库字段,这极大地限制了自定义函数的应用范围。 润乾报表系统、杰表报表系统及乂5报表平台都是以獅语言开发呢8报表的解析引擎,因此,它们均要求自定义函数使用从V八语言开发,其配置使用也要按照一定的规则对配置文件进行编辑。例如在润乾报表系统中添加一个自定义函数的流程如下: 1、编写自定义函数的类,继承 00111.1110(161.6X^1-0881011.这个类。 2、在的类路径的目录下,找到1:168 文件,并在其中进行自定义函数类及函数名的登记。 3、在设计器端,将文件复制到 \01681即61~\界613\126~1^?\0188868\0011?1^ 下,将类文件复制到下,有包名的,相应的建包路径。 4、在 16)3 端,将1:168 文件复制到126~1^?\0188868\0011?1^ 下,将类文件复制到下,有包名的,相应的建包路径。 5、重启设计器。 6、在设计器中运用自定义函数。 上述自定义函数实现方法优点是功能强大,可以充分利用从V八编程语言提供的编程能力,对用户的格式转换功能及业务逻辑处理功能都比较容易实现。 还有一种自定义函数的实现方案可以简单地设计和应用自定义函数【1】。在此方案中,自定义函数用四元组?皿=(自定义函数名,3亂查询语句,输入参数个数,输出参数个数丨定义,函数的功能由其中的3亂查询语句实现,报表用户只需编写此3亂查询语句,无需使用其他的编程语言。上述自定义函数四元组都确定后,就可提交到数据库,供其他报表用户共享使用。使用时可以像系统函数一样嵌入在表达式中。此方案的自定义函数解析过程如下: 1、包含自定义函数的表达式中的变量识别与替换,所有变量都替换为具体的值,为自定义函数求值做准备。 2、识别表达式中的自定义函数。 3、通过数据库中存储的用户自定义函数函数名,查到对应的3亂查询语句及参数个数信息与取得的变量个数进行比较,以验证变量定义个数是否正确。 4、用表达式中的自定义函数的实际参数值替换查询语句中的参数变量。 5、执行上一步经变量替换后的查询语句,得到返回值,即作为自定义函数的求值结果替换其在表达式中的出现。 对于润乾报表系统、杰表报表系统及乂5报表平台等基于雜的自定义函数实现方法,其主要缺点在于: 创建自定义函数的技术门槛较高。各种报表系统在设计自定义函数时都要求用户使用指定的编程语言并按规定的格式编码,需要数据库操作的自定义函数还要掌握301编程。 自定义函数的部署复杂,在自定义函数较多时工作量大且易出错。 对于以四元组[1111=(自定义函数名,3亂查询语句,输入参数个数,输出参数个数丨实现的自定义函数方案,其主要不足在于功能受限,自定义函数执行及结果获取都是通过3亂查询语句实现的,难以实现包含业务逻辑规则的自定义函数功能。此外它还有效率低的缺点,即每次执行3亂查询语句数据库服务器都需要对其进行语法检查。 综合分析当前各主流报表系统的自定义函数功能实现,发现存在如下问题: 创建自定义函数的技术门槛较高。各种报表系统在设计自定义函数时都要求用户使用指定的编程语言并按规定的格式编码,需要数据库操作的自定义函数还要掌握301编程。这意味着普通的报表设计者和用户可能需要学习一门新的编程语言及其开发工具以设计自定义函数。 自定义函数的部署复杂。在各种报表系统的自定义函数部署过程中,通常涉及到多个文件的创建与编辑,并要将其放入指定文件路径下,有些报表系统还需要重新启动设计器以让自定义函数生效,过程复杂,在自定义函数较多时工作量大且易出错。
技术实现思路
本专利技术目的在于提供一种以较低的技术门槛及简单的部署方式以解决
技术介绍
提及的技术问题的报表系统自定义函数实现方法。 本专利技术提供的技术方案是:一种报表系统自定义函数实现方法,包括以下步骤: 步骤1):自定义函数及参数登记。此步骤在报表设计器的功能界面上完成。报表设计者需提供自定义函数的名字、参数数目及每个参数的参数名及其描述,然后提交到系统数据库即可完成登记过程。报表系统函数用前缀丨识别,而自定义函数用前缀识别,如一个函数若形如,则是系统函数,若形如$$1^从:0,则是自定义函数。此增加前缀的函数命名方法有利于区分普通带括号表达式、系统函数及自定义函数。 步骤2):自定义函数相关存储过程创建。此步骤在数据库管理系统中完成。所有自定义函数的功能都由其相关的存储过程实现。自定义函数相关存储过程的名字为自定义函数名字去掉前缀而得到,如自定义函数名为$$11171?% 0,则其关联存储过程名为 这种函数名与存储过程名的相关定义方法保证了解析自定义函数时可以直接从自定义函数名得到其相关存储过程名,而无需从数据库中检索。所有自定义函数相关存储过程的参数列表采用统一格式,不管自定义函数包含多少个参数,但其相关存储过程均只包含一个输入参数和一个输出参数,输入参数用于向存储过程传递参数值,若自定义函数有多个参数,则此多个参数被组合在一起传递至输入参数,输出参数用于返回存储过程执行结果。自定义函数相关存储过程中的处理逻辑包含如下步骤:八)接收输入参数,将组合在一起的多个参数分解成单个参数出)对每个参数进行类型转换,转换成需要的数据类型;0执行自定义函数的处理逻辑山)将执行结果设置到输出参数并返回。 步骤3):在报表中使用自定义函数。此步骤在报表设计器中完成。在报表中使用自定义函数比较简单,按照其在步骤1中定义的格式单独使用或用在表达式中即可。 步骤4):识别报表中的自定义函数。此步骤在报表解析与创建引擎中完成。在报表表达式解析求值过程中,根据自定义函数命名的前缀命名规则,识别其中的自定义函数,提取出来准备解析。 步骤5):自定义函数参数列表中变量识别与替换。此步骤在报表解析与创建引擎中完成。步骤4提取出的自定义函数的参数列表中,可能包含变量、常量及其他函数。本步骤包括如下子步骤:对其中的变量及其他函数进行识别;求取参数中变量的实际值,本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/201410722935.html" title="一种报表系统自定义函数的实现方法原文来自X技术">报表系统自定义函数的实现方法</a>

【技术保护点】
一种报表系统自定义函数实现方法,其特征在于,包括以下步骤:步骤1):自定义函数及参数登记;在报表设计器的功能界面上,报表设计者提供自定义函数的名字、参数数目及每个参数的参数名及其描述,然后提交到系统数据库;自定义函数用前缀$$识别;步骤2):自定义函数相关存储过程创建;在数据库管理系统中,所有自定义函数的功能都由其相关的存储过程实现;自定义函数相关存储过程的名字为自定义函数名字去掉前缀$$而得到;所有自定义函数相关存储过程的参数列表采用统一格式;相关存储过程均只包含一个输入参数和一个输出参数,输入参数用于向存储过程传递参数值,若自定义函数有多个参数,则此多个参数被组合在一起传递至输入参数,输出参数用于返回存储过程执行结果;步骤3):在报表中使用自定义函数;在报表设计器中,按照自定义函数在步骤1中定义的格式单独使用或用在表达式中;步骤4):识别报表中的自定义函数;在报表表达式解析求值过程中,根据自定义函数命名的前缀命名规则,识别其中的自定义函数,提取出来准备解析;步骤5):自定义函数参数列表中变量识别与替换;步骤4)提取出的自定义函数的参数列表中,对其中的变量及其它函数进行识别;求取参数中变量的实际值,对参数中的函数进行计算得到结果值;用参数变量的实际值替换其在参数列表中的出现,用参数中函数的执行结果值替换其在参数列表中的出现;经过上述步骤,自定义函数的参数列表中仅包含常量;步骤6):准备参数并调用自定义函数关联存储过程;包括如下步骤:准备自定义函数关联存储过程的输入参数,将步骤5)中得到的只含常量的参数表去掉前后的括号,赋值给输入参数;设置自定义函数关联存储过程的输出参数;去掉自定义函数名的前缀”$$”,作为存储过程名;使用存储过程名及参数设置数据库访问组件,提交存储过程到数据库服务器执行;步骤7):执行自定义函数关联存储过程并返回结果;步骤8):接收自定义函数关联存储过程返回结果并应用到报表中。...

【技术特征摘要】
1.一种报表系统自定义函数实现方法,其特征在于,包括以下步骤: 步骤I):自定义函数及参数登记;在报表设计器的功能界面上,报表设计者提供自定义函数的名字、参数数目及每个参数的参数名及其描述,然后提交到系统数据库;自定义函数用前缀$$识别; 步骤2):自定义函数相关存储过程创建;在数据库管理系统中,所有自定义函数的功能都由其相关的存储过程实现;自定义函数相关存储过程的名字为自定义函数名字去掉前缀$$而得到;所有自定义函数相关存储过程的参数列表采用统一格式;相关存储过程均只包含一个输入参数和一个输出参数,输入参数用于向存储过程传递参数值,若自定义函数有多个参数,则此多个参数被组合在一起传递至输入参数,输出参数用于返回存储过程执行结果; 步骤3):在报表中使用自定义函数;在报表设计器中,按照自定义函数在步骤I中定义的格式单独使用或用在表达式中; 步骤4):识别报表中的自定义函数;在报表表达式解析求值过程中,根据自定义函数命名的前缀命名规则,识别其中的自定义函数,提取出来准备解析; 步骤5):自定义函数参数列表中变量识别与替换;步骤4)提取出的自定义函数的参数列表中,对其中的变量...

【专利技术属性】
技术研发人员:聂作先王平阳张顺淼杨海燕
申请(专利权)人:福建工程学院
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1