报表开发

2024-06-04

报表开发(通用8篇)

报表开发 篇1

0 引言

报表是企业数据的汇总,它对企业的各个部门领导的决策,起着指导性的作用。因此必须要保证报表数据来源地准确性、数据处理的合理性、数据输出的规则性。但是往往企业报表的数据来源杂乱、处理方式多变、输出形式多样。给报表开发带来了诸多的难题。

煤矿企业内部部门繁多,所涉及到的生产报表有事故报表、罚款报表、入丼人数统计报表、调度主任值班日统计报表等,自然是种类繁多、结构复杂。毫无疑问报表系统开发是煤矿信息化系统中具有相当大挑战性的子系统。本文为了解决这个问题。采用了当今最流行的.NET平台的B/S构架。应用Visual studio 2008和SQL Server等工具进行开发,糅合了ASP.NET、C#、HTML(HyperText Mark-up Language)、JavaScript[1]、SQL,并使它们完美结合,达到了技术最优化程度。按照煤矿企业的需求,成功地开发出了用户界面友好、运行效率高效的报表系统这一子系统。为煤矿企业管理提供了最及时、最准确、最大价值的数据支撑。

1 关键技术

B/S构架[2]:即浏览器/服务器(Browser/Server)结构,是随着TNTERNER技术的兴起,对C/S结构的一种变化或者改进的结构,在这种结构下,用户工作界面是通过WWW浏览器来实现与服务器的交互,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大降低了对客户端计算机的要求,减轻了系统维护与升级的成本和工作量。

.NET平台[3,4]:是微软公司发布的新一代的系统、服务和编程平台,它独立于任何特定的语言或者平台,是一个新的运行库环境和一个全面的基类库,为我们定位、加载和管理.NET类型,同时也负责大量底层细节的工作,如内存管理、安全检查等。利用其面向对象语言的强大功能,开发者可迅速创建基于Web的、数据库密集型的应用程序,能够满足应用程序的开发与扩展的需要。

.NET的核心内容之一就搭建第三代互联网平台,这个网络平台将打破不同的上网设备、不同的操作体统、不同的网站,以及各大机构或行业之间的网络障碍,解决网站之间的协同合作问题,最大限度地实现资源共享。

另外,它不要求程序员使用一种特定的语言程序,可以使用多种.NET兼容语言的任意组合来创建一个应用程序,这样一个程序开发团队中的个人可以采用自己最精通的.NET语言,再各自充分利用.NET的性能、测试和完全优化特性,一个团队很容易开发出功能强大和性能可靠的应用程序。

2 报表总体设计及实现

2.1 需求内容

本文开发的单位是平煤十一矿,经过前期的调研和总结,本矿的报表形式一般涉及到表格形式、柱状图形式和饼状图形式。表格形式的报表包括了标题、表头、表体、表尾和所有辅助的说明文字等内容,其中的文字域既有动态文字域(表格中的内容是给定的)又有动态文字域(表格中的内容是编程生产或者是从数据库中读取)[5]。最终要求生成各类Web报表,具体功能:

1.按照角色权限访问数据。

2.各科室数据的录入。

3.生成报表。

4.报表分析。

5.导出、打印报表。

基于以上的功能需求,集成平台的处理框架如下图:

2.1.1 前台设计

此前台界面采用了HTML、ASP.NET、CSS、JavaScript技术,授权用户进入此Web界面后,当前默认的查询条件是当前的年份和月份,用户也可随意按照自己设置的时间进行查询。查询的结果集将会填充进,以TabName命名的自己所编写的table控件中。然后用户可以把查询结果导出、打印。前台实现效果如图3:

2.1.2 标题实现

报表标题中的年份是动态生成的,其它文字都是静态的,但是所要显示的两行文字的字体不同,一行文字居中,另一行文字居右。据此特性在集成开发环境(IDE)中采用了C#语言与HTML语言的组合,核心代码如下:

='black'>"+Time.Year.ToString()+"年"+Time.Month.ToString()+"月生产事故报表"+"

制表:平煤股份十一矿调度室

";实现效果如图4:

2.1.3 表头及表体实现

以下是建表的基本编程函数:

数据添加函数

//数据修改函数

pan)//合并行函数

//合并列函数

表头中的内容是静态不变的,可以通过静态填充实现,并且表头中都是文字性的内容,要实现矿方提供的样式可以通过以上的几个函数与Table的HorizontalAlign属性来实现。

表体中的数据来源于数据库,当用户按照条件查询时,Web服务器从数据库中读取相关数据,在IDE中按照矿方提供的具体公式对数据进行处理,再填充到Table控件中。

2.1.4 数据库设计

数据库的设计是在Server 2000的企业管理器[6]中实现的,通过调研,对此报表的数据来源,设计了三个表分别命名为He_DepManage(部门管理表)、He_Accident(事故管理表)、He_PlanMonth(全矿月计划表)。表中的设计如下面三张图:

在Web服务器与数据库的交互中,在Server中使用了用来完成特定数据读取的SQL语句集,也就是存储过程[6]。这些语句集经编译和优化后存储在数据库服务器中,用户通过指定存储过程的名称并给出参数(如果该存储过程带有参数)调用即可。大大增强了SQL语言的功能、效率及灵活性。同时可以将复杂的任务划分为多个简单的商业逻辑。

综合以上的综述,一张完整的并且按照矿方需求的生产事故罚款报表就成功开发出,Web效果图如图8:

2.2 具体实现

因为开发过程中所涉及到的报表数目过多,本文就生产事故罚款报表作为讲述对象,图2是矿方提供的一张原始生产事故罚款报表。

矿方要求此表的整体形式不表,只是在责任单位一列中作动态合并,年份用YYYY年MM月形式显示。

3 报表分析

为了让此报表中的数据转变为更高价值的信息知识,对此报表中的数据进行了分析,采用了折线图[4]形式展现出来。通过分析折线图,矿方管理人员可直观的发现问题所在,对下一步的指导生产、消除安全隐患、提高生产安全系数都有着指导性的作用。图9是分析折线图:

4 结论

开发过程中采用的简单化、模块化编程思想,具有通用性,使得开发人员的主要精力投入到客户的特定需求上,并提高的了开发速度。开发出的子系统功能具有良好的可定制性,可以满足该矿各类报表的生成。此报表子系统的成功开发,为该矿管理层的优化管理提供了科学的数据依据。同时,也加快了该矿的信息化建设。

参考文献

[1] David Flanagan. JavaScript权威指南(第四版)[M]. 张铭泽. 北京:机械工业出版设,2003.

[2] 朱印宏,苏震魏. ASP.NET+SQL Server网站模块化开发全程实录[M]. 北京:清华大学出版社,2009.

[3] Andrew Troelsen. C#与.NET3.0高级程序设计[M].朱晔,肖逵. 北京:人民邮电出版社,2008.黄智诚,谢静贤,黄恺昕.中文WORD 2000使用指南[]M.北京:中国石化出版社,2000:3060

[4] H.M.Deitel,P.J.Deitel等. C#高级程序员指南[M].周靖. 北京:清华大学出版社,2003.

[5] 吴雷, 袁兆山, 李超. B/S结构下复杂报表实现技术的研究[J]. 计算机应用研究.2005,23(5):83-85.

[6] 李春葆,曾慧. SQL server2000应用系统开发教程[M]. 北京:清华大学出版社,2005.

报表开发 篇2

v.871 1.数据源定义

报表数据源可分为实体关系查询,SQL脚本查询和自定义查询三个类型,如下图所示:

图1.1 其中数据源名称和数据源描述是为了标识数据源以及说明数据源的功能。

1.1查看或修改现有数据源

“查看或修改现有数据源”是指对原先已经创建的数据源进行修改(系统预置的数据源不允许修改),或者可以在新建报表时选择已存在的数据源,如下图:

图1.2 选“下一步”:

图1.3 则列所有已存在的数据源,选择其中一个,按“下一步”:

图1.4 功能列表是数据引擎内部使用机制,直接选“下一步”:

图1.5 这个是设置报表数据源的最后一个步骤,由于选定的数据源为自定义查询类型,所以第一个页签为自定义查询组件的相关信息(关于自定义查询组件的具体情况,请查阅本手册1.3单元);第二个页签如下图:

图1.6 查询结果列是指该数据查询结果的具体情况,包括列名称,列的数据类型,列的区域语言描述。这些信息将构成报表格式设计时的数据源信息(关于这部分内容的详细情况请参阅UAP报表设计时帮助文档)。

