一种实时修改客户端数据报表的方法

文档序号:6378174阅读:195来源:国知局
专利名称:一种实时修改客户端数据报表的方法
技术领域
本发明涉及网络数据的处理技术,尤指通过在服务器端(Server)数据的配置而实现的客户端(Client)数据报表自动实时修改的方法。
背景技术
现有的报表实现方法主要有两种Client端报表固定配置方法和Client端报表自行配置方法。
Client端报表固定配置方法,通过在Client端提供固定的一些配置好的报表模板,Client端程序通过读取这些报表模板,然后根据报表模板的数据项配置,连接到Server端取得数据填充到报表模板中生成最终显示出来的报表。
这种实现方法有以下缺陷1、报表的种类依赖于系统开发初期的报表设计,如果Client端开发时没有考虑到该报表,则该报表无法实现。
2、报表数据的显示格式、控制权限都是开发初期就定死的,在系统使用时不能进行修改。
Client端报表自行配置方法,通过在Client端提供一个报表编辑器,编辑器提供了用户可见的报表统计数据项,由用户自行通过报表编辑器编辑生成报表。
这种实现方法有以下缺陷1、自行进行报表的编辑对Client端用户的要求过高,Client端用户不可能全部对系统的数据项有很多的了解。
2、报表数据项的正确性无法得到很好的保证,因为统计数据项自行编辑,没有经过验证,且报表的格式无法统一。
3、不能控制Client端报表的权限,Client端用户可自行编辑自己的报表,这些报表的权限均无法控制。

发明内容
本发明提供一种通过服务器端数据配置实时修改客户端数据报表的方法,实现对表报格式及权限的统一管理。
本发明的方法,包括下列步骤A)在服务器端进行报表配置;B)客户端通过调用服务器端的应用程序接口函数(API函数),取得自身在服务器端有使用权限的数据报表。
所述步骤A)包括在服务器端数据库建立报表的配置数据表,该报表的配置数据表包括报表基本信息表和报表参数表。
所述报表基本信息表至少包括有报表ID、报表名称、报表权限和报表类别字段;所述报表参数表至少包括有报表参数ID、报表参数名、报表参数关联的报表ID和参数数据类型字段。
所述步骤B)中客户端调用服务器端API函数是通过其API接口调用控件来实现的。
所述步骤B)更包括如下步骤B1)客户端登录服务器端后,向服务器端发出请求报表的类别信息,服务器端返回该客户有权使用的报表类别信息并显示于客户端的显示界面上;B2)客户端向服务器端发出请求某类别下的报表信息,服务器端返回该客户有权使用的报表信息并显示于客户端的显示界面上;B3)客户端向服务器端发出请求某报表的输入参数信息,服务器端返回该客户有权使用的输入参数信息并在客户端的显示界面上构建一输入参数的输入界面,以供使用者输入相关参数;
B4)客户端将输入参数传递给服务器端同时向服务器端发出请求报表结果的信息,服务器端根据客户端的输入参数返回该报表的结果信息并显示于客户端的显示界面上。
上述方法中当客户端登录服务器端后,从服务器端得到一唯一ID,客户端每次发出请求信息时,都将该唯一的ID传递给服务器端。
所述客户端有使用权限的数据报表可通过服务器端的报表配置进行设定或动态修改。
本发明方法具有如下优点1、通过服务器端的数据配置可实时更新客户端的报表统计数据项、显示格式和权限。
2、服务器端进行报表修改后,客户端程序无需进行升级即可实时得到修改后的报表。
3、报表数据项的获取、显示经过系统管理员的验证,实现报表的有效管理。


