动态报表生成器

2024-09-07

动态报表生成器(通用7篇)

动态报表生成器 篇1

0引言

报表作为信息传递和数据交互的手段,在各领域中的应用越来越广泛,随着计算机技术的发展,动态可重用技术成为目前研究的热点。当前,报表制作技术有很多,在不同的领域存在各自的长处和不足,归纳起来有3类:

(1)ActiveX技术。

ActiveX技术以微软的组件对象模型和Windows32API为基础,是使软件组件能够在系统环境中交互作用而与创建组件的语言无关的一套封装技术。该技术的优点是使设计的过程变得灵活,缺点在于不能直接提供可视化设计,而且在访问时必须启动一个事先规定好存入模板路径的程序,才可以运行。一旦模板文件名或文件路径发生改变,应用程序可能因此而出现错误[1]。

(2)OLE技术[2]。

对象链接与嵌入(OLE)是一种为Windows设计的交互进程通信技术,它建立在COM基础之上。OLE定义和实现了一种允许应用程序作为软件“对象”(数据集合和操作数据的函数)彼此进行“连接”的机制。技术的优点在于使人们充分利用了普遍熟悉的编辑工具,操作简单,可将报表结果数据以特定文件格式加以保留,对报表结果进行手工二次加工。但其缺陷是灵活性差,程序运行效率较低。

(3)XML技术[3]。

XML是由一系列规则所组成的描述语言,其本质为一种定义语言,主要用来在网站上储存和传输信息。任何行业均可遵循这些规则来定义各种标识,对信息中的元素进行描述,通过分析程序进行处理,使信息实现“自我描述”。这种报表制作技术的优点:设计过程可视化,操作方便,数据维护简单,开发者不用切换到其他设计环境即可完成所有的设计任务。缺点是一个报表的变动可能会引起整个程序的变动,重用性比较差。

动态可重用技术的出现使过去传统意义的软件技术变得更加动态化,智能化。基于此技术的设计在3D游戏开发[4]、合成孔径雷达处理[5]、数字信号处理[6]、图像编辑设计[7]、动态交通仿真[8]等方面的应用,都有广泛的发展前景。

1设计思想

报表制作技术综合了多种动态可重用的设计思想,要点如下:

(1)动态生成技术:根据用户的定义自动生成用户需要的报表,即“所见即所得”。该技术可以满足企业不同用户的要求,能够提供直观的、高效的、交互的和可视化的方法,简化用户的操作,使处理人员不需要深厚的专业知识,凭借自己的主观逻辑去操作就能得到所需要的结果,减少了程序员开发报表的工作量,提高了工作效率。

(2)可重用技术:将一些常用的报表制作成模板,从而缩短报表制作的时间。

(3)光标定位跟踪技术:在报表模板中,利用光标对需要动态生成的图、表、文字等内容进行跟踪和定位,并用书签来控制这些内容生成的具体位置。当启动程序在文档中插入新的内容时,光标会自动找到对应的书签位置并插入内容。此技术不但能准确找到需要生成内容的位置,而且增强了程序的灵活性和健壮性。

动态可重用报表制作技术避免了以往报表制作过程中出现的问题,充分体现了报表设计的灵活性、动态性、重用性,使报表的制作有了新的发展,大大节省了工作时间和效率。

2实现技术

2.1系统结构设计

报表制作是根据全球环境变化监测与评价系统来进行设计实现的。系统设计结构如图1所示。

(1) 报表模板设计

报表模板设计按照用户要求预先定义好排版格式,即预先定义好文档中的文本、表格、图形的格式;需要插入书签的,预先确定好书签的位置;动态填入的内容既可以利用程序提供的界面实现,对开发人员来说也能直接通过程序提供的接口实现。

(2) 动态插入报表内容

报表中数据准备完成后,不用人工手动设计报表的排版,一切按照报表程序自动插入所需内容,真正做到了“所见即所得”,使用户的操作更加简单,报表的生成更加直观,提高了应用程序的易操作性。

(3) 报表可重用操作

报表可重用操作即报表模板在设计后可以重复使用,无需进行人工手动修改。企业的专业人员可以根据生产产品的多少对报表的内容进行自动控制,对没有生产的产品对应报表内容自动删除,随时对新添加的内容进行修改和更新,增强了报表制作的灵活性和动态性。

(4) 报表信息显示

报表信息显示就是对产品生产结果的展示,通过生成的结果可以清晰地了解该系统完成情况,以及产品生产结果的正确性和合理性,还可以与以往的生产结果作对比,提高产品的生产效率和质量。

(5) 打印报表、保存和退出

根据专业人员和用户的需求打印出所需的报表。完成了以上的功能后对报表进行保存,并退出程序。

2.2 主要技术实现

本报表制作技术采用Microsoft Visual Studio 2008作为开发平台,利用.NET提供的COM接口,通过对Word对象的操作实现报表生成的动态性和可重用性。其主要技术包括:

(1) 动态图表制作技术。

程序启动调用Word文档可以动态生成图、文、表并茂的文档,也可以生成更为复杂的报表,其中包括多层嵌套表格、斜线表格等。

(2) 动态内容生成技。

报表的内容包括报表的生成时间、报表生成的期数,环境星数据,产品的系统结构指数、系统结构指数评价结果等。

其实现流程如图2所示。

3 实际应用

动态可重用技术作为目前比较常用的技术,将其与报表系统的生成相结合,使其在报表系统的开发和实现中发挥了很大作用,报表的开发与制作是一项复杂而又繁琐的工作,在制作过程中需求稍加改变,就会给报表的制作带来很大的工作量。 如果将其改为自动生成,并且报表模板和代码可以重复使用,会减轻大量的工作负担。

动态可重用报表技术可以应用在各类系统中,但在生态质量系统中应用最为广泛,本节以全国生态质量遥感监测与评价应用产品为例,介绍动态可重用报表所制作技术在遥感监测系统中的实际应用。本产品是国家环保部生态环境遥感产品生产系统中的一个应用产品集。该监测与评价系统利用环境卫星遥感数据,经过生态遥感产品生产系统,生成全国各种环境的监测与评价报告,主要内容如图3所示。

(1) 宏观结构监测与评价子系统

生态系统宏观结构利用环境卫星影像对全国生态质量进行分类处理,将各地区的生态质量分成不同的类型,并自动输出分类后的结果影像。具体类型包括森林、草原、农业、聚落、湿地、荒漠等。该子系统需要生成全国森林生态系统宏观结构监测统计表、全国草地生态系统宏观结构监测统计表、全国农田生态系统宏观结构监测统计表等。

(2) 自然条件监测与评价子系统

本应用模块的功能为:对全国生态系统的自然条件进行监测,并输出相应的评价参数。如植被覆盖度指数、生物丰度指数、水网密度指数以及土地退化指数等。对生态系统质量做出评价,对全国生态系统的自然条件进行监测,并输出监测结果,生成全国生态系统自然条件监测统计详表。

(3) 人类胁迫监测与评价子系统

该模块对全国生态系统人类胁迫因素进行监测,并得到相应的评价参数。如人口密度指数、建筑用地面积比指数、单位GDP能耗指数、单位GDP耗水量指数以及环境污染负荷指数等,对生态系统的人类干预以及胁迫状况作出评价。

(4) 生产力监测与评价

通过对全国生态系统的生产力进行监测,并通过计算相应的生产力评价参数:如森林蓄积量指数、草原产草量指数以及农业耕地单产指数等,对生态系统的生产力状况进行评价并生成森林蓄水量分布图。

(5) 生态质量综合评价

