基于.NET煤矿企业报表开发.doc
基于.NET煤矿企业报表开发 基于.NET 煤矿企业报表开发 彭超* 作者简介彭超,(1985-),男,在读研究生,主要研究方向无线网络传输. E-mail 象语言的强大功能,开发者可迅速创建基于Web 的、数据库密集型的应用程序,能够满足 应用程序的开发与扩展的需要。 .NET 的核心内容之一就搭建第三代互联网平台,这个网络平台将打破不同的上网设备、 45 不同的操作体统、不同的网站,以及各大机构或行业之间的网络障碍,解决网站之间的协同 合作问题,最大限度地实现资源共享。 另外,它不要求程序员使用一种特定的语言程序,可以使用多种.NET 兼容语言的任意 组合来创建一个应用程序,这样一个程序开发团队中的个人可以采用自己最精通的.NET 语 言,再各自充分利用.NET 的性能、测试和完全优化特性,一个团队很容易开发出功能强大 50 和性能可靠的应用程序。 2 报表总体设计及实现 2.1 需求内容 本文开发的单位是平煤十一矿,经过前期的调研和总结,本矿的报表形式一般涉及到表 格形式、柱状图形式和饼状图形式。表格形式的报表包括了标题、表头、表体、表尾和所有 55 辅助的说明文字等内容,其中的文字域既有动态文字域(表格中的内容是给定的)又有动态 文字域(表格中的内容是编程生产或者是从数据库中读取)[5]。最终要求生成各类Web 报 表,具体功能 1 按照角色权限访问数据。 2 各科室数据的录入。 60 3 生成报表。 4 报表分析。 5 导出、打印报表。 基于以上的功能需求,集成平台的处理框架如下图 65 图1 总体功能框图 Fig1 general framework 2.2 具体实现 因为开发过程中所涉及到的报表数目过多,本文就生产事故罚款报表作为讲述对象,图 70 2 是矿方提供的一张原始生产事故罚款报表。 图2 罚款报表原始图 Fig.2 original reporting 75 矿方要求此表的整体形式不表,只是在责任单位一列中作动态合并,年份用YYYY 年 MM 月形式显示。 2.2.1 前台设计 此前台界面采用了HTML、ASP.NET、CSS、JavaScript 技术,授权用户进入此Web 界 面后,当前默认的查询条件是当前的年份和月份,用户也可随意按照自己设置的时间进行查 80 询。查询的结果集将会填充进,以TabName 命名的自己所编写的table 控件中。然后用户可 以把查询结果导出、打印。前台实现效果如图3 图3 报表查询图 85 Fig.3 inquire about reporting 2.2.2 标题实现 报表标题中的年份是动态生成的,其它文字都是静态的,但是所要显示的两行文字的字 体不同,一行文字居中,另一行文字居右。据此特性在集成开发环境(IDE)中采用了C 90 语言与HTML 语言的组合,核心代码如下 TabName.Caption ““ Time.Year.ToString “年“ Time.Month.ToString “月生产事故报表“ “制表平煤 股份十一矿调度室“;实现效果如图4 95 图4 报表标题实现效果图 Fig.4 caption of reporting effect demonstration 2.2.3 标表头及表体实现 100 以下是建表的基本编程函数 1 addcellTableRow trow, string str, int colums //数据添加函数 2 modicellTable tab, int row, int col, string str // 数据修改函数 3 hebingrowTable tab, int row, int col, int rowspan// 合并行函数 4 hebingcolTable tab, int row, int col, int colspan // 合并列函数 105 表头中的内容是静态不变的,可以通过静态填充实现,并且表头中都是文字性的内容, 要实现矿方提供的样式可以通过以上的几个函数与Table 的HorizontalAlign 属性来实现。 表体中的数据来源于数据库,当用户按照条件查询时,Web 服务器从数据库中读取相 关数据,在IDE 中按照矿方提供的具体公式对数据进行处理,再填充到Table 控件中。 2.2.4 标数据库设计 110 数据库的设计是在Server 2000 的企业管理器[6]中实现的,通过调研,对此报表的数据 来源,设计了三个表分别命名为He_DepManage(部门管理表)、He_Accident(事故管理表)、 He_PlanMonth(全矿月计划表)。表中的设计如下面三张图 115 图5 部门管理表界面图 Fig.5 management of department interface 图6 事故管理表界面图 120 Fig.6 management of accident interface 图7 全矿月计划表界面图 Fig.7 mine monthly plan interface 125 在Web 服务器与数据库的交互中,在Server 中使用了用来完成特定数据读取的SQL 语 句集,也就是存储过程[7]。这些语句集经编译和优化后存储在数据库服务器中,用户通过指 定存储过程的名称并给出参数(如果该存储过程带有参数)调用即可。大大增强了SQL 语 言的功能、效率及灵活性。同时可以将复杂的任务划分为多个简单的商业逻辑。 130 综合以上的综述,一张完整的并且按照矿方需求的生产事故罚款报表就成功开发出, Web 效果图如图8 图8 生产事故罚款报表效果图 Fig.8 accident penalty reporting effect demonstration 135 3 报表分析 为了让此报表中的数据转变为更高价值的信息知识,对此报表中的数据进行了分析,采 用了折线图[4]形式展现出来。通过分析折线图,矿方管理人员可直观的发现问题所在,对下 一步的指导生产、消除安全隐患、提高生产安全系数都有着指导性的作用。图9 是分析折线 140 图 图9 生产事故罚款报表分析图 Fig.9 Analysis of accident penalty reporting 145 4 结论 开发过程中采用的简单化、模块化编程思想,具有通用性,使得开发人员的主要精力投 入到客户的特定需求上,并提高的了开发速度。开发出的子系统功能具有良好的可定制性, 可以满足该矿各类报表的生成。此报表子系统的成功开发,为该矿管理层的优化管理提供了 科学的数据依据。同时,也加快了该矿的信息化建设。