另一个页签为“过滤条件设置”,如下图:

图1.7 具体包括过滤条件名称,过滤条件的区域语言描述,这个将在过滤条件的数据源下拉列表中出现,这些信息将用来设置从过滤控件读去用户输入条件值来对查询的结果进行过滤(具体情况清参阅本手册2.2单元)。

之后,选择“完成”即结束数据源定义而进入报表格式定义。

1.2实体关系查询

在图1.1步骤中选定“实体关系查询”,点击“下一步”则进入实体关系查询类型的数据源定义:

图1.8 这里必须要添加至少一个关联实体,点击“添加”,则可选择系统已经定义好的实体:

图1.9

选定实体,然后点击“确定”:

图1.10 点击“下一步”(如果选择了多个实体,则还需要定义实体之间的关系。关于如何定义一个实体以及如何定义实体之间的关系,请参阅数据引擎的相关文档):

图1.11 接着必须添加结果列,即图1.6中的“查询结果列”。点击“添加”:

图1.12 这里弹出的列表为选定的单个实体或多个实体能查询到的所有的结果列的信息。选定需要的查询结果列后,点击“确定”:

图1.13 这个步骤中,“行数据权限”可以用来限制用户查询某些具体行数据的权限(行数据权限的设置以及其他高级功能的使用方法请查阅数据引擎相关文档)。

1.3 SQL脚本查询

在图1.1步骤中选定“SQL脚本查询”,点击“下一步”则进入SQL脚本查询类型的数据源定义:

图1.14 SQL脚本查询类型又分为SQL脚本和存储过程两个类别,可通过第一个页签的左上端的下拉列表中选择相应的类别(具体如何定义两种类别请查阅数据引擎相关文档)。其他三个页签中,“查询结果列”和“过滤条件设置”已经在前面的单元中说明,此处不在详述。其中,这种数据源类型有一个“查询参数设置”页签,如下图:

图1.15 如果脚本类型中选择的是“存储过程”,则此处可以使用“刷新”按钮来获取存储过程所需要的参数;而SQL脚本类型则需要手动填写参数的信息。需要注意的是,参数的名称必须与存储过程或SQL脚本的名称完全一致。运行时查询参数的具体值来源是通过过滤条件获得的,因此查询参数需要和过滤条件绑定在一起(绑定方法请参阅本手册2.2单元)。

1.4 自定义查询