利用对全国生态系统生态质量的监测结果以及质量参数,对生态系统的质量作出综合评价,生成森林生态系统结构变化分析详表、结构变化指数和评价结果等。

4 结束语

本文将动态可重用技术应用于报表的自动生成,能够更灵活适应用户需求的改变、改善报表的制作流程,大大缩短了报表生成时间。通过高效地开发出满足不同行业用户需求的报表,避免了由于不断变化的业务流程造成报表制作程序的重复更改,提高了报表制作技术的复用性。

报表的制作技术在各行业中的应用很多,但是利用动态可重用技术制作报表在行业中并不多见,本文利用动态可重用技术来制作能适用于各种应用的报表,与传统报表制作技术相比,该技术减少了工作人员的工作量,实现了报表生成技术的动态化和智能化,提高了信息的准确度,降低了报表的开发成本,具有较好的工程背景和参考价值。

摘要:针对以往传统报表制作技术中存在的灵活性差、开发效率低和重用性差等问题,以全国生态质量监测与评价系统为例,提出动态可重用报表制作技术的设计思想和实现技术,该技术有效地解决了以往报表制作技术中存在的缺陷和不足,为生态系统中报表生成技术动态化和智能化的实现提供了参考。

关键词:动态,可重用,报表,全国生态质量,遥感监测

参考文献

[1]杨化林,李旭,冯云霞.一种基于ActiveX Automation技术的报表表示方法[J].精密成形工程,2003,21(5):79-81.

[2]徐欧.基于XML技术的报表自动生成引擎的设计与实现[J].计算机应用技术,2004(3):20-24.

[3]马彪.在VB中自动生成WEB报表[J].计算机系统应用,2001,20(2):64-66.

[4]缪小亮.互动数字娱乐平台可重用开发工具关键技术研究与实现[J].通信与信息系统,2006(21):86-88.

[5]雷元武.合成孔径雷达成像处理硬件加速器技术研究[J].计算机科学与技术,2007,31(4):221-223.

[6]景乃峰.可重用数字信号处理器IP核的设计[J].计算机系统结构,2002,20(4):66-68.

[7]董莉敏,李志兰.动态图编辑器框架设计与实现[J].小型微型计算机系统,2001,22(10):1264-1266.

[8]吴邦灿,费龙.基于动态交通仿真模型的最优路径选择方法[J].计算机应用研究,2010,27(5):1662-1664.

动态报表生成器 篇2

报表是应用软件数据输出的一个重要内容,企业、商务数据如何在针对数据源实现特殊功能报表通用的、可二次使用的报表程序是程序设计工作者十分关心的问题。有关报表的设计、处理与实现,曾有一些研究。文献[1,2]提出了基于组件的实现。文献[3,4]提出了Web报表的动态生成方法为提高软件利用效率,实现软件复用,文献[5]在对各类报表定性分析的基础上,提出了报表构件模型。这些研究方法虽然有许多可借鉴的地方,但存在以下问题:

(1)报表中的数据源结构是静态,因此生成的报表就谈不上是动态生成。如果数据源的表结构是动态变化的,如对于文献[6]提出的远程数据库结构可以动态生成和维护的数据库,或者像学校经常使用的学生毕业成绩报表,要求设计一个与系别、专业、班级、课程数、课程名等因素无关的通用的报表处理系统,用以上提到的方法显然是行不通的。这样设计出来的软件不具有通用性。

(2)不能进行结构类聚。如不同的专业、不同的班级将同学期的课程归类。

(3)无法在生成报表后用户可能还要进行部分数据的修改,或者表格式需要部分根据自己需要自定义设置,以满足个性化设置的需求。

(4)报表的形式通常是特有格式,或直接打印,而不是通用的WORD格式,这给数据的再加工带来不便。

为解决以上问题,提出了一种新的解决方法,实现了分布式环境下多不确定记录集因子WORD报表的动态生成。

1实现方法

1.1报表系统模型

基于动态变化的表结构的分布式报表处理模型,能够很好地解决上述自动报表处理中存在的问题。其模型如图1所示。该模型主要由两个部分组成:客户端和服务器端。在服务器端,通过数据集成接口,接收客户端的数据,存放于数据源中(如数据库、文本或其他格式的数据文件中),或者接收客户端数据请求,修改服务器端的数据源中的数据;也可以在客户端请求后,提取服务器中数据源中的数据,通过数据集成接口,自动识别不同的数据源,自动识别数据源数据结构,自动数据归类,并根据客户端参数生成包含页眉、页脚和正文的报表数据,然后通过Internet,在客户端生成以WORD文档格式的报表文件,用户可以直接打开文件,通过WORD进行预览、修改、打印、输出。由于这种方式是非组件技术,直接通过Internet,与服务器端集成数据接口,生成WORD报表的B/S处理模式,这样使客户与服务器之间的交互更加灵活。

1.2报表生成算法

报表可以分为两个部分:报表模板和报表数据,报表模板来自自行预定义的格式,报表数据来自数据库(或指定的数据源)。取得报表数据并与预定义模板结合生成报文件。由于具体报表格式的不同,要求不同生成的算法自然不同,为了说明问题,我们以学生毕业成绩报表为例说明其实现算法如下:

(1)定义一个用于保存学期成绩数据的数组Score(Maxterm,Maxsubject),其中Maxterm表示最大学期数据,它是根据学制来确定的,如三年制、四年制分别为6和8。Maxsubject表示每个学期中最多开设的课程数,一般一个学期不超过10。

(2)连接远程数据库,或读取本地数据源数据

(3)自动识别数据库结构

(4)自动读取数据字段名,并自动识别归属学期类别

(5)结合Web报表模板,生成WORD报表

(6)提示直开窗口,用户将报表文件下载到客户端,直接通过WORD打开,或者进行修改、浏览打印。如图2所示。

2报表实现的几个关键技术

2.1数据库的自识别技术

要实现真正意义的动态报表系统,必须要能够实现数据库的自动识别,即至少要实现数据库中数据表(以不同专业或班班命名)的自动识别和数据库结构的自动识别。

2.1.1动态识别数据表

SQLServer、MYSQL、Oracle、Paradox、ACCESS到简单常用的EXCEL都可以作为Web应用程序的后台数据库,对于不同的数据库,不同数据库中已经有哪些数据表的自动读取和识别的方法是不相同的。

对于SQLServer数据库,每个数据库中有一个名为sysobjects数据表,该表存放了当前数据库中所表的信息,由于数据表的不可见性,我们可以事先将检测的表添加到列表菜单中供用户选择,从而实现数据可视化操作。如图3所示的选择班级表是通过表的自动识别技术来实现的。

ACCESS数据库与SQL数据库不同,在AC-CESS中,有两种表,一种是系统表、一种是用户定义的表,通常系统表是无法操作的。rsSchema("TA-BLE TYPE")函数是用来检测数据表类型的一个函数,在连接数据库后,通过openSchema对象打开表对象,利用rsSchema("TABLE TYPE")函数来检测数据表,如果函数返回的结果是"TABLE",则是用户建立的数据表,否则是系统表。然后将检测结果添加到列表框中,以便实现数据库操作的可视化。

EXCEL数据库除可以利用上述方法获取数据表外,还可以利用Excel.Application对象来获取数据表,下面程序通过Excel.Application对象来获取数据表,并添加到指定列表或表格中。

2.1.2字段动态识别

在连接数据库后,确定连接操作的记录集(如RS)后,如何自动检测记录集中的字段数、字段名以及对应字段的数据类型,采用自动捕获数据表中的字段数及字段名,可以增强程序的适应性。下面是几个重要的自动识别记录对象字段的技术:

2.2字段自动归类的实现

首先定义三个数组:

DIM JS(学制*2),用于保存学期数的数组

DIM CJ1(JS(),每学期最多开设的课程数),用于保存每学期课程名的二维数组,即用于存放每个学期成绩对应的字段名(课程)。

CJ2(JS(),每学期最多开设的课程数),用于保存每学期课程对应成绩的二维数组。即用于存放每个学期成对应的字段名的值(成绩)。

然后依次读取一条记录,自动识别每一条记录中的字段数、字段名和值,确定字段对应的学期数,并进行归类。直到完成最后一条记录。每读取一条记录,与报表模板结合,生成一行报表数据,重复到最后一条记录即生成了以班或系为单位的报表文件。

2.3选修课的自动分类

由于一个学院不同系部、不同专业、不同学生的选修课程不同,因此如何识别学生选修课程也是开发中涉及的一个主要问题,中此,我们提出用字段自动识别技术,通过判断成绩结果来自动确定每个学生的课程,并保存于数组中,再与模板结合,实现报表的动态生成。

2.4模板与数据结合

将上述获取的数据与预定义模板结合,就生成了报表。其主要方法是将数组中的数据与Web数据中的表格进行嵌套。

2.5基于Web的WORD报表动生成技术

OFFICE 2000及其以上的版本,支持以HTML格式作为内部文件格式,因此可以利用这个特性,将Web文档与数据库结合直接生成WORD文档。实现基本原理是利用Response对象的AddHeader方法指定的值添加HTML标题。然后利用Response的ContentType方法指定输出数据的格式。其中AddHeader方法常常向响应添加新的HTTP标题,其语法是:

上面的语句指定以表单中“DocName”输入的文件名作为WORD形式保存的文件名来存盘。

Response对象可以用来控制发送给用户的信息。包括直接发送信息给浏览器、重定向浏览器到另一个URL或设置cookie的值。Content-TypeHeader指示了响应文本的媒体形式,(MIME类型)。通常的例子是”text/HTML”,“image/gif”,“application/msword”,或者”text/rtf”,你可以使用Response对象的ContentType属性来设置它。例如下面的语句将批示浏览器以WORD格式显示文件内容。

Response.ContentType="application/vnd.ms-word"

如果要以EXCEL文件格式显示数据,只要将上述内容改为“application/vnd.ms-excel”

将上述两个语句结合起来,就可以实现报表以WORD格式输出,并以下载的方法告诉用户进行保存。

图4是两个班(81个学生)成绩报表在WORD中预览效果。

3结束语

通用动态WORD报表系统具有以下特点:

(1)以ASP技术为开发技术,可以基于B/S方式处理客户端或者服务器端提供的数据库,实现数据共享。

(2)能自动识别数据库结构和字段,使程序的更具有通用性。

(3)能根据不同的专业、班级、科目以通用模板动态生成可二次修改的WORD报表文件,交互性更好,程序的适应性更强。

(4)能动态识别每们学生的选修课,使选修改与必修课合而为一,可跨系部、跨专业、跨班级使用,并以一个班为单位直接生成一个WOORD报表,通用性更强,使用更简单。

此报表系统适应学校、企业不同部门但具有相似数据的报表打印,同时,法实现了分布式应用程序数据处理中,多数据源数据转化为WORD格式提供了解决方案,具有较大的实用性。

参考文献

[1]刘友生,陈一平,胡浪.基于数据表的动态表单处理技术.计算机工程与应用,2004;40(36):199—201

[2]鲁萍,田安祥.动态报表组件设计及其应用.陕西师范大学学报(自然科学版),2004;(32):171—173

[3]胡铂、吴秀丽、孙树栋.基于设计模式的报表生成组件的设计与实现。计算机工程与应用,2004;(16):113—115

[4]吴达胜,范雪华,曾松伟等.基于Web的通用报表生成器的研究.浙江林学院学报,2004;21(2):185—188

[5]张能立.Web动态报表的实现.计算机应用与软件,2004,21(4):110—112

转炉监控报表的自动生成 篇3

现代化的厂矿企业一般都配置了比较完善的自动化系统, 可分为基础自动化系统 (一级) 、过程自动化系统 (二级) 、生产管理系统 (三级) 。二级、三级在过程优化、生产优化的基础上, 同时按要求生成生产报表, 但一些辅助系统的运行和状态信息一般没有自动生成报表, 还需人工填写报表。南京钢铁股份有限公司 (以下简称“南钢”) 中厚板卷厂的三座转炉情况也类似, 二级系统可以自动生成转炉的工艺操作报表, 但其它设备的运行和状态信息二级系统不采集、一级系统也未生成报表, 如OG除尘、一次除尘、二次除尘等, 这些报表还是采用人工记录数据的方式来实现。

手工填写的纸质报表在收集、保存和查阅等方面都有很大的不便, 且手工填写报表, 不能保证数据的实时性和准确性。如果自动形成电子报表, 这样既可以保证数据的准确性和实时性, 也可以便于数据的保存、查阅, 便于对历史记录进行分析, 为进一步改进工艺、优化操作提供第一手资料。

1 需求分析

1.1 需求

各除尘岗位的报表电子化涉及3座转炉的OG、4台一次除尘风机、3台二次除尘风机、RH蒸汽过热装置, 具体涉及9台西门子S7-PLC。

1.2 现场网络结构

各相关PLC的分布和网络结构如图1。

1.3 具体报表要求

报表以EXCEL表格形式存储。具体生成如表所示的10张报表。为了便于数据处理, 在保持数据完整性的前提下对原先的纸质报表样式进行了一定的修改, 形成如图2所示的样式。

2 确定设计方案

2.1 方案确定

实现报表电子化有多种方案, 常见的有以下两种方案: (1) 方案一:在HMI编写程序采集数据, 并生成报表, 但这种方案需在原有的各相关HMI上编写程序, 由于本项目涉及7台HMI, 且HMI软件有i FIX、Wincc等版本。因此, 分别编写程序的工作量大、维护不方便、报表分散存储不便于管理。 (2) 方案二:在一台电脑上采集各PLC的数据、集中生成报表, 这种方式便于数据的保存管理。使用OPC技术采集现场数据, 随着OPC技术的成熟, 越来越多工控软件都支持OPC技术, 如Simatic NET、Kepserver等, 但相比较而言Kepserver较灵活、方便、支持的硬件较多, 而Simatic NET就难以连接西门子以外的硬件。

综合考虑后确定选择方案二, 在一台电脑上编写程序, 利用Kepserver软件的OPC接口采集各PLC的数据、并保存到数据库中, 然后每天生成一个EXCEL文件形式的报表。

2.2 Kepserver软件介绍

Kepserver为全球工业界领先的超级OPC服务器软件, 提供了非常卓越的工业互连通讯能力。它嵌入了超过100多种通讯协议, 支持数百种以上设备型号的可下载驱动程序。

本次项目所涉及的都是西门子S7系列PLC, 以S7-400PLC为主、也有少量的S7-300, 由于Kepserver中嵌入了S7-PLC驱动程序, 因此可以直接建立Kepserver与PLC的连接, 连接基于TCP/IP协议实现互连。连接建立之后, 便可在Kepserver中创建需要采集的现场数据变量TAG, 然后对其进行采集和存取。

3 方案实施措施

3.1 软件结构

本系统由三个部分组成:数据采集部分、数据写入数据库部分、报表生成部分。其软件结构如图3所示。

3.2 数据采集方案细化

3.2.1 数据定义

(1) Kepserver内数据定义

Kepserver是通过定义的tag变量读取PLC数据的, 因此, 要根据每张报表需要的数据到PLC程序中查找每个数据的地址, 然后根据PLC地址在Kepserver中定义tag变量。如1#OG汽包压力PT1201的PLC地址是DB101.DBD190, 定义tag的格式为:PT1201DB101.DBD190。

(2) 程序内数据定义

为了使程序能够读取Kepserver中定义的tag变量, 将10张表格对应的tag变量及其PLC地址整理后分别存储在对应的10个文本文件中 (见表2) , 根据报表要求, 1个文本文件可能要涉及几台PLC。由于程序中要根据炉次吹炼信号判断吹炼是否开始。因此, 将三个转炉吹炼信号及其PLC地址存储在Com.txt文本文件, 供程序读取、判断。

3.2.2 数据采集方式

根据需求需采用以下两种数据采集方式:

(1) 基于时间采集方式, 这种方式是在固定的时间点进行采集, 各二次除尘风机的数据每两小时采集一次, 分别在每天0点、2点、4点、6点……采集。

(2) 基于事件采集方式, 这种方式是当某一事件发生时进行采集, 当采集OG和一次除尘风机数据时, 是在转炉吹炼至8 min时进行采集。RH蒸汽过热装置的数据采集也是此方式。

3.3 数据写入数据库

为了便于数据的保存, 查询以及报表的自动生成, 数据采集完成以后, 将采集的数据保存数据库中。在ACCESS数据库中新建10张数据库表og1、fan1、fan2等, 分别存储采集上来的数据, 其中每张数据库表与每张报表相对应, 存储报表需要的数据。

3.4 数据采集、存储的程序结构

10张表格内数据的采集和存储是同时进行的。图4是1#炉相关数据的处理过程, 涉及报表是OG1、一次风机房2#风机或1#风机, 由于一次风机房风机是三用一备、1#风机作为备用风机, 因此需进行风机的运行状态判断。

3.5 报表生成

程序根据保存在数据库表中的数据, 每天零点把每张数据库表的数据根据时间查询出来, 然后依次导入EXCEL每张报表。报表效果如图5所示。

4 结束语

上述方案主要是软件编程, 基本没有设备投资, 对现有系统也没有影响, 具有一定的参考作用。电子报表的自动生成, 既减轻了人工抄录报表的劳动, 又保证了数据的实时性和准确性, 为数据分析、操作标准化和工艺优化奠定了基础。

摘要:介绍了炼钢厂转炉监控报表自动生成实现的过程, 结合现场网络结构和需求, 通过OPC采集现场的数据并保存到数据库、然后按要求自动生成电子报表。

动态报表生成器 篇4

部门决算是指行政事业单位按照相关编审要求向财政部门报送的,用以反映本部门、单位财务收支、资金、人员及资产管理等状况,是各单位预算执行的综合反映,是政府宏观决策的重要参考,也是编制预算、实施科学收支管理的基本依据。主要包括基础数据表,填报说明,和分析报告等。

(一)部门决算用来真实反映行政事业单位预算执行情况

《行政单位财务规则》规定:“行政单位应当科学、合理编制预算,严格预算执行,完整、准确、及时编制决算,真实反映单位财务状况。”因此,行政事业单位向财政部门、主管预算单位和其他有关部门提交部门决算报告,用来真实反映年度预算的执行情况,为财政部门进行资金的拨付和审批以及下年度的预算编制提供参考依据,充分发挥部门决算在财政管理工作中的作用。

(二)部门决算可以全面反映行政事业单位财务收支状况

部门决算报表可以全面反映行政事业单位的资金运作和财务收支状况。通过部门决算报表,可以让财政部门全面掌握行政事业单位的收支情况和预算执行情况,并有利于加强宏观监督和管理,为国家财政资金未来的投入方向和投入规模等方面提供重要参考依据。

(三)部门决算能够综合监管行政事业单位预算执行情况

财政部门决算是行政事业单位预算执行情况的综合反映和监督,是政府宏观经济决策的重要参考,也是编制部门预算、实施科学收支管理的基本依据。行政事业单位依法接受主管预算单位和财政、审计部门的监督,部门决算是单位预算执行的总结,这就意味着行政事业单位需加强决算的审核和分析工作,保证决算数据的真实性、完整性和准确性。

二、部门决算基础数据编制现状及存在的问题

(一)决算与预算脱节

部门决算是部门预算执行情况的综合反映,部门预算和部门决算共同构成部门资金分配使用运行的全过程,是不可分割的两个方面,二者相辅相成、密不可分。然而目前行政事业单位仍然存在“重预算,轻决算”、“重分配,轻管理”的观念和意识。不少人员认为部门决算仅仅是事后用来总结财务状况以及资金使用情况的一种年末总体财务决算,对单位发展没有重要意义。导致行政事业单位决算编制与预算编制的衔接,存在技术与管理严重脱节的情况。直接影响了决算与预算的严格对应关系,影响了利用部门决算资料检查、检验部门预算的执行情况,影响了部门决算资料的分析、应用,进而影响了部门决算作用的充分发挥。

(二)部门决算报表数据失真

鉴于财务、财政软件和财政总决算报表系统不能兼容,所有部门决算报表系统中的财务数据都要手工录入。在录入过程中,由于数据繁多、历时较长、人员素质参差不齐、上报时间紧等现实情况,加之财政部门一般对行政事业单位填报部门决算报表系统硬性要求较低,存在基层会计填报财政总决算报表时“凑数”现象,对部门决算报表审核公式的出错提示,大多数情况下,单位都采取对决算数据进行修改,机械式地使数据符合各项审核公式的要求即可。使决算数据失去真实性,从而影响了部门决算报表信息质量。

另外,在单位会计基础核算方面,一是在单位会计核算中,对关于预算科目未严格按照分类要求使用,支出经济分类核算不准确,影响预算定额体系建设和财政决策的正确性。二是会计人员责任心不强,决算报表中有关“数量”指标漏报、错报的概率比较高,影响决算对比分析结果的真实性。从而导致账表不符;脱离账面数据,人为调整决算数据,少报或多报支出和随意调整支出细项。财务基础数据不清和编报口径错误等,导致报表编报不准确或不完整。

(三)会计编制决算报表费时、费力、费财

部门决算报表相较于其他会计报表,编制难度较大,有些单位甚至谈之色变,其主要原因在于单位会计编制决算报表极其费时、费力、费财。

1. 结构复杂

部门决算报表结构包括主表、附表、补充表三类,每类中又包含数目不等的单个表样,如2015年决算报表中,主表有21张,附表有5张,各类补充表9张。表间有诸多的审核公式,关系复杂,与会计报表相比,表式过多,过于复杂。另外,决算报表还需填报分析报告、填报说明、横向过录等数据,因此,编制决算耗时极长。

2. 容易报错

所有部门决算报表系统中的财务数据都要手工录入,不能自动取数,增加编制难度。当前多数会计报表都已实现自动取数,而部门决算报表还需手工填报,增加出错概率,降低工作效率。另外,部门决算报表适用单位包括行政单位、事业单位、经费自理单位及其他单位等,适用范围广泛,包涵的内容也多,在实际编制中容易填错,且表间关系复杂,导致一处出错,多张表同时报错,增加会计人员的工作量,浪费人力。

3. 修正困难

另外,一旦部门决算报表报错,修正难度较大。一个数据的修改,就会引起一连串数据的调整,有时用于修改调整报表所花的时间,比整套决算报表重新编制所花的时间还要多,耗时费力,劳民伤财。报表数据频繁的滞后修改,不仅给部门决算报表编审工作带来大量重复劳动,而且影响了部门决算报表的质量。

4. 耗资巨大

由于编制部门决算报表纯手工录入,编制难度大,人工成本高,并且由于时间紧任务重,报表参数也在不断修改,加大了编制难度,对此,大多行政事业单位及核算中心将部门决算外包给专业公司编制,会审,耗资巨大。

(四)填报人员能力要求较高

由于报表系统中设置了逻辑性审核公式、核实性审核公式、与上年数据核对等各种审核模板,所以在编制报表过程中,大多能较快的发现错误。但是有些审核公式只是发现数据填报不合理,如“应核实情况,有错改正,无错保留并说明原因”,这时就需要填报人员不仅懂得表间关系,而且能发现错误修正错误,还需要具备结合单位实际情况分析报表的能力。部门决算报表与其他会计报表相比,编制难度较大,因此,对填报人员的能力要求也较高。

三、通过“一键”生成部门决算报表,解决“决算难”的窘状

针对上述问题,深圳市光明新区国库支付中心首创行政事业单位财务内控信息化管理平台,该平台已实现与部门决算软件的衔接,从而实现“一键”生成部门决算报表基础财务数据表(除人员、车辆)。

行政事业单位财务内控信息化管理平台将前台报账系统、核算系统、国库支付管理系统3大系统整合为一体,涵盖会计模块、出纳模块、固定资产模块、决算模块、指标模块、报表模块、和稽核模块,外接实时查询平台和短信通知平台两大平台,包括前台报账、指纹登录、短信通知等创新功能,尤其是“一键”生成部门决算报表基础财务数据表功能。

该平台从以下几方面逐步铺垫,进而实现“一键”生成决算报表基础数据表。

(一)通过信息化手段创建财务“大数据”平台

1. 通过报账环节收集基础数据

目前,行政事业单位财务内控信息化管理平台经过创新“母表”设计,上联国库支付管理系统,下接报账平台。深圳市光明新区各集中核算单位已安装该平台并已开通单位账套,可以通过指纹登录直接在本单位电脑上通过查询“母表”等途径获悉单位项目结余、支付进度、在途资金、往来资金、及其他资金收支情况等操作。

各单位报账员直接登录平台录入各类费用报销单,如普通费用报销单、差旅费报销单、车辆费用报销单、入固定资产费用报销单、暂存款费用报销单、银行预付款申请书等单据,平台上点击“送审”至国库支付中心,并打印成纸质(含二维码)报销单,找单位领导签字后,将纸质单据送至国库支付中心报账,信息化电子数据已通过平台送审至国库会计账套后,留存于平台内,形成基础数据。

另外,行政事业单位财务内控信息化管理平台通过配备高拍仪、二维码扫描器、指纹识别器、滚动显示屏等现代硬件设备,提高工作效率及安全性。该平台还增加机打二维码报销单功能,通过扫描机打报销单二维码,快速扫描匹配,可确认单据的保管单位及交接时间,避免单据丢失或支付不及时的责任不清晰现象。

2. 通过记账环节收集会计数据

该平台可提供“实时数据”反馈,突破了传统会计分期理论的制约,将“先支付,后记账”流程改为“先记账,后支付”管理模式。国库支付中心初审会计收到各行政事业单位报账员报送的纸质报销单据及平台内信息化电子数据,初步审核相关单据。通过初审后,首先在平台内“一键”生成记账凭证,其次将贴有记账页的纸质单据及系统内的信息化电子数据一并送审至复审会计。复审会计审核通过后,再将相关纸质单据及信息化电子数据一并送至支付岗(出纳)支付,最终支付岗支付完成后在平台内点击“支付确认”,电子化报销流程即在三个工作日内完成相关报销单据支付,相关信息化电子数据已存入平台,形成财政大数据。

3.3个“一键”生成,保证所有数据的一致性

记账“一键”生成,平台设置记账凭证页模板,会计初审通过费用报销单,只需“一键”即可生成记账凭证,甚至,多张费用报销单,不同种类报销单均可“一键”生成记账凭证。另外,还增加“设置”键,会计可自由选择单笔费用报销单生成一张记账凭证或者多笔费用报销单生成一张记账凭证,提高平台使用灵活性,确保记账凭证数据与费用报销单数据一致。

报表“一键”生成,工程师根据会计制度对会计报表的要求设置会计报表模版及取数公式,根据决算报表样表设置决算报表模版及取数公式。会计结账后,点“生成”键,选择需要生成的会计报表,系统自动生成,确保会计报表与账务数据的一致性。

决算“一键”生成,通过日常基础数据的积累,先“一键”生成每月会计报表及年报表,再进行账务结转,即可“一键”生成部门决算报表基础财务数据表。由于各类会计报表的数据均为系统自动生成,均是从账务系统中取数,保证了报表与账务的一致性及各类报表数据之间的一致性。

4. 涵盖部门决算报表全部财务信息

该平台涵盖全部会计信息,包括会计科目、项目分类、预算项目、功能分类、经济分类、往来科目、预算单位、支付方式、资金性质、支出类型、数量单位、单位账户、支付银行、收款账户、结算方式、政府投资项目、财务年度、待摊投资明细、资产大类、账户等数据,甚至包括经办人、证明人、收款单位等信息。通过日常报账、记账等账务的壮大和发展,平台本身也会变大,逐步成为一种大型数据仓库。

(二)与决算软件对接,实现决算基础数据的上传

经与部门决算软件公司沟通,平台开通一个端口,操作界面增加一个“数据上传”键,点“数据上传”键选择“内控平台报表”,实现在内控平台生成的“决算报表”基础数据直接上传至部门决算软件。

“一键”生成决算报表基础数据并直接上传至部门决算软件解决了以往工作量大、数据失真、部门决算报表质量欠佳等问题。

(三)实现“一键”生成部门决算报表

年底封账后,会计先与财政对账,确认无误,再进行账务结转,并“一键”生成年报表。基础工作全部完成则会计直接在系统点击“生成决算报表”键,“一键”生成部门决算报表基础财务数据表。

四、“一键”生成部门决算报表的优点

(一)“一键”生成部门决算报表,杜绝信息失真

系统“一键”生成部门决算报表,数据均来源于系统内日常数据的收集整理,杜绝人工编制决算报表随意修改数据,确保部门决算报表基础表数据真实可靠,为财政决策提供正确的参考依据,实现财政部门对各预算单位基础数据的动态管理。

(二)“一键”生成部门决算报表,确保信息一致

系统“一键”生成部门决算报表,从一个数据源获得数据,有利于保证与实时会计报表数据一致性,保证账表一致,账实一致,账账一致。另外,“一键”生成部门决算报表,可以减少数据混乱和报表错误问题。可以优化交流,确保各单位信息一致,并且,随着单位日常账务的增长和发展,平台本身也会变大,成为一种大型数据仓库。

(三)“一键”生成部门决算报表,提高工作效率

系统“一键”生成部门决算报表,极大地简化了部门决算报表编制流程,极大地提高了部门决算报表质量和效率。“一键”生成部门决算报表解决了过去“决算难”的窘况,让各预算单位不再对部门决算报表编制“谈之色变”。另外,“一键”生成部门决算报表不仅节省了会计工作时间,而且提升了会计工作效率,更是节约了相关经费的开支。

(四)“一键”生成部门决算报表,降低编制成本

系统“一键”生成部门决算报表,简化部门决算报表编制流程,极大地节省了编制时间。过去部分预算单位外包给企业编制部门决算报表,企业配备技术人员驻点协助完成部门决算报表编制,耗资巨大,且耗时。现在只需要行政事业单位主管会计在系统“一键”点击即可生成部门决算报表,极大地降低了人员成本。同时从平台这个单一数据源获取数据,有利于简化“一键”生成部门决算报表创建过程和降低其成本。