图1为本发明方法中客户端向服务器端请求显示报表的信号交互过程示意图。
具体实施例方式
本发明方法中首先需在服务器(Server)端进行报表配置,因此,在Server端数据库建立报表的配置数据表。
Server端报表的数据配置表详细说明如下(1)tblQueryTable[表含义]报表基本信息表 [QueryID][int]NOT NULL,[QueryName][varchar](500)NOT NULL,[ProcedureName][varchar](50)NOT NULL,[Role][Varchar](50)NOT NULL,[Category][varchar](200)NULL[字段含义]QueryID报表ID。
QueryName报表的名称。
ProcedureName报表需要调用存储过程名。
Role报表的权限列表。
Category报表的类别。
(2)tblQueryParamTable[表含义]报表参数表[表结构][ParamID][int]IDENTITY(0,1)NOT NULL,[ParamName][varchar](200)NOT NULL,[ParamSerialNo][int]NOT NULL,[QueryID][int]NOT NULL,[ParamTyPe][int]NOT NULL,[InnerIDType][int]NOT NULL,[IsAppClientID][bit]NOT NULL,[IsOutIDType][bit]NOT NULL,[InnerParamType][int]NOT NULL,[SQL][varchar](512)NULL,[ValueType][int]NOT NULL,[ValueLen][int]NOT NULL, [varchar](50)NOT NULL[字段含义]ParamID报表参数ID。
ParamName报表参数名。
ParamSerialNo报表参数的顺序号。
QueryID参数关联的报表ID。
ParamType参数数据类型。
InnerIDType内部常量ID号。
InnerParamType内部常量类型。
SQL参数从数据库取出列表所检索用的SQL语句。
ValueType对报表对应的存储过程输入参数的类型。
ValueLen对报表对应的存储过程输入参数的长度。
ValueParamName对报表对应的存储过程输入参数的参数名。
使用上述这两个报表的配置表,Server端就可以给Client端提供报表。
Server端为Client端提供的应用程序接口函数(API函数)详细说明如下(1)GetQueryCategory[函数含义]得到有权限的报表的类别[函数说明]通过该API函数取得当前用户在Server端有权限的报表的类别,用于Client端的显示,以及进一步获取每个类别下的报表。
function GetQueryCategory(var CategoryNumInteger;var CategoryArrayOLEVariant;var ErrorInfostring)Integer;[参数说明]
CategoryNum返回Client端当前用户有权限的报表类别的个数。
CategoryArray返回Client端当前用户有权限的报表类别的类别名数组。
ErrorInfo该函数执行失败时的错误信息。
整型,返回0表示成功,否则为错误号。
(2)GetQueryUnderCategory[函数含义]得到某类别下有权限的报表[函数说明]通过该API函数取得当前用户在某类别下有权限的报表,用于Client端的显示,以及进一步获取每个报表的参数信息。
function GetQueryUnderCategory(Categorystring;var QueryNumInteger;var IDArray,NameArrayOLEVariant;var ErrorInfostring)Integer;[参数说明]Category报表类别名。
QueryNum返回该类别下有权限报表的个数。
IDArray返回该类别下有权限报表的ID数组。
NameArray 返回该类别下有权限报表的报表名数组。
ErrorInfo该函数执行失败时的错误信息。
整型,返回0表示成功,否则为错误号。
(3)GetQueryParamByQueryID 得到某报表的输入参数列表[函数说明]通过该API函数取得当前用户在某报表中需要输入的参数列表,用于Client端报表输入参数的显示,以及进一步获取每个报表的查询结果信息。
function GetQueryParamByQueryID(QueryIDInteger;var ParamNumInteger;var ParamInfoarray of TParamDesc;var ErrorInfostring)Integer;[参数说明]QueryID报表ID。
ParamNum返回该报表输入参数的个数。
ParamInfo返回该报表的输入参数信息的数组。
ErrorInfo该函数执行失败时的错误信息。
整型,返回0表示成功,否则为错误号。
(4)GetQueryDataByQueryID[函数含义]得到某报表的查询结果[函数说明]通过该API函数取得当前用户在某报表中的查询结果,用于Client端报表查询的显示。
function GetQueryDataByQueryID(QueryID,
ParamNumInteger;ParamNameArray,ParamValueArrayOLEVariant;var FieldNum,RecordNumInteger;var FieldNameArray,RecordDataArrayOLEVatiant;var ErrorInfostring)Integer;[参数说明]QueryID报表ID。
ParamNum该报表输入参数的个数。
ParamNameArray该报表输入参数的参数名数组。
ParamValueArray该报表输入参数的参数值数组。
FieldNum返回该报表查询结果集的字段数。
RecordNum返回该报表查询结果集的记录条数。
FieldNameArray返回该报表查询结果集的字段的字段名数组。
RecordDataArray返回该报表查询结果集的记录的记录数组。
ErrorInfo该函数执行失败时的错误信息。
整型,返回0表示成功,否则为错误号。
Client端通过API接口调用控件进行对Server端的上述API函数调用,得到报表信息,就可以显示出报表。
该接口调用控件可通过微软公司的DCOM协议来完成对Server端远程对象、远程方法的调用。
图1所示是Client端显示报表实现的信号交互过程示意图,其信号交互过程如下1、客户端登录服务器端后,向服务器端发出请求报表的类别信息,服务器端返回该客户有权使用的报表类别信息并显示于客户端的显示界面上;2、客户端向服务器端发出请求某类别下的报表信息,服务器端返回该客户有权使用的报表信息并显示于客户端的显示界面上;3、客户端向服务器端发出请求某报表的输入参数信息,服务器端返回该客户有权使用的输入参数信息并在客户端的显示界面上构建一输入参数的输入界面,以供使用者输入相关参数;4、客户端将输入参数传递给服务器端同时向服务器端发出请求报表结果的信息,服务器端根据客户端的输入参数返回该报表的结果信息并显示于客户端的显示界面上。
上述过程中,Client通过输入用户名、密码登录Server后,得到该Client的唯一ID,Client的每个请求调用,都需要将唯一的Client的ID,传递给Server,Server通过数据库中tblQueryTable中Role字段的权限列表,进行用户权限的控制,过滤掉Client无权限的数据。另外,在GetQueryDataByQueryID函数中,Server也可以根据Client不同的权限,返回给Client不同的报表查询结果。这样,通过一种简便的方式,即可实现不同权限的用户,看到不同的报表,不同的报表输入参数,不同的报表查询结果,实现了非常灵活的报表机制。同时,通过在Server的数据库中的tblQueryTable表和tblQueryParamTable表中记录的实时增加、修改,可以方便的实现Client端报表的实时更新。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
1.一种实时修改客户端数据报表的方法,包括下列步骤A)在服务器端进行报表配置;B)客户端通过调用服务器端的应用程序接口函数(API函数),取得自身在服务器端有使用权限的数据报表。
2.如权利要求1所述的实时修改客户端数据报表的方法,其特征在于所述步骤A)包括在服务器端数据库建立报表的配置数据表,该报表的配置数据表包括报表基本信息表和报表参数表。
3.如权利要求2所述的实时修改客户端数据报表的方法,其特征在于所述报表基本信息表至少包括有报表ID、报表名称、报表权限和报表类别字段;所述报表参数表至少包括有报表参数ID、报表参数名、报表参数关联的报表ID和参数数据类型字段。
4.如权利要求1所述的实时修改客户端数据报表的方法,其特征在于所述步骤B)中客户端调用服务器端API函数是通过其API接口调用控件来实现的。
5.如权利要求1所述的实时修改客户端数据报表的方法,其特征在于所述步骤B)更包括如下步骤B1)客户端登录服务器端后,向服务器端发出请求报表的类别信息,服务器端返回该客户有权使用的报表类别信息并显示于客户端的显示界面上;B2)客户端向服务器端发出请求某类别下的报表信息,服务器端返回该客户有权使用的报表信息并显示于客户端的显示界面上;B3)客户端向服务器端发出请求某报表的输入参数信息,服务器端返回该客户有权使用的输入参数信息并在客户端的显示界面上构建一输入参数的输入界面,以供使用者输入相关参数;B4)客户端将输入参数传递给服务器端同时向服务器端发出请求报表结果的信息,服务器端根据客户端的输入参数返回该报表的结果信息并显示于客户端的显示界面上。
6.如权利要求5所述的实时修改客户端数据报表的方法,其特征在于当客户端登录服务器端后,从服务器端得到一唯一ID,客户端每次发出请求信息时,都将该唯一的ID传递给服务器端。
7.如权利要求1所述的实时修改客户端数据报表的方法,其特征在于所述客户端有使用权限的数据报表可通过服务器端的报表配置进行设定或动态修改。
全文摘要
本发明有关一种实时修改客户端数据报表的方法,包括步骤A)在服务器端进行报表配置;B)客户端通过调用服务器端的应用程序接口函数(API函数),取得自身在服务器端有使用权限的数据报表。本发明通过服务器端的数据配置可实时更新客户端的报表统计数据项、显示格式和权限;服务器端进行报表修改后,客户端程序无需进行升级即可实时得到修改后的报表。
文档编号G06F17/00GK1591392SQ0315619
公开日2005年3月9日 申请日期2003年9月4日 优先权日2003年9月4日
发明者戎兵, 刘小刚 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1