自定义查询是指提供一个COM组件(通常为VB6.0组件)或.NET组件(通常为C#组件)来提供获取数据的方法(SQL脚本,存储过程或数据库临时表)。关于自定义查询组件的建立方法请参阅本手册3.2单元。

在图1.1步骤中选定“自定义查询”,点击“下一步”则进入自定义查询类型的数据源定义:

图1.16 其中数据服务信息指的是自定义组件的相关信息,关于自定义查询组件的建立方法请参阅本手册3.2单元。

2.报表过滤条件

2.1 过滤条件设计

除了UAP本身单独提供了过滤条件的设计工具,报表本身也提供了专门为报表设计过滤条件的快捷方式。以下是报表设计过滤条件的入口:

图 2.1

图 2.2 点击“标准条件”进入过滤条件设计器:

图 2.3

界面说明:

是否支持高级条件:选此项后,在运行时过滤窗口中会出现“高级条件”页签,用于用户自由选择过滤条件的组合。

规则组件:此项定义由过滤控件回调的规则组件类。

是否取消二次开发:此复选项只有在以“U870”项目进入UAP时才会显示,如果被选中,那么以其它项目进入UAP的过滤设计器不能新增和删除过滤条件。

此处可新增或修改一个过滤条件。双击某个已存在的过滤条件,则进入这个条件的修改界面:

图 2.4 界面说明:

语种:设置过滤条件项显示的语种。

中文简体名称:过滤条件项的键值,唯一标识此过滤条件项,不能重复。可以以字母、数字或汉字来命名。

标题:在运行时过滤窗口中显示的文字,支持多语种设置。编辑类型:过滤条件项的类型,分别为文本框、参照、日期、数字、枚举、SQL语句、自定义。

参照ID:当编辑类型选择参照类型后,必须选定一个参照ID。比较符:过滤条件项比较符号。

小数位数:当编辑类型为数字类型时,此选项可以设置小数位数。分组:为过滤条件选定一个分组,在运行时将按照分组来显示过滤条件项。

数据源:为过滤条件项选定数据源,可以下拉选择或直接手工输入。顺序号:指定过滤条件项在运行时显示的位置,如果不输入,将自动产生。

是否常用条件:如果选中,将在运行时显示在“常用”页签中。是否必输:如果选中,在运行时必须输入值,否则会出现提示信息。是否区间条件:如果选中,在运行时将显示为两个输入框组合而成的形式,表示从值1到值2的意思。在运行时,用户选择或输入的不是单值,而表示一个取值范围。

是否多选:如果选中,表示此过滤条件项可以选择多个值。

允许用户修改比较符:如果选中,用户在运行时可以通过滤设功能改变比较符。

作为或条件:如果选中,在运行时将以“或”条件来组合到过滤条件生成的SQL语句中,默认是以“与”条件组合的。

参照返回字段:当编辑类型为参照类型时,此选项表示参照返回的是哪个字段的值。编码对应参照中的主键字段,名称对应参照中的描述字段。也可以手工输入要返回的字段名,一定要与参照中的字段名一致。

默认值、到:设置过滤条件项的默认值,将在运行时自动显示。如果为区间条件,可以设置“到”默认值。

修改界面的第二个页签是过滤条件项窗口枚举:

图 2.5

界面说明:

枚举(aa_enum):指在U861中使用的枚举型,此类型是在AA_Enum数据表中定义的。枚举类型,枚举类型名称,是EnumType字段值。默认显示,在运行时当用户点击下拉按钮后显示的可供选择的项,注意是以“,”分隔的EnumCode字段的值。

枚举类型:指明在Meta库中的MetaEnumDef表中的枚举,对应MetaID字段。

枚举串:如果没有在数据库中预制枚举类型,也可以通过此项输入一个枚举串。格式为“0{#}1{##}A{#}B”,在“{##}”前的为返回值,之后的则为显示值,并且在返回值与显示值中分别以“{#}”分隔。

只能定义以上三种枚举中的一种,否则会出现提示信息。修改界面的第三个页签是过滤条件项窗口SQL语句:

图 2.6

界面说明:

SQL文本框:在SQL文本框中输入SQL语句,可以不用加别名。

标题:在运行时中显示的列标题,标题数量与上面的SQL的字段对应,并用“,”分隔,例如“标题1,标题2”。

返回字段:用此字段的值构成过滤控件返回调用者的过滤SQL语句。显示字段:显示在运行时过滤窗口中的值。

在U870中,SQL语句类型的过滤条件主要为兼容以前版本,所以如果在U870中新建过滤条件时,请不要选用SQL语句类型,而改用参照类型。修改界面的第四个页签是过滤条件项窗口SQL语句:

图 2.7

属性说明:

参照样式:当编辑类型选择为参照类型时,可以指定参照的样式,分别为弹出式和下拉式,默认为弹出式。

关于过滤最后值得特别指出的是,过滤条件之间可控制相互关系,例如两个过滤条件都有参照,则可控制其中一个过滤条件的参照取值范围由另一个过滤条件的取值来决定。此外还存在其他相关控制行为,这些功能都是通过规则组件来实现的。关于规则组件的详细实现,请参阅过滤条件的相关文档。

2.2 过滤条件与数据源的关系

此处主要说明如何把过滤条件跟数据源关联起来,以达到由用户输入来实现查询不同数据的目的。

对于实体关系类型的数据源,只要在过滤条件的基本属性页中选择数据源的相应列就能实现,如下图:

图 2.8 用户就可以在查询报表时进行过滤:

图 2.9

对于SQL脚本类型的数据源,无论是简单的sql脚本类型还是存储过程,都是通过将其参数与过滤条件进行绑定来实现的。如下图:

图 2.10 假如sql脚本或存储过程中有两个参数分别为:@planid和@filterstring,则必须要在“查询参数设置”页签中分别为每一个参数设置其相关信息。然后再设计过滤条件:

图 2.11 此处需要注意的是,“中文简体名称”必须以这样的规则命名:“查询参数设置”的参数为@pram,则“中文简体名称”为parm,两者之间相差一个符号“@”。

需要指出的是虽然SQL脚本可以通过参数来绑定过滤条件,但是过滤条件绑定到参数的同时,还必须为此过滤条件指定一个数据源查询结果列,查询时输入的过滤条件对该返回结果列同样起作用。

对于自定义的数据源的过滤条件绑定与实体关系得数据源相似,但是设计者需要在自定义组件中自己处理由用户输入信息构成的sql串来实现对查询结果的过滤。

3.报表系统API 3.1 自定义报表查询入口

所谓自定义报表查询入口指的是用UAP设计了一张自定义报表,除了默认的查询入口:门户->视图->我的报表->自定义报表,另外为此报表设置单独的菜单节点来进行查询。只要在此节点的点击事件处理函数中调用报表系统的以下接口就可实现:

A.Public Function OpenReport(_ sReportID As String, _ objU8Login As Object, _ Optional subid As String = “", _ Optional rawfilter As Object = Nothing)As Boolean

B.Public Function OpenReportNoneFilterUI(_

sReportID As String, _ objU8Login As Object, _ Optional subid As String = ”", _ Optional rawfilter As Object = Nothing)As Boolean

接口功能及使用说明:

这两个接口是对象ReportService.clsReportManager中的函数;需要引用组件: ReportService.dll UFIDA.U8.UAP.Services.ReportFilterService.tlb 这两个接口的功能是打开一张报表,两个接口的差异在于前者在打开报表之前会先显示过滤界面,而后者不会(例如在使用联查报表的时候有时不需要进行过滤)。此接口在业务组在其需要打开一张报表时调用。

参数介绍: sReportID:

报表的ID,即将要打开的报表标识。objU8Login:

U8的Login对象,注意:这个对象必须是COM封装的Login。subid: 报表所属的子产品号,这个参数是可选的。注意:当指定了此参数,接口会在随后的处理中按照subid[__]sReportID的规则拼接成真正的报表ID。rawfilter:

可选过滤条件对象(UFGeneralFilter.FltSrv或自定义的过滤条件对象),此对象中必须是ISelfFilter(见第四个接口)的一个实现。这个参数通常报表的自定义行为(如联查)时,需要有过滤的情形时会使用到。

至于怎么在U8中设置自己的菜单节点,请参阅U8门户相关文档。

3.2 自定义数据源组件

报表的自定义数据源是指单独写一个组件来提供报表数据,这种数据源实现方法的优点强大的数据处理能力,这是其他类型的数据源所不具备的。实现方法为: 组件中必须实现以下接口: public interface IGetSql { void GetSql(IFilterArgs e);}

接口功能及使用说明:

此接口为报表提供自定义数据源。组件的提供方式为首先提供一个实现IGetSql的组件(COM组件只需有一个声明相同的GetSql函数的类即可),之后将其绑定到报表的数据源(具体方法是请参考本接口示例)。组件的工作方式为报表系统会在展现报表的过程中实例化一个此种类型的对象,通过调用GetSql函数来获取数据源。

参数介绍:

IFilterArgs参数是UFIDA.U8.UAP.Services.ReportFilterService.tlb中的类型,在报表系统调用自定义数据源组件的时通过此参数将组件需要的环境信息传入,而自定义数据源组件则将其处理结果通过此参数返回给报表系统。

IFilterArgs中包含的常用接口: IFilterArgs.login: U8的Login对象

IFilterArgs.RawFilter: 过滤对象

IFilterArgs.DataSource.Type:

组件数据源返回类型,其值与对应类型为 0:SQL脚本 1:存储过程 2:临时表 其默认值为2 IFilterArgs.DataSource.Sql: SQL脚本或临时表名称

IFilterArgs.DataSource.StoreProcName: 存储过程名称 示例:

(1)以下提供一个名为CustomDataSample的vb6.0的dll,此组件中定义一个名为customData.cls类,其代码如下(IFilterArgs的):

Public Sub GetSql(e As IFilterArgs)e.DataSource.sql = “select * from AA_Bank” e.DataSource.Type = 0 End Sub

构造好组件之后,需要将组件绑定到报表的数据源,绑定方法如下:

假设组件名称为:DataEngine.dll,而实现IGetSql的类型名称为:Engine VB6.0组件的绑定方法:(注意:COM需要注册,不要求具体存放目录,一般推荐存放目录为:..U8SOFTufcomsql)

图 2.12

C#组件的绑定方法:(注意:.NET组件不需要注册,但存放目录必须是:..U8SOFTUAP)

图 2.12

3.3 自定义行为组件

自定义行为是指在报表查询结束后,设计者提供额外的功能来进行相关处理,比如联查功能等。方法是实现以下接口:

public interface IExecute { void Execute(IActionArgs e);}

接口功能及使用说明:

此接口用来完成报表自定义行为的业务操作。组件的提供方式与IGetSql接口类似,不同的是其绑定到报表系统的过程(示例将详细说明)。组件的工作方式为在自定义行为绑定到报表系统之后,报表展现界面的右键菜单中将相应的子菜单,触发此子菜单后报表系统将实例化此组件实现IExecute类型的一个对象,并调用此对象上的Execute方法。

参数介绍:

IActionArgs是在进行自定义行为的时候数据交互的媒介,IActionArgs中的常用参数: IActionArgs.ReportID: 当前操作的报表ID IActionArgs.Login: U8的Login对象

IActionArgs.RelateData: 当前报表的相关数据对象,通过此对象中的接口GetData可获得相关的数据

IActionArgs.CurrentColumnName:触发自定义行为时报表所处的焦点行名称

IActionArgs.FltArgs: IFilterArgs对象

自定义行为绑定到报表系统例子:(假设组件名为ExcuteSample,类型名为clsExc,定义方法参考IGetSql的示例)

图 2.13

在报表设计界面点击”自定义行为”的按钮,将打开自定义行为的定义界面:

图 2.14

点击”新增”:

图 2.15

设定ActionClass为”ExcuteSample.clsExc”, Caption为”自定义例子”,点击”确定”即完成绑定操作。

保存之后打开报表,其右键菜单”其他”的子菜单中便出现定义的新菜单,图 2.16

点击此子菜单,便会调用类型clsExc中的Execute方法。3.4 自定义过滤

自定义过滤是指设计者可以自行构造一个过滤组件来实现报表的过滤,而不使用U8自身的过滤控件。实现方法是组建中实现以下接口:

public interface ISelfFilter { void ShowFilter(IFilterArgs e);}

接口功能及使用说明:

为报表提供自定义的过滤条件界面。组件提供方式与前述相关组件类似。组件的工作方式为将实现ISelfFilter的类型的一个实例作为OpenReport或OpenReportNoneFilterUI的第四个参数传入,则在进行报表展现之前,报表系统将会调用此实例的ShowFilter方法,自定义过滤的结果使用e参数返回报表系统。

参数介绍:

IFilterArgs参数请参考IGetSql说明。

自定义过滤组件绑定到报表的方法例子(假设要绑定的组件名为CustomFilter,实现ISelfFilter的类型为clsFilter):

在UAP中”报表定义”窗体的工具栏的”查询条件”按钮中选择”自定义条件”,或在”报表定义”窗体的右键菜单的”查询条件”菜单中选择”自定义条件”,如图:

图 2.17

图 2.18

之后再打开的定义窗体中输入组件信息,如:

图 2.19

报表开发 篇3

一、系统的设计目标

涉农贷款报表处理系统在设计时制定了4大目标:一是提高涉农贷款报表的数据质量, 准确性是系统的首要目标;二是提高报表的编制效率, 将手工编制报表的操作过程用计算机程序自动化处理替代, 提高了涉农贷款报表的编制效率;三是要求系统的安装和操作简单方便, 适合农村合作金融机构基层统计人员使用;四是要求系统具有一定的扩展性, 考虑到与涉农贷款相关的报表较多, 并且各种报表具有一定的相似性, 要求系统在设计时具有一定的扩展性, 以便日后系统的扩展或与其他系统整合。

二、系统的总体设计

涉农贷款报表处理系统是一个典型的基于数据库技术的应用系统。系统以Excel报表为数据源, 采用SQL Server 2000为系统数据库, 经过一系列的数据处理环节, 最终生成农林牧渔业贷款统计表、农户贷款情况统计表、农村企业及各类组织贷款情况统计表、城市企业及各类组织贷款情况统计表和涉农贷款汇总统计表等5个涉农贷款统计报表。

(一) 系统的功能模块划分

根据业务需要, 可将系统划分为系统维护模块、报表校验模块以及报表生成模块等3个模块。

系统维护模块, 主要用于系统基础信息的浏览、添加、删除和修改等功能;报表校验模块, 主要负责对报表的校验以及对出错记录的处理;报表生成模块, 主要负责生成5个报表。

系统的功能模块划分如图1所示。

(二) 数据处理流程设计

涉农贷款报表处理系统的输入文件是符合一定规范性的Excel报表文件, 经过一系列处理, 最终输出生成的是5张报表。数据处理的详细流程如下所述。

1. 首次使用需对系统进行维护, 填充基本信息

这些基础信息是系统正常工作的必要条件, 包括本单位信息管理、下属单位信息管理以及规则表的管理。

2. 对上报文件进行校验

包括数据格式规范性校验和业务逻辑规则校验。数据规范性是指报表中相关项的填写是否符合本系统的要求, 包括报送文件的文件名格式、台账所在的工作表位置、台账记录起始位置等。业务逻辑校验是待校验报表中相关字段之间的制约关系。校验过程中如果有错误, 则不允许进行下一步操作, 直至所有台账记录都符合业务逻辑要求。

3. 合并台账

对上级机构来说, 在校验完毕后, 需要对辖内下级机构上报的数据文件进行合并, 以方便后续的汇总处理。

4. 生成报表

本步骤是系统处理的关键步骤, 主要是负责生成5个涉农贷款报表。

5. 打印报表

将生成的数据写到固定格式的Excel表中, 并显示出来。

(三) 数据库设计

根据系统的设计, 系统数据库由本单位信息表、下属单位信息表、规则表、机构代码表、标准表、汇总表、错误记录表等7个数据表组成。这些数据表存放系统正常运行时的各种信息, 利用SQL语句的强大数据处理功能来对数据进行各种处理, 如校验报表、分类筛选数据、汇总生成报表等。

三、系统的主要特点

(一) 上报文件简单

系统接收的待处理源文件是Excel格式的原始台账, 是普通的文件格式, 并且台账内部具有统一的规范格式, 具有数据源统一的特点。

(二) 系统的安装和使用简单方便

系统采用当前流行的语言为程序开发语言, 在安装时不需要安装其他框架。系统使用后, 只需要首次进行系统维护。具体操作时, 只需要经过校验和报表生成2个步骤就可以得到5张报表。

(三) 系统具有规模效应性

当农村合作银行或农村信用联社下辖机构个数越多, 系统所具有的数据处理功能优势越突出, 也越能显示出计算机自动处理相对于手工编制的优越性。

(四) 系统具有可扩展性

系统虽然主要是针对涉农贷款报表开发的, 但由于其原始台账模板是安徽省农村信用联社统一下发的, 并且校验规则和最终待生成的报表模板与程序相独立。因此, 只要提供不同的校验规则和不同的报表模板, 就可以在该系统的基础上生成其他类似的报表。

四、系统的实施效应

涉农贷款报表处理系统于2009年12月开始在滁州市辖区内农村合作金融机构试运行, 赢得了各单位统计人员的一致认可和好评, 获得了良好的效应。

首先, 系统改变了滁州市辖内农村合作金融机构手工编制涉农贷款报表的现状, 提高了涉农贷款数据质量和报表的编制效率。

其次, 系统加深了统计人员对涉农贷款制度的理解。系统将《涉农贷款专项统计制度》的相关要求转化成对应的校验关系, 这要求统计人员填制涉农贷款台账时必须清楚各项目之间的逻辑制约关系, 否则, 台账无法通过校验, 加深了统计人员对涉农贷款制度的理解。

报表开发 篇4

本文要讨论的是,如何利用.NET Framework有关打印的类,对打印输出进行精确及任意的控制。System.Drawing.Printing命名空间中包含各种有关打印及其控制的类,可用于扩展和自定义打印功能。这些类之间的关系比较复杂,为便于叙述和理解,现从打印逻辑、打印设置、页设置和打印预览等四个方面来加以阐述。

1 打印逻辑

打印逻辑指的是,对于要打印的文档,按需要的内容与格式提供编排和分页等基本的打印功能。

本文示例代码的功能是,从Access的数据库db的表People中,读出所有人员的记录,并按图1的格式进行打印或预览。作为示例,人员记录中包含姓名、性别、民族、联系地址和照片文件名等信息。

PrintDocument类,可实现打印逻辑。该类的实例表示要打印的文档,通过它既能输出文字,也能输出图形图像;可以指定文本的字体及颜色,也能指定输出的位置。每当本页结束时还可以视情况激活下一页。

既可以直接使用PrintDocument类,也可以从PrintDocument类派生新类。

1.1 直接使用PrintDocument类

创建PrintDocument对象后,需要将其BeginPrint、PrintPage和EndPrint等事件关联到相应的处理方法,然后调用其Print()方法,即可启动打印作业。如下列代码所示:

PrintDocument pd=new PrintDocument();

pd.BeginPrint+=new PrintEventHandler(pd_BeginPrint);

pd.PrintPage+=new PrintPageEventHandler(pd_PrintPage);

pd.EndPrint+=new PrintEventHandler(pd_EndPrint);

pd.Print();

调用Print()方法,会依次引发事件BeginPrint、PrintPage和EndPrint,正是要利用这三个事件的处理方法来实现打印逻辑。如下所示:

void pd_BeginPrint(object sender,PrintEventArgs e){

//初始设置

}

void pd_PrintPage(object sender,PrintPageEventArgs e){//

//格式化绘制

}

void pd_EndPrint(object sender,PrintEventArgs e){

//释放资源

}

1.2 继承于PrintDocument类

事实上,从PrintDocument派生类是推荐的做法。在派生类中,只要重写基类PrintDocument的OnBeginPrint、OnEndPrint和OnPrintPage方法来实现打印逻辑,而不需要处理BeginPrint、EndPrint和PrintPage等事件。派生代码示例如下:

public class MyPrintDocument:PrintDocument{

//定义新成员

protected override void OnBeginPrint(PrintEventArgs e){

base.OnBeginPrint(e);

//初始设置

}

protected override void OnPrintPage(PrintPageEventArgs e){base.OnPrintPage(e);

base.OnPrintPage(e);

//格式化绘制

}

protected override void OnEndPrint(PrintEventArgs e){base.OnEndPrint(e);

base.OnEndPrint(e);

//释放资源

}

}

可用以下代码启动打印作业:

MyPrintDocument pd=new MyPrintDocument();

pd.Print();

由此,将依次引发调用OnBeginPrint、OnEndPrint和OnPrintPage等方法。

1.3 实现打印逻辑

打印逻辑的实现可分为初始设置、格式化绘制和资源释放等三个阶段。对于PrintDocument基类,要处理三个相关事件;而对于PrintDocument派生类,则要实现三个相关的方法。

1)初始设置

可在BeginPrint事件或OnBeginPrint方法中进行初始化,包括设置文本的格式化对象StringFormat、字体对象Font、访问数据库的ADO.NET相关对象DbConnection、DbCommand及DbDataReader等。示例代码如下:

con.Open();

事件BeginPrint或方法OnBeginPrint,都带有PrintEventArgs类型的参数e,其Cancel属性如果设为true,可用于取消打印作业。一般将其赋值为DbDataReader实例的Read()方法的返回值,表示如果数据记录为空,则立即终止打印。

2)格式化绘制

PrintPage事件或OnPrintPage方法,在生成报表的每一页时都会被引发或调用。应在其中为每页进行绘制,包括文字、图形或图像。关键代码示例如下:

//绘制单元格

e.Graphics.DrawRectangle(Pens.Black,rect);

//绘制从数据库中读取的文字

Font font=new Font("华文行楷",9);

e.Graphics.DrawString(text,font,Brushes.Black,rect,format);

//从数据库中获取图像文件名并绘制其图像到指定区域中

e.Graphics.DrawImage(img,rect);

//读取下一条记录,如果存在则开启下一页

注意:参数e属于PrintPageEventArgs类型,该参数含有很多与打印控制有关的属性,其中最重要的三个属性是:Graphics、MarginBounds和HasMorePages。

属性Graphics引用了一个GDI+对象,它提供了绘制文本、图形和图像等各种绘制方法。比如:方法Graphics.DrawLine用于绘制直线;方法Graphics.DrawRectangle用于绘制矩形;方法Graphics.DrawString用于绘制文本;方法Graphics.DrawImage用于绘制图像。

属性MarginBounds引用一个Rectangle对象,它表示可绘制区域。其Left、Top属性分别表示页上的左边距和顶边距,实际上可作为绘制位置的参考基准。

属性HasMorePages表示还有没有下一页。如果有下一页,应设为true;否则,应设为false。可将该属性赋值为DbDataReader实例的Read()方法的返回值,表示当读取下一条记录时,如果有下一条记录就开始下一页;否则打印结束。

3)释放资源

EndPrint事件或OnEndPrint方法在打印结束时被引发或调用,处理代码如下:

reader.Close();

connection.Close();

用于关闭在BeginPrint事件或OnBeginPrint方法中生成的相关对象,并释放所占用的系统资源。

2 打印设置

PrintDocument类具有PrinterSettings属性,该属性引用一个PrinterSettings类的实例。通过该实例可以对打印机、或对文档总体进行设置。比如,可用PrinterSettings.PrinterName属性来指定要使用的打印机;而使用PrinterSettings.PrintRange属性来指定文档中想要打印的页的范围;使用PrinterSettings.Copies属性来指定想要打印的文档份数。如下列代码所示:

通常,应用程序应该实例化PrintDialog类,它可为用户提供一个打印设置对话框,从而可视化地设置PrinterSettings属性。如下列代码所示:

执行以上代码将弹出打印设置对话框(图2),用户可在其中设置打印机、打印范围以及打印份数。当用户点击【确定】按钮时,则开始打印。

3 页设置

PrintDocument类含有属性DefaultPageSettings,它引用一个PageSettings类的实例。通过该实例可以对页面进行设置,此设置就作为所有页的默认设置。比如,可用PageSettings.Color属性指定是否应用彩色打印,可用PageSettings.Landscape属性指定是横向打印还是纵向打印,而PageSettings.Margins属性指定页边距。如下列代码所示:

通常,应用程序应该实例化PageSetupDialog类,它可为用户提供一个页设置对话框(如图3所示),以方便用户可视化地设置DefaultPageSettings属性。如下列代码所示:

setPage.ShowDialog();

4 打印预览

实例化PrintPreviewDialog类,并设置其Document属性为已定义过打印逻辑的PrintDocument类的实例,即可为其提供预览功能。如下列代码所示:

ppd.ShowDialog();

PrintPreviewDialog对象在内部自动生成了PrintPreviewControl对象,正是该对象实际提供了预览的能力。可通过PrintPreviewControl对象对预览效果进行更多的控制。

弹出的预览对话框,如图4所示。

5 结束语

运行结果表明,基于.NET框架专用报表技术的设计方案正确,按照该方案实现的报表打印功能也是成功的。当然,该方案的目标只是讨论专用报表技术,因此它必须针对特定应用程序进行设计和应用。

与传统报表技术相比,该报表技术性能更好,使用成本很低,可进行精确控制,适用性、灵活性非常强。运用该报表技术,可使应用软件实现结构紧凑、短小精干的目标。该技术可广泛应用在特定行业、特定应用程序上进行专用报表,尤其适用于进行单据、车船机票、发票等凭证的打印。

摘要:针对实际应用中各种报表打印的不同需求和诸多不便,对.NET框架打印控制技术进行了深入研究,分析了有关打印控制的类及其使用方法,结合对数据库中数据的访问,系统地阐述了.NET平台上开发专用报表的打印控制技术。实际运用结果表明,该技术对打印的控制精确灵活,占用系统资源少,也大大节约了应用成本。

关键词:.NET框架,报表打印,打印控制,Printing命名空间,打印逻辑,打印设置,页设置,打印预览

参考文献

[1]Andrew Troelsen.C#与.NET3.5高级程序设计[M].北京:人民邮电出版社,2009.

[2]Microsoft.MSDN文档[EB/OL].http://msdn.microsoft.com/zh-cn/library.

[3]Alex Calvo.利用.NET Printing命名空间从Windows窗体应用程序中进行预览和打印[EB/OL].(2004-12-13).http://msdn.microsoft.com/zhcn/library/aa686055.aspx.

[4]梁亚雄,魏维,韩天明.打印监控中的关键技术研究[J].计算机应用与软件,2012,29(10):314-317.

[5]张胜兰,杨朝阳.一种实现小幅面工程图拼排打印的方法[J].计算机应用与软件,2008,25(9):172-173.

[6]戚玮玮,宋朝辉,宋大雷,等.BS模式下条形码票证自定义打印的设计和实现[J].计算机应用与软件,2010,27(12):170-173.

[7]郭军军,刘刚.一种基于J2EE平台的通用WEB票据打印服务技术[J].计算机应用与软件,2010,27(6):163-164,168.

报表开发 篇5

本期开发支出占本期研究开发项目支出总额的比例_____。

通过公司内部研发形成的无形资产占无形资产期末账面价值的比例______。

公司开发项目的说明, 包括本期发生的单项价值在100万元以上且以评估值为入账依据的, 应披露评估机构名称、评估方法:

然而, 笔者翻阅了2009年度“开发支出”科目期末有余额的220家上市公司的财务报表附注, 发现按照此格式披露的只有23家, 并且部分上市公司对表中“本期开发支出占本期研究开发项目支出总额的比例”的理解不一致。这句话的本意在于披露开发阶段支出占本期R&D支出总额的比例, 本期R&D支出总额为研究阶段支出和开发阶段支出之和。由于没握有单独披露上市公司本期研究阶段支出, 因此据此比例可以倒算出本期R&D支出总额和研究阶段支出。

笔者认为, 证监会提供的《财务报告披露格式》中关于开发支出的附注披露格式未能全面反映上市公司内部研发项目的支出信息。《企业会计准则第6号———无形资产》及其应用指南中都明确要求上市公司应当根据研究与开发项目的实际情况加以判断, 披露“划分公司内部研究开发项目的研究阶段和开发阶段具体标准”, 与此相对应, 应当在报表附注中分研究和开发两个阶段披露研发项目的支出情况。笔者建议可用以下披露格式:

本期开发支出占本期研究开发项目支出总额的比例_____。

通过公司内部研发形成的无形资产占无形资产期末账面价值的比例______。

销售库进销存报表的二次开发 篇6

1.1任务目标

销售库进销存报表二次开发需要对某钢铁企业销售公司的产品库存信息进行统计并以报表的形式显示出来, 要求可以根据需求实时进行查询打印。以上开发要求基于该公司正在运行的销售库管理系统, 功能的实现要求保留原有系统的业务流程、运行环境。

1.2功能规定

销售库进销存报表二次开发需要的实现的功能主要有, 统计查询销售库的进销存情况, 主要处理的数据包括入库合计累计、发出合计累计、当日入库量、当日发出量、当日库存、当日汽车发出量、当日火车发出量、本月累计汽车发出、本月累计火车发出、终判库存量、存车数量。

2数据输入输出

本系统的开发设计是在原有系统正常运行, 不发生变化的基础上进行的, 为了实现功能, 首先要理清数据输入和数据输出。

2.1 输人项

本系统的数据主要来源于码单表 (T_STACK) 该表跟踪记录一个下线板材从一下线直到销售出库到结算过账整个过程的数据, 由于该表字段太多, 在此只列举部分关键词段, 除此以外还需有获取期初库存信息, 该数据从期初库存 (T_STOCK_START) 表中获取。

其中码单单号唯一表示一块成品材, 码单单号=H+年4位+月2位+流水5位, 成品状态0表示下线、1表示待入库 (组吊完成) 、2表示拒收 (拒回热厂) 、3表示退库 (退回热厂) 、4表示已入厂内库 (2182) 、5表示收货后重判、6表示已收货、7表示倒跺在途 (生产库跟销售库之间) 、8表示移库出库 (生产库跟原料库之间) 、9表示已入销售库 (2187|2188) 、10表示已配货、11表示已报车、12表示已出库、13表示已发货上传、14表示已过账、15表示已过账冲销。

2.2输出项

该功能实现的输出项包括入库合计累计、发出合计累计、当日入库量、当日发出量、当日库存、当日汽车发出量、当日火车发出量、本月累计汽车发出、本月累计火车发出、终判库存量、存车数量。这些数据获取后有入销存表 (T_IN_OUT_ON) 接收并作为水晶报表的数据源具体数据信息如下表:

3算法设计与实现

3.1算法描述

报表功能的实现关键是获取T_IN_OUT_ON中字段数据, 在此设定生成2013-3-22 17:00:00的入销存报表, 现将各字段实现的算法描述如下:

1.入库合计累计 (根据入库时间统计得出, 不包含已退库) , 终止时间是设定的当日的结束时间。条件设置为insalestockdate8

2.发出合计累计 (根据出库时间统计得出, 不包含已退库) , 终止时间是设定的当日的结束时间。条件设置为outsalestockdate=12

3.当日入库量=今日的入库合计累计–昨日入库合计累计 (不包含已退库)

4.当日发出量=今日的发出合计累计–昨日发出合计累计 (不包含已退库)

5.当日库存=取系统值 (根据入库时间, 不包含已退库的, 包含未出库的)

6.当日汽车发出量=今日的汽车发出合计累计–昨日的汽车发出合计累计 (不包含已退库) 条件设置为outsalestockdate=12 AND loadtype='01', loadtype='01'表示零提即通过汽车运输。

7.当日火车发出量=今日的火车发出合计累计–昨日的火车发出合计累计 (不包含已退库) 条件设置为outsalestockdate=12 AND loadtype='02', loadtype='02'表示整车即通过火车运输。

8.本月累计汽车发出 (不包含已退库) , 终止时间是设定的当日的结束时间。

9.本月累计火车发出 (不包含已退库) , 终止时间是设定的当日的结束时间。

10.终判库存量入库时间小于设定的当日的终止时间, 且判定结果为协议材和合格和挽救材和可挽救材的未出库 (不包含已退库) 的产品总重。

11.存车数量, 入库时间小于设定的当日的终止时间已报车的产品总重。条件设置为insalestockdate

3.2关键代码

3结束语

原销售库入销存统计数据一直与实际生产销售数据不一致, 通过理清流程、数据关系, 现在系统统计数据已与实际数据一致。

摘要:销售库进销存报表的二次开发基于原有的销售库管理系统, 通过认真梳理数据、分析输入数据与输出数据之间的关系, 最终编写一个较复杂的SQL语句实现了对报表数据的正确获取, 通过测试系统运行正常。

关键词:进销存,报表,SQL语句

参考文献

[1]郑四华, 彭文治, 陈磊.陶瓷企业进销存管理系统的分析与设计[J].景德镇高专学报, 2006 (12) .

报表开发 篇7

为了实现企业集团财务报表合并系统信息化, 本文在甲骨文 (Oracle) 公司提供的财务合并套件FCH (Financial Consolidation Hub) 的基础上, 结合DF企业集团实际需要, 设计了三种对FCH进行扩展开发的客户化财务报表合并系统应用方案, 通过对三种开发方案的优劣进行详细对比, 最后选取FCH+JSP+Excel插件作为一种适合的应用方案。

一、Oracle FCH简介

Oracle FCH是Oracle的电子商务套件 (E-Business Suit, EBS) 子模块, FCH提供基于财务科目的合并处理系统, 即企业集团直接抽取子系统科目的数据实现自行合并, 进而消除基于“报表”合并带来的不利因素。但FCH并不能完全满足国内企业财务管理中财务报表合并的实际需要。基于Oracle FCH的报表合并系统主要是利用Oracle OAF (Oracle Application Framework) 框架, 采用B/S (Browser/Server, 浏览器/服务器) 架构, 嵌入OWC (Office Web Component) 控件, 充分利用Excel已有的报表处理功能, 对Oracle FCH进行客户化开发、扩展和改进来实现的。其特点是开发周期短, 见效较快, 充分考虑最终用户的操作习惯, 能与企业集团的Oracle EBS系统实现深度无缝集成, 具有较好的安全性。

二、客户化开发需求分析

由于FCH提供的是基于财务科目的合并处理方法, 而DF企业集团需要一个包括财务合并及合并报表管理的集成系统, FCH仅提供标准的试算平衡表和基于多维管理分析的EPB (Enterprise Planning and Budgeting) 报表, 各种法定财务报表需要扩展开发, 即需要开发一个报表系统来满足企业集团对报表管理发布的要求。DF企业集团原有的财务系统是通过100多张报表来收集财务信息的, 分为月报、半年报及年报, 而这些报表中只有部分数据可以装进FCH中, 需开发客户化报表数据收集功能模块。DF企业集团是通过报表来提交或收集信息的, 原有系统无法转变为通过科目余额表的方式来填报数据, 需要扩展开发一个报表数据填报功能模块, 并将子公司上报的报表翻译成科目余额表;同时系统需要具有汇总功能、将FCH的结果回写客户化报表功能、数据验证 (包括表内验证、表间验证、历史验证、与FCH科目余额表验证、与关联方交易平台记录验证等) 功能等。客户希望建立一个关联方交易平台, 而FCH本身提供了基于科目余额的内部往来匹配报表, 但无法提供基于明细信息的核对, 因此需开发一个客户化关联方交易平台, 帮助企业集团用户核对往来账目。

在财务报表合并系统客户化工具的选择上主要需考虑以下四个因素: (1) 用户操作界面尽量与原有系统操作方式接近; (2) 系统应具备灵活的可配置性, 企业集团报表的现状是每年都有三分之一的报表模板需要变更, 因此需要提供非常灵活的报表配置功能, 以满足每年年底对报表模板进行及时调整的需要; (3) 与客户有关的开发工具, 要能简便地交付给客户维护; (4) 开发完成的财务报表合并系统与EBS集成, 并提供给用户统一的系统入口和统一的界面风格。

三、系统开发技术方案的选型

目前, 基于Oracle FCH的客户化财务报表合并方案比较可行的有三种: (1) FCH+JSP (Java Server Pages) +XML (Extensible Markup Language——可扩展标记语言) Publisher; (2) FCH+JSP+Excel插件; (3) FCH+NET。

根据客户化财务报表开发需求, 结合Oracle FCH的特点和目前流行的开发语言及工具, 将三种开发技术方案的技术、成本及风险程度列表 (见下页表) 作比较分析, 以作为客户化财务报表合并系统开发方案选型的依据。

上表中各数字的含义为:0表示较低, 1表示一般, 2表示中等, 3表示较大;且数字越小, 表示开发成本较低、风险较小、越符合系统实际开发条件。

1. 技术实现原理难度比较。

方案 (1) 的技术实现原理是通过JSP开发数据上传页面、数据管理页面和报表展示页面等;再通过Excel模板上传数据和通过XML Publisher定义报表;然后将事先设计好的运行程序存放在服务器上, 以供报表展示页面调用;最后在FCH中完成合并抵消计算。方案 (2) 的技术实现原理是通过JSP开发数据管理页面和报表模板定义页面等;再通过嵌在JSP页面中的Excel插件, 用户可以从本地Excel复制报表内容并粘贴到JSP页面中的Excel插件上, 从而实现数据上传;然后通过JSP页面中的Excel可以查看报表并修订更新其中内容;最后在FCH中完成合并抵消计算。方案 (3) 的技术实现原理是将企业集团三级子公司原有的.NET架构拿来单独作为一套报表管理系统, 以实现报表的上传、下载、查阅等功能;然后在数据层实现数据同步, 并且需要将Oracle EBS和.NET集成;最后在FCH中完成合并抵消计算。不过, 这种方案的操作难度较大。

2. 与ORACLE EBS集成难度比较。

方案 (1) 中客户化的JSP和XML Publisher都可以方便地集成在Oracle EBS中;方案 (2) 中客户化的JSP和Excel插件也均可以方便地集成在Oracle EBS中;而方案 (3) 中数据集成存在一定难度, 因为NET是C/S结构的系统, 而Oracle EBS是B/S结构的系统, 应用层的集成存在较大的难度。

3. 系统开发技术难度比较。

方案 (1) 的JSP和XML Publisher都采用Oracle标准开发工具, 开发技术难度一般;方案 (2) 的JSP采用Oracle标准开发工具, 开发技术难度一般, 而Excel插件采用第三方提供的功能, 开发技术难度中等;方案 (3) 开发技术难度一般, 但数据集成和应用集成难度较大。

4. 用户操作难度比较。

方案 (1) 的数据上传和报表展示隔离, 用户不能及时更新报表内容, 交互性较差, 且与用户原有系统所习惯的操作方式存在较大差异, 因此用户操作起来有较大的困难;方案 (2) 用户所上传报表即所见报表, 可以方便地在JSP页面上修改报表并提交, 交互性较好, 且与企业集团三级子公司的原有报表系统操作一致, 故用户操作起来难度较低, 方便用户使用;方案 (3) 的用户所上传报表即所见报表, 可以在界面上直接修改报表内容并提交, 交互性较好, 且与该企业集团三级子公司的原有报表系统操作一致, 故用户操作难度较低, 便于用户操作。

5. 系统的研发成本和周期比较。

方案 (1) 和方案 (2) 的维护工作均需要精通Java的技术人员参与;而方案 (3) 的维护工作不仅需要精通Java的技术人员参与, 而且需要精通、NET的技术人员参与。由于以上三种开发技术方案均需要引进Oracle EBS软件做客户化财务报表研发, 因而它们的研究成本均为中等。三个方案中方案 (1) 和方案 (2) 的开发周期相当, 均比方案 (3) 开发周期相对较短。

6. 实施风险比较。

方案 (1) 的实施风险体现在财务报表合并系统开发阶段, 主要是开发技术试运行风险, 相对较低;方案 (2) 采用非Oracle开发工具的Excel插件技术, 在实施中存在一定的风险, 不过目前该技术攻关已取得突破, 其风险已基本消除, 但开发财务报表合并系统本身还存在一定的风险;方案 (3) 是基于原有的技术方案实施的, 财务报表合并系统本身的风险较低, 但与Oracle EBS集成的风险较大。

根据上述的比较分析, 结合开发技术方案比较表可以看出, 方案 (2) 是当前最佳的客户化财务报表合并系统开发方案, 因此将本系统的技术开发方案定型为方案 (2) 。

四、系统的设计开发

根据客户化需求分析和系统开发技术方案的选型, 企业集团的财务报表合并系统的整体业务流程设计如图1。图中:报表管理平台实现报表的管理发布、报表填报等功能;关联方交易平台实现对企业集团内部往来账目的明细信息进行核对;勾稽数据是对报表管理平台的报表数据与关联方交易平台的报表数据的一致性进行符合性校验, 校验无误后再按照相应的规则输入报表合并中心进行合并处理。

财务报表合并业务的详细流程设计如图2。从图中可以看出, 该业务流程有三个调整: (1) 附表CP (Customers Package———客户数据包或客户工作簿) 调整是指按照母公司的会计政策调整统一合并对象即下属单位之间会计处理方法, 同时使下属单位的会计期间与母公司保持一致; (2) PRC (People's Republic of China——中华人民共和国) 合并调整是按照我国企业会计准则进行合并调整, 以便生成符合我国企业会计准则的合并报表; (3) 附表IFRS调整是按照国际会计准则进行调整, 以生成符合国际会计准则的合并财务报表。

根据财务报表合并业务的详细流程, 可以有效地实现财务报表合并的信息化, 该流程系统采用Oracle 9i做后台数据库, 数据管理页面和报表模板定义页面开发利用JSP这一WEB编程语言实现, 并通过嵌在JSP页面中的Excel插件实现数据上传, 同时运用JSP页面中的Excel可以查看报表, 并修订更新其中内容, FCH子模块可以完成合并抵消计算, 同时设计并开发了基于FCH的客户化财务报表合并系统。

五、结论

财务报表合并业务纷繁复杂, 一直是财会界公认的四大难题之一, 因此财务报表合并的信息化即财务报表合并系统的设计运作就更难了。为了解决这一难题, 理论界和实务界进行了许多探索, 本文提出的FCH+JSP+Excel插件开发方案是吸取前人经验的结果。实践证明, FCH+JSP+Excel插件开发的客户化财务报表合并系统具有较好的应用性, 是目前最佳的客户化财务报表合并系统开发方案。

FCH+JSP+Excel插件客户化财务报表合并系统有明显的优点, 主要是:它设计的程序对企业集团的财务流程进行了重组和优化, 彻底改变了整个公司财务和会计业务信息技术应用的离散化, 实现了财务报表合并和数据管理的集成化和信息化, 显著提高了财务信息资源的开发、共享和利用水平, 较好地满足了财务分析和内部财务控制对财务信息的必要性、准确性、及时性的要求, 进而满足了DF企业集团建立现代信息化财务管理体系的需求。

参考文献

[1].杜超.基于EBS的商业银行人力资源管理系统应用研究.科学咨询, 2010;1

[2].ORACLE.Oracle Financial Consolidation Hub User's Guide for Release 11i, 2007;3

报表开发 篇8

关键词:体育事业,统计报表,指标体系,指数开发

0 引言

发展体育事业需要有全面、客观、可持续的统计指标体系。近年来,随着我国体育事业的快速发展,统计工作逐步与国际接轨,体育界对体育统计工作的关注程度也越来越高。而现行的体育事业统计指标体系相对还比较滞后,需要进一步深化改革,促进发展。

随着中国社会经济和体育事业的快速发展,国际社会对中国体育统计信息也更加关注,需求不断增加,统计数据的质量、完整性、公众可得性也是各国广泛关注的热点问题。

体育事业统计报表制度,现阶段仍是我国统计调查中搜集统计资料的主要方式。一般是在基层统计报表的基础上,各级统计局层层上报,最后由国家体育总局统一汇总。目前的统计内容仅包括体育系统职工、运动员、教练员和裁判员等人数、体育场地数、运动员创世界记录和获世界冠军情况、体育锻炼达标人数以及与国外体育交往次数和人数等。一些能够衡量体育事业发展水平的主要统计指标被遗漏。因此,现有的统计报表体系根本无法全面反映我国体育事业的发展状况。

本文查阅了大量资料,走访了部分省市统计局、体育局的有关专家,对调研结果进行了客观、有效的分析,建立了体育事业统计年报报表指标体系,并针对目前统计年鉴中绝对量指标多,相对量指标少,可比性差的问题,尝试设计了十六个宏观管理指数,希望能改进体育统计数据发布的质量。

1 体育事业统计报表统计数据的现状及存在的问题

1.1 统计收集年报统计数据的现状

各省经济处负责体育事业统计年报报表中大部分数据的收集(从各部门回收)和整理(汇总)。部分数据不明确来源、不清楚出处、不明确界定、不知道分类的,一概不填。一般情况下,有关教练员、运动员、运动成绩、等级运动员、等级裁判员等由竞技处填写。社会指导员、全民健身、中小学体育活动情况由群体处填写。体育从业人员情况由人事处填写。行政事业单位经费收入,出版在年报决算报表,由财务处经济科填写。数据不实情况严重,比如群众体育的数据大多是估计数。这种行政与专有系统及数据真实性、准确性和可靠性大大降低了统计数据作用,直接影响中国体育事业的整体健康发展。

1.2 现行的体育事业统计指标体系存在的突出问题

我们通过对体育部门从事统计工作同志的调查发现,现行体育事业统计报表已经不能满足体育事业快速发展的需求,现行体系中存在的突出问题主要有以下几个方面:

(1)绝对量指标多,相对量指标少,可比性差;

(2)静态指标多,动态指标少,连续性不够;

(3)许多指标被遗漏,体系缺乏完整性;

(4)反映竞技体育成绩的资料过于简单,看不出发展变化情况;

(5)反映群众体育发展规模、质量的数据较少,全民健身的体育调查资料缺乏;

(6)部分指标可读性差,基层填写有一定困难。

另外,统计情报中,失真信息处处可见,统计质量问题逐渐引起了各届人士的广泛关注。因此,只有建立更加客观、合理的体育事业统计报表指标体系,才能适应新形势下统计工作的需求。

1.3 构建新的指标体系的有关要求

群众体育、体育经济的部分指标采用增加值、增长率、百分比等指数较合适。本部门最好不要参与调查,避免受经济利益和政绩的影响。体育统计指标数据应开发出像“国民体质指数”那样的指数,增加每万人拥有量、发展指数等类型的单项指数和综合指数。报表和体育统计年鉴的内容不仅为国家体育局服务,各省体育局也能受益,公布的数据能反映出各省的发展情况。最好有专人负责统计报表工作。裁判最好只统计当年登记的等级人数,两年不注册,取消资格的不好统计。非年报的部分指标,比如几年一次的普查,最好只统计变更情况即可。

2 体育统计年报报表指标体系的建立

体育事业统计年报指标体系,包括基本信息、投入指标、进展指标和产出指标,共四项二级指标(见图1所示)和48项三级指标。

2.1 基本信息

(1)各地区基本情况:优秀运动队数量运动项目开展运动员、教练员数量裁判员数量。

(2)按隶属关系统计单位数量。

(3)按所属关系统计单位数量。

(4)按单位性质和类型统计单位数量。

(5)中小学基本情况:中小学校总数,传统项目学校数,体育教师数量,学生数量,生师比等。

(6)体育院校基本情况:教师数量(分术科、理论课;专职、兼职):在校学生数量(分专业、性别、地区),当年招生人数、毕业人数,研究生人数,博士生数量,每百人本专科、研究生、博士生比重。后勤、管理、科研、医务人员数量。

(7)体育系统从业人员数量:按地区:分类别

(8)社会指导员数量:按地区,按称号,按性别社会合格率指标员数量、性别比。

2.2 投入指标

2.2.1 人力指标

(9)运动员情况:运动员总数,按地区运动员数量,按性别运动员数量,分项目运动员数量,等级运动员数量和构成,按文化程度运动员数量和构成,按在队情况运动员数量,按队别运动员数量,按运动创伤停训经历、百人运动创伤停训指数,参加伤残保险比例、运动员伤残保险保障指数。

(10)教练员情况:教练员总数,按地区教练员数量,按文化程度教练员数量和构成,按性别教练员数量,按年龄组教练员数量,按执教队伍教练员数量和构成,按在队情况教练员数量,按项目教练员数量,各技术职称教练员数量和构成。

(11)裁判员情况:裁判员总数,按地区裁判员数量,按文化程度裁判员数量和构成,按性别裁判员数量,按年龄组裁判员数量,按裁判等级裁判员数量和构成。

2.2.2 财力指标

(12)按隶属关系经费统计。

(13)按地区统计经费。

(14)按本年收入、本年支出、本年结余统计。

(15)各运动队经费投入总量。

(16)体育事业经费分类统计。

(17)体育基本建设支出分地区统计。

(18)体育院校经费收支情况。

2.2.3 物力指标

(19)按地区场地、器材数量。

(20)按隶属关系场地、器材数量。

(21)全民健身活动设施。

2.3 进展指标

(22)等级运动员人数增加值、定基比、增长率:按性别等级运动员数量,按项目等级运动员数量,按地区等级运动员数量,按不同等级运动员数量。

(23)教练员人数增加值、定基比、增长率:按性别教练员数量,按项目教练员数量,按地区教练员数量,按技术职称教练员数量。

(24)输送国家队的人数:按地区输送国家队的人数、等级位数,按性别输送国家队的人数,分项目输送国家队的人数。

(25)入选国家队运动员人数:按地区入选国家队运动员人数,按性别入选国家队运动员人数,分项目入选国家队运动员人数。

(26)运动员受教育情况、平均受教育年限。

(27)体育人口数量、比重、变化率:按地区体育人口数量、等级位数,按性别体育人口数量,按城乡体育人口数量、等级位数。

(28)家庭人均体育消费:按地区家庭人均体育消费、等级位数,按城乡家庭人均体育消费。

(29)因伤停训人数、比率:按地区因伤停训人数,按项目因伤停训人数。

(30)运动员参保人数、比率:按地区运动员参保人数,按项目运动员参保人数。

(31)按地区运动员与教练员人数比。

(32)体育运动学校运动班学生人数、生师比。

(33)业余体校在训人数、运教比(运动员与教练员人数比)。

(34)按地区体育科研情况:科研成果、获奖、科技攻关、专利等。

(35)对外宣传情况。

(36)县以上体委举办运动会次数。

(37)新发展等级运动员数量。

2.4 产出(成果)指标。

(38)当年新增等级运动员数量(分级)、增加量、增长率。

(39)等级运动员升级人数及升级率:按地区等级运动员升级人数,按性别等级运动员升级人数,按城乡等级运动员升级人数。

(40)各大比赛的奖牌数:几大比赛,分地区统计、等级位数。

(41)金、银、铜牌总量及增加值。

(42)名运动队经费投入与获奖牌数效益指标、等级位数。

(43)创世界记录和获世界冠军情况。

(44)全运会各省总分、增加值、等级位数。

(45)各运动队经费投入与全运会积分效益指标、等级位数。

(46)各运动队综合效益指标。

(47)按地区国家体育锻炼达标人数、等级位数。

(48)创世界记录获得世界冠军情况。

3 体育事业统计报表指标体系中指数的开发与研究

通过建立以上统计指标体系,我们可以获得大量真实统计数据为体育事业服务,但是还缺乏对体育事业发展的动态分析以及趋势预测,对所获得数据挖掘不够,这样开发体现发展的动态相对指标就非常必要,所以在这次新体育事业指标体系中研究开发了反映体育事业动态变化的相对指标。相对统计指数是表明某种现象动态变化的相对数,运用指数可以测定不能直接相加和不能直接对比的现象的总动态。利用统计指数可以分析现象总变动中各因素变动的影响程度,也可以研究总平均指标变动中各组标志水平和总体结构变动的作用。

指数开发研究,需将各种实际问题转化为统计问题,探讨如何合理选用统计指标,正确运用统计学理论,以相对指标的形式客观地反映体育事业的发展状况。统计指标的类型包括以下几个方面:

3.1 总量指标

总量指标指在统计资料汇总后得到的总和指标,从指标的数字来看表现为绝对数。它反映了某种现象在一定时间、地点和条件下的规模和水平。总量指标还是计算相对指标与平均指标的基础,相对指标和平均指标是总量指标的派生指标。编制总量指标时必须明确各项总量指标的涵义、范围,分清它与有关指标的界限。

常见总量指标有总量、增加值

总量──当年各类项目汇总数据的绝对量。

增加值──计算当年与上年的总量差值。

3.2 相对指标

相对指标是两个有联系的指标之比,它表明了各种现象间的数量对比关系。相对指标的表现形式最常用百分数。

相对指标的优点在于它把反映分子分母两个社会经济现象的具体数值进行了抽象,因而便于在现象间进行对比分析。

3.2.1 构成比

是总体中不同性质的各部分有关数值与总体数值之比,反映各部分在总体中所占的比重。

3.2.2 比较相对指标

是指同一时期某一同类现象在不同空间的对比,表明某一同类现象在各国、各地或各部分之间的相对差异程度。

3.2.3 动态相对指标

是某一现象的报告期数值与同一现象基期数值之比,反映了事物的发展速度或增长速度。

3.2.4 常用相对数

表明现在比原来增加的幅度。

如:以2000年水平为基期,其他各年水平均以1995年水平为基期进行对比。定基比表明现象在较长时期内总的发展速度。

如计算一年内各月与前一个月对比,即2月比1月,3月比2月,4月比3月……12月比11月,说明逐月的发展程度。类似的亦可说明逐年的发展情况。环比表明现象逐期的发展速度。

3.3 平均指标

平均指标是说明同质总体内某一数量标志在一定历史条件下一般水平的综合指标,如人均国民生产总值、职工平均工资等,反映了总体的一般水平。

平均指标只能就同类现象进行计算,也就是计算平均指标的各单位必须具有同类性质。平均指标可用于同一现象在不同地区、不同部门或单位间的对比,以反映各地区、部门或单位的效益。还可用于同一现象在不同时间的对比,以反映现象发展的趋势和规律性。

3.4 等级位数

反映各省部分统计结果的名次或等级排序。

3.5 新报表指标体系中指数开发与设计

指数通常是不同时间的现象水平的对比,不同空间的现象水平的对比,实际水平与计划水平的对比。指数能够说明各种复杂现象的发展情况,并可分析各种构成因素的影响程度。本课题开发的指数如下:

(3)运动员平均受教育年限=小学人数比重×6+初中人数比重×9+高中及中专人数比重×12+大学人数比重×16+研究生及以上人数比重×19

其中:k表示指标个数,Xi表示第i个指标的标准得分,αi表示第i个指标的权重。

4 结束语

本文从统计方法理论研究入手,结合实际调研情况,重点进行了体育统计年报报表指标体系研究,开发了十六个衡量体育事业发展水平的宏观管理指数。希望通过本课题的研究,能为我国体育事业统计指标体系的建立和完善提供参考,更好地满足体育界对统计方法和统计信息的需求。

参考文献

[1]邢哲主编.统计学原理[M].中国金融出版社,2006.

[2]国家体育总局经济司编.体育事业统计年鉴[M].内部资料,2002-2006.

[3]胡小平主编.中国西部农村全面小康指标体系研究[M].西南财经大学出版社,2006.

[4]刘荣明主编.现代服务业统计指标体系与调查研究[M].上海交通大学出版社,2006.

[5]国家统计局编.中国统计摘要[M].中国统计出版社,2006.

上一篇:少数民族青少年下一篇:缩宫素配伍