通过行政事业单位财务内控信息化管理平台“一键”生成部门决算报表基础表,简化了部门决算流程,提高了会计工作效率,优化了服务财政管理,提升了财政工作水平,并贯彻落实财政部关于推进财政科学化、精细化管理的决策部署。让部门决算充分发挥在财政管理工作重点作用,并有利于加强财政宏观监督和管理,为国家财政资金未来的投入方向和投入规模等方面提供重要参考依据。

摘要:通过创建行政事业单位财务内控信息化管理平台,创新母表设计,使平台上联国库支付管理系统,下接报账平台。该平台日常利用报账、记账等电子信息化流程收集整理部门决算报表所需的基础数据,再通过电子信息化手段,连接部门决算报表软件,“一键”生成部门决算报表基础财务数据表。

动态报表生成器 篇5

电力是国家基础性能源产业, 在国民经济、人民生活和抗灾救灾中具有举足轻重的作用。现代经济社会发展对电力的需求持续增加, 一旦发生电力供应中断事件, 将给社会、经济秩序和人民群众生活带来巨大影响[1]。2008年以来, 各类自然灾害频发, 南方雨雪冰冻、汶川地震、玉树地震、舟曲泥石流灾害、雅安地震和每年登陆沿海地区的台风等自然灾害、电力突发事件等[2], 对电网设施造成严重损毁, 同时, 电网遭受外力破坏情况时有发生, 严重影响了电网的安全稳定运行, 给人民生命财产与社会和谐稳定带来严重危害和影响[3]。

在电力应急抢险救灾过程中, 快速对人、财、物及电网负荷损失数据进行填报、汇总统计、整理分析, 可以使决策层了解受损动态, 掌握重建及恢复情况, 是电力应急管理中最重要的环节之一, 既为将损失减少到最低和实施决策提供实时的数据保障, 又为总结经验和建立应急机制提供强大的数据支持[4]。

1 电力应急信息的概念、分类及报表组件

1.1 电力应急信息的概念及分类

针对2008年汶川地震、2010年玉树地震、2013年四川芦山地震等地震地质灾害及每年的台风、雨雪冰冻、强降雨等各类自然灾害的应急处置, 本文将电力应急信息定义为突发事件发生发展过程中产生的事件发展、灾情损失、现场处置和抢修恢复等信息及情况, 并归纳总结出电力应急信息按业务分为人员、变电站、输电线路、杆塔、用户、设备、其他等七大类型[5]。

1) 人员:主要包括人员伤亡、失踪、受伤、重伤的人数, 已到达、在途中、已集结待命的抢修救援队伍及人数等。

2) 变电站:主要包括电压等级、变电站名称、变电站停运及恢复的数量、停运类型、停运时间、故障情况、影响供电情况、直接经济损失 (万元) 、负荷损失 (MW) 、计划抢修恢复时间、抢修进展情况、恢复情况、恢复时间等。

3) 输电线路:主要包括电压等级、线路名称、线路停运及恢复的数量、线路类型、停运类型、停运时间、跳闸情况、故障情况、影响供电情况、直接经济损失 (万元) 、负荷损失 (MW) 、计划抢修恢复时间、抢修进展情况、恢复情况、恢复时间等。

4) 杆塔:主要包括所属单位、杆塔编号、杆塔倒杆及恢复的数量、故障类型、发现时间、受损长度 (公里) 、是否恢复、恢复时间等。

5) 电力用户:主要包括电压等级、停运及恢复情况、用户级别、停电户数、恢复供电户数等。

6) 设备:主要包括设备名称、调集数量、调集容量、到达数量及容量、投入救灾的数量及容量。

7) 其他:主要包括电厂名称、机组情况, 水库24 h水位 (水库水情) , 大坝检测项目及监测点、监测时间, 降水量 (雨情) , 供电总量、煤电耗用情况等。

1.2 报表组件

针对突发事件来临时快速生成报表, 并高效填报、汇总及统计电力应急数据的需求, 本文引入了报表组件。报表组件是本文设计的电力应急信息报表快速生成方法中组成报表的最小原子颗粒, 根据电力应急信息的分类, 将报表组件分为变电站组件、输电线路组件、输电线路铁塔倒塔组件、人员伤亡组件、应急抢修队伍及人员组件、重要电力用户组件等7个专业类别, 共计46个组件。

通过报表组件生成一张电力应急信息报表的过程可演示如下。首先假定需要生成一张报表名为受损变电站停运及恢复情况统计表, 定义为报表m (见图1和图2) 。

经过如图1和图2的分析知, 报表m需要使用4个报表组件, 一个组织机构组件 (定义为Si) 和重复使用3次变电站组件 (定义为Sj) , 即500 k V变电站组件、220 k V变电站组件、110 k V变电站组件, 其中i, j[1, n], n6。所以该报表快速生成的表达式为m=Si+500 k VSj+220 k VSj+110 k VSj。

电力应急信息报表要表达的内容越多, 报表组件之间的关系就越多, 结构就越复杂。要执行一个报表, 有时需要多个报表组件排列组合并行执行, 其复杂度较大。如生成一张变电站线路停运及恢复情况表, 需要变电站组件也需要线路组件, 经过依次排列组合后, 可以快速生成一张新的电力应急信息报表, 从提高应急处置效率的角度来讲, 这种利用多个报表组件合并执行的快速生成报表方法比重新画一张报表省时省力的多。

2 电力应急信息报表系统结构

根据上述思路, 本文设计了电力应急信息报表系统, 作为电力应急指挥信息系统的组成部分之一, 该应用主要分为报表管理系统和报表处理系统。电力应急信息报表系统的总体结构如图3所示。

2.1 报表管理系统

报表管理系统是管理电力应急信息报表的基础数据和与其相关数据的系统, 主要功能包括报表事件关联维护、报表填报机构定义、报表基本信息定义、报表组成结构配置、报表组件定义维护等。

1) 报表事件关联维护:将具体发生的电力突发事件与报表建立一对一或一对多的对应关系, 使各省、地市等机构通过该事件查询出需要填报或统计的报表。

2) 报表填报机构定义:目的是针对这次电力安全事件, 指定需要填报的省、地市等机构, 并及时通知相关机构或单位填报相应的报表。

3) 报表基本信息定义:定义报表模板的基本信息, 包括报表名称、填报周期、报表填报模板和统计模板的名称、事件类型、报表的类型、状态等信息。

4) 报表组成结构配置:将报表组件通过可视化的定义方式进行组合配置, 通过重用现有报表组件的方式, 减少开发工作量, 提高应急处置效率, 实现快速生成电力应急信息报表的需求。

5) 报表组件定义维护:为报表组件提供管理功能, 包括对报表组件的含义说明、参数配置说明、组件保存位置等信息的维护。

2.2 报表处理系统

报表处理系统由报表组件库和报表处理引擎构成, 负责生成最终的报表, 是按照报表结构进行报表组件组装的技术实现部分。

报表处理引擎服务器主要驱动报表组件构成最终的报表, 并提供柱状图、饼状图、折线图等图表展示方式。

3 报表快速生成流程及步骤

报表为用户提供了直观、综合的业务结果查看方式, 其制作过程和执行效率影响系统开发效率和性能。本文提出了简洁、高效的电力应急信息报表快速生成流程[6] (见图4) 。

报表生成的步骤如下。

1) 建立报表基本信息, 包括报表名称、填报周期、报表类型和备注等信息。

2) 根据业务分析需要的报表组件, 在报表组件库中寻找相应的业务组件, 可利用报表组成结构配置中的结构序号、报表编号、结构名称、结构组件报表等将所需组件按一定的次序排列组合。

3) 报表组件库在建立时需根据业务分析, 尽量合并内容相似、形式相同的组件, 提高表格的可复用度, 通过报表组成结构配置扩展报表组件库。

4) 在展示填报报表时, 通过组件名称, 在报表处理引擎服务器中查找别名一致的报表组件;根据报表组成结构配置的组合方式将报表组件结合, 并根据报表处理引擎服务器中的报表处理引擎将填报报表展示出来供填报。

5) 在展示统计报表时, 根据报表基本信息寻找到相关统计报表的模板名称, 选择需要统计的起始时间和结束时间, 通过组件名称, 在报表处理引擎服务器中查找别名一致的报表组件;根据报表组成结构配置的组合方式将报表组件结合, 并根据报表处理引擎服务器中的报表处理引擎将统计报表展示出来供分析。

6) 报表处理引擎可将数据在表格、柱状图、饼状图、折线图等图表中做展示。

7) 至此, 完成报表从制作到通过报表处理引擎服务器展示的全过程。

4 电力应急信息报表生成方法的优点

本方法采用B/S和C/S结构混合应用, 可以使用户在界面友好的系统平台下, 简单快速地完成报表的设计工作[7], 并能准确美观地完成报表的展现工作。用户可以在系统的报表组件库中找到相应的报表组件, 按某种规则排列组合可以实现具体的报表模板, 做到了模板的复用, 可实现较高的开发效率, 而且简单易用。系统用B/S结构实现的部分, 主要用于用户对报表模板的选择和灵活配置;系统用C/S结构实现的部分, 主要用于完成报表组件库以及每个组件的定义, 将用户定义的报表的具体样式和系统产生的数据进行融合, 并最终实现报表的展现。

例如表1所示的某省公司城网低压电力设施受损和恢复情况填报表, 在同一张报表上需要组合低压线路、电杆2个不同的报表组件, 采用低压线路填报组件和电杆填报组件的方式将该报表拆成2个组件。为保证报表结构的完整性, 在填报时, 所有报表组件都完成填报任务才能结束填报。填报报表只需要填写报表中当日损失或当日恢复情况, 统计报表显示出一定时间段内的累计损失值或累计恢复值。之所以在填报表中不出现累计值, 是为了避免在填报该报表时, 出现人为的累计错误, 导致不必要的误差, 从而减轻填报人员的工作量, 提高报表的使用效率。这种方法的优点如下。

1) 细粒度业务组件式设计, 可以灵活配置, 能够重复利用报表业务组件, 快速生成报表, 减少开发周期, 提高开发效率。

2) 组件库种类多, 涵盖面广, 数据结构合理, 业务耦合较小, 能快速高效的制作报表模板, 适应用户的各种需求。

3) 能够多级部署, 可以设计填报报表和统计报表, 具有数据校验和纠错功能, 保证数据的有效性及完整性。

4) 由报表管理系统、报表处理系统2部分组成, 报表管理系统由报表事件关联维护、报表填报机构定义、报表基本信息定义、报表组成结构配置、报表组件定义维护等一系列管理功能组成, 用于使用报表组件来配置管理事件相关的报表结构, 并对报表组件进行管理维护。报表处理系统由多个可被复用的细粒度报表组件与报表处理引擎构成, 负责生成最终的填报与统计报表。

5 结语

常见的报表往往有很复杂的标题行和列, 树形标题也很常见。制作报表模板关键在于数据库的设计、数据集的编写和报表模板的设计, 本文提出了一种把电力应急信息报表快速生成方法, 将其应用于应急指挥信息系统中, 可满足决策层对电力突发事件应急信息展示多样性、图表展示等多种需求, 易于快速开发、使用方便、可反复使用、参数设置少是本文的关键, 开展电力应急信息报表快速生产方法的研究能够提高电力行业的应急管理水平, 提高公司提高处置效率, 提升公司社会形象, 有效保障电网安全和公共安全, 为公司履行社会责任提供支持。

摘要:文章给出了一种电力应急信息报表快速生成方法, 对电力应急信息的概念、分类进行了阐述, 分析了报表组件的组成, 详细介绍了电力应急信息报表系统的架构和生成步骤, 总结了本方法的优点, 将其应用在电力应急指挥系统中, 能解决对电力系统中因自然灾害等引起的各类电力突发事件应急信息的快速填报、汇总统计、整理分析。通过本方法的应用, 能够提高应急人员在应急处置中事故处置决策能力, 大大提高应急处置和抢修的效率, 缩短应急处置时间, 把电力突发事件造成的损失降到最低。

关键词:电力应急信息,报表,电力突发事件,应急处置

参考文献

[1]陈希.电网应急平台研究与建设[M].北京:中国电力出版社, 2010.

[2]朱朝阳, 于振, 刘超.电力应急管理理论与技术体系研究[J].电网技术, 2011, 35 (2) :178–182.ZHU Chao-yang, YU Zhen, LIU Chao.Research on theory and technical system for power emergency management[J].Power System Technology, 2011, 35 (2) :178–182.

[3]门永生, 金龙哲, 朱朝阳, 等.电力突发事件应急标准体系框架研究[J].电信科学, 2013 (11) :104–108.MEN Yong-sheng, JIN Long-zhe, ZHU Chao-yang, et al.Research on emergency standard framework of power emergencies[J].Telecommunications Science, 2013 (11) :104–108.

[4]赵炜妹, 丁辉.基于突发事件本体模型的智能推理过程在应急案例搜索中的应用[C]//2011电力通信管理暨智能电网通信技术论坛论文集, 2011.

[5]刘超, 周刚, 王理金, 等.电网企业对外停电事件应急处置理念与流程[C]//2012年电力通信管理暨智能电网通信技术论坛论文集, 2012.

[6]王秋生, 肖莹莹, 杨浩, 等.实验室信息管理系统中动态报表自动生成技术[J].工业计量, 2011, 21 (3) :26–29.WANG Qiu-sheng, XIAO Yin g-ying, YANG Hao, et al.Automatic generation of dynamic report in laboratory information management system[J].Industrial Measurement, 2011, 21 (3) :26–29.

可复用的报表生成系统设计与实现 篇6

关键词:报表,软件复用,Java,数据库

0引言

一个好的企业信息化系统应该提供数据正确、样式明晰的报表。在企业信息化系统的实现中,许多企业倾向于购买商业报表生成系统来实现报表的生成,比如Crystal Report、Formula One、Cognos等,这些软件的开发过程都是以样式为中心进行的,其报表数据和报表样式耦合度过高,在许多企业报表样式不规范且样式繁多的情况下,不利于修改维护且复用性较差,大大浪费了人力和物力。因此本文提出一种基于数据库的模板可定义、用户自由配置、动态生成报表样式的数据和报表样式高度分离的报表生成系统,以解决上述的问题。以笔者为云南某钢铁厂所做的力学检验系统为例进行说明。

1报表生成系统的设计与实现

本报表生成系统是一个B/S和C/S结构混合应用的系统,可以使用户在界面友好的系统平台下,简单快速地完成报表的设计工作,并能准确美观地完成打印工作。用户可以在系统的模板库中找到与欲打印的报表类似的报表模板,在此基础上进行较小的配置就可以实现具体的报表模板制作,做到了模板的复用,可实现比较高的开发效率,而且简单易用。系统用B/S结构实现的部分,主要用于用户对报表模板的选择和灵活配置;系统用C/S结构实现的部分,主要用于完成报表模板库的定义,将用户定义的报表的具体样式和系统产生的数据进行融合,并最终进行报表打印生成。报表生成系统的总体结构见图1。

1.1 生成报表模板库

报表模板库是报表模板的集合,报表模板是将企业中存在的各种报表,根据其在表头和表尾布局、报表样式的不同进行分类,将布局样式相同的分到一类,然后根据这一类的布局样式,用程序代码将其描述出来。这里所说的描述是指在一定层次基础上的程序代码表达,就是指先用C/C++、VB、VC、Delphi、Java等语言脚本在各自的语言编程环境中实现报表打印的最基本部分,如数据的准备、页面的准备和参数设定、数据的分割等。

数据准备部分包括定义表体中的数据变量、标题、副标题及报表制作人签名、日期等附加数据变量,另外还有一些诸如确定表格的行高和列宽等其它的变量。

页面准备部分包括获取纸张的大小、页边距、行间距等,设定页面布局、表头及其附加数据的字体大小及位置与字数,以及表格区域的位置及长宽大小等。页面参数部分包括上、下、左、右边距,标题字体及标题行的高度,是否有副标题以及副标题字体和副标题的高度,表体的字体,表体是否显示列头,表尾是否包含制表人签名和制表时间等等。

数据的分割就是指按照报表中表体数据部分的列数量、各列的宽度和页面表格部分的宽度可以得出数据的列分页数。行高相同,并假定每页表格能容纳的行数一定,行分页数也就定了,那么分页方案也就确定了。

本系统是采用Java开发的,以Java中接口的方式编程,具体就是把以上所述的所有功能都定义在一个名为report的包里,以接口的方式写好;然后在另一个包reporting里用到哪些接口就写相应的类来具体地实现相应接口。这样就完成了程序代码描述报表模板的基础准备。

1.2 融合生成具体报表打印模板

融合生成具体报表模板是指将从定义的模板库中找出的模板与用户定义的模板配置数据融合生成具体的报表打印模板, 融合功能用C/S结构实现。所谓用户定义的模板配置数据是指用户对于各种报表按照布局和样式进行分类后的具体补充。以我们所做的系统为例,从模板库中找出的模板为定义报表,有副标题且都在主标题上居中,但是副标题一个是二轧厂、一个是桥钢,那么就需要用户对不同厂进行相应的配置。即使同是二轧厂的,但是不同种产品其力学检验的项目种类和项目数是不同的,此时用户只要对不同的产品检验项目进行不同的配置,就可以自动生成与不同产品对应的具体的报表打印模板。

用户设计定制具体的报表打印模板时进行配置的功能是用B/S结构实现的,只要有相应的权限用户就可以在任何地方通过浏览器对需要打印的报表进行选择配置,一旦配置好,只要是需要用此样式报表的用户都可以重复打印使用,充分显示了在分布式系统中应用的方便灵活性。

1.3 融合模板与报表数据生成报表

融合模板与报表数据生成报表是指具体的报表打印模板与从数据库中提取的报表数据融合生成的最终报表,用于预览和打印,融合功能是用C/S结构实现。实现方式和融合生成具体报表打印模板是基本一样的。这一步主要是将报表数据加入到具体的模板中,通过报表模板中对报表布局样式的程序描述代码,将报表数据进行数据分割后计算出报表的总页数,以已经定义的页面样式通过打印机打印出来或者送到屏幕形成打印预览。

本系统是基于Java开发的,所以无论是融合生成具体报表打印模板中用户定义的模板配置数据的传递,还是融合模板与报表数据生成报表中报表数据的传递,都是以Vector类的实例的形式进行的,方便易用。

对于以上融合生成具体报表打印模板中的用户定义的模板配置数据和融合模板与报表数据生成的报表中的报表数据,都是通过自己编写的数据库搜索引擎来进行相应数据的提取。一个好的数据库搜索引擎对于迅速有效地找到想要的数据是非常重要的。数据库搜索引擎是基于JDBC实现的,分别以报表的样式最小区分单位产品——记录名和报表的数据最小区分单位——自定义的编号来进行数据关联提取。企业的实际业务中数据最小区分单位是产品的记录名加报告单编号,但是这种区分法对于每一张报表的数据提取是非常不方便的,所以在本系统中自定义了区分编号,达到了快速准确提取数据的目的。

2系统应用状况

本报表生成系统已经成功用于云南某钢铁厂的力学检验系统中,取得了比较不错的效果。在报表设计中,对于新报表的创建和旧报表的维护都显示了较高的开发、维护效率。以B/S和C/S混合的结构设计,集成了B/S结构的灵活性和C/S结构的本地功能强大性,而且报表的定制界面友好方便,在同类型的企业应用系统中同样适应。

3结束语

本文提出一种基于数据库的模板可定义、用户自由配置、动态生成报表样式的数据和报表样式高度分离的报表生成系统,并且以云南某钢铁厂的力学检验系统中基于Java开发的报表生成系统为例,具体介绍了系统的设计和实现。在实际应用中确实体现出了本系统设计简单、方便适用的特点,其复用性设计带来了设计报表的高效率,其报表样式与数据的高度分离性可以使本系统有着很好的可扩展性。

参考文献

[1]许南山,孙风平.基于XML的可复用报表生成系统的设计与实现[J].计算机工程与设计,2006,27(3);463-465.

动态报表生成器 篇7

在信息管理系统的开发中, 经常要导出数据或者报表到Excel文件中 , 这就需要用到对Excel文件读写的技术 , 而在.NET平台上 , 一般读写这类Office文件都需要用到Office Com组件, 对环境的依赖性很强[1]。但是也有一些开源免费的组件可以达到类似的效果, 在.NET平台, NPOI组件就可以很完美地支持对Excel文件的读写操作。不仅不依赖Office环境, 同时开发效率也很高。

在.NET平台, 使用C# 编程语言和NPOI组件, 动态到处理报表数据到Excel文件中。主要涉及到Excel报表的表头的设计, 还有单元格合并, 表格样式, 单元格的数据格式等内容。

2 Excel 报表要求

假如系统要导出一个按照“名称+日期”格式的Excel文件, 要导出的基本的格式如图1所示。

3 开发思路与实现

先分析一下所需要的报 表结构 , 这个报表 主要由标 题、表头、行单元格合并、列单元格合并、 文字格式设置、边框样式设置几部分内容。然后根据NPOI提供的API, 编写操作这些基本的功能函数, 可以进行封装, 方便开发和后期调用。下面将对开发过程中核心的函数进行讲解实现的思路。

3.1 单元格的边框

从图1的要求可以看到, 每个单元格, 包括合并后的单元格都需要细边框, 需要在程序中设置才行。NPOI中设置边框样式的类为: HSSFCell Style, 下面就是封装设置边框的函数:

在设置标题和其他格式的时候, 可能会要设置字体, 只需要使用HSSFFont对象即可, 如下面的代码, 将HSSFFont对象赋值后, 使用HSSFCell Style的Set Font方法来将字体应用到样式中即可。

3.2 设置单元格内容

导出报表最主要是单元格的内容和格式。在设置内容的时候, 就需要用到上面的样式函数。如下面的代码:

3.3 总体报表导出

上面是几个核心的方法, 整理的报表导出思路是, 按照每一行写入对应的信息, 每一行按照列的顺序写入对应单元格的值和格式。直循环完成所有的数据写入。注意到第1列要对列表进 行单元格 合并 , 使用到的 函数是sheet对象的Add Merged Region方法。总体的导出代码如下 :

4 结语

上一篇:数学学习方法小议下一篇:认知心理视角