基于WEB的企业用能信息在线填报系统设计
Posted 童话的守望者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于WEB的企业用能信息在线填报系统设计相关的知识,希望对你有一定的参考价值。
源码下载:http://download.csdn.net/detail/yiduiguwen/9523660
二、课题来源及选题依据
对于任何一家企业来说,其正常的生产过程都需要各种的一次或二次能源,针对能源使用计量数据的管理和应用,在企业发展过程中有着日益重要的作用。企业用能数据反映了消耗水平的高低,可以及时有效地指导企业有关部门及时采取行之有效的措施降低能耗,提高企业的节能意识,推动节能工作深入开展。
对于企业用能情况的查询与更新,不同企业员工应当具有不同的处理权限,比如某些低级别用户只能对部分信息进行查阅,而高级别用户可以查阅更多信息,可以上报其部门能耗信息,甚至是总结管理后进行信息发布。考虑到传统用能信息管理方式的落后不灵活等问题,本文设计基于WEB技术搭建企业用能信息在线填报系统,在ASP.NET动态WEB应用程序开发平台上使用C#语言进行设计,方便任何用户在任何能接入企业内部网络的计算机上,使用浏览器就能完成相应查阅、填报和管理操作。
三、本设计(论文或其他)应达到的要求:
① 了解熟悉企业基本用能信息情况及流程;
② 熟练掌握VS2010开发环境的使用方法;
③熟练掌握C# 语言的语法等使用;
④熟悉ASP.NET动态WEB应用程序开发平台的基本原理与开发环境;
⑤熟练掌握ASP.NET的内置对象、常用控件、数据验证技术、母版页和动态链接Access数据库方法;
对于一家企业来说,其能源消耗是其企业管理中一个重要组成部分,对于企业的正规化管理和健康成长都至关重要。通过对能源计量数据的应用分析,测算、评价可以找出生产与管理中的各类问题,以利采取有效办法,用数据说话,认真解决提高能源利用率,降低成本,走科技含量高、能源消耗低、资源节约型的工业化道路,以最小的资源消耗去创造最大的经济效益。
对于企业用能情况的使用,应当针对企业不同员工进行级别的划分,不同级别有其相应的操作权限。本文设计设置三种级别的员工用户,分别是游客用户、普通用户和管理员用户,分别可以对用能信息进行查阅、查阅填报和查阅整理发布的相应操作。
本文设计基于WEB技术搭建企业用能信息在线填报系统,在ASP.NET动态WEB应用程序开发平台上使用C#语言进行设计,方便任何用户在任何能接入企业内部网络的计算机上,使用浏览器就能完成相应查阅、填报和管理操作。
关键词:企业用能;WEB;ASP.NET;
ABSTRACT
For anenterprise, its energy consumption is an important part of its business management,and it is also very important to its standardized management and healthygrowth. By analyzing the application of energy measurement data, measurementand evaluation, people can find out the problems in Production and management,so that they can take effective measures, make good use of data, improve energyefficiency, cut costs and take the high technological content, low energyconsumption, resource-saving industrial road. In this way, they can minimizethe consumption of resources to create the greatest economic benefits.
According to theactual situation of enterprise energy, we should Separate the enterpriseemployees. Different levels have their appropriate operating rights. In thispaper, there have there kinds of user who have different rights. They are touristuser, ordinary users and administrator. They can use information on energy to access,fill and release.
In this paper,we will design an online reporting system using WEB on energy usage. We willuse C#、ASP.NET tofinish the system. This system can help everyone in the enterprise to use theinformation about energy usage by browser.
Key words: enterpriseenergy usage; WEB; ASP.NET
第1章 绪论
本章将就本课题的研究内容、意义,国内外发展基本概况和存在的问题进行说明,并对本课题的指导思想和应解决的主要问题作阐述。
1.1 本课题的研究内容和意义
当下计算机技术发展迅速,互联网在人们生活中的应用越来越多。同样,对于一家企业来说,能将互联网技术很好地运用在其平日的工作管理中,将对其健康成长发挥很大作用。不难发现,任何企业的产品工业化生产都需要消耗大量不同种类的能源或资源,企业常用能源种类基本可以分为一次能源、二次能源和载能工质等,而这些种类繁多的能源消耗管理对企业来说是一个需要关注的部分。本文针对传统能源消耗管理系统不维护使用落后不智能的问题展开研究设计,拟利用计算机技术在智能化系统管理中的优势来设计一套全新的企业用能信息填报管理系统,设定B/S为基本架构,利用ASP.NET开发平台,在Microsoft Visual Studio 2010环境下用C#语言进行编程设计。
由于本文拟设计的企业用能信息填报系统的基本架构为B/S模式,故其只需要一台服务器作为后端服务支持,对网站进行日常维护,而其前端为浏览器,所以任何用户只需要在一台接入企业内部网络的计算机上通过网址就可以方便地访问填报系统。B/S架构无需像C/S架构那样在客户端计算机上进行客户端程序安装,甚至不需要进行运行环境的配置,对计算机的硬件配置也无过多要求。这种设计对企业用能信息的填报人员、管理人员和高层人员都将带来很大的便利,可以在权限内迅速查阅所需用能信息,可以大大缩短填报工作时间,也可以方便管理员综合各部门上报信息,进行审阅、总结。
1.2 国内外的发展概况[6]
当前无论国内外,企业能源计量数据统计都存在一些问题
(1)对能源计量数据的重要性、全面性、受控性认识不足。能源计量数据存在多头采集,能源计量数据采集人员经常变动、更换;采集时间、路线经常变动;能源结算日期与产量结算日期间隔相差较大,能源计量数据修改无相应制度作保障,有时还存在对能源计量数据进行人为估算等,都无法保证计量数据的正确。有些重点耗能设备未能配备相应的计量器具,有些企业将负荷稳定的设备也纳入考核范围等。
(2)没有把计量数据作为企业能源量化管理、实现真实成本核算的基础,存在“各自为政、数出多门”的现象,一些计量管理人员和技术人员缺少系统的能源计量知识和专业化的管理经验,人员素质有待提高。
(3)对能源计量数据与耗能工艺参数和设备技术参数的关系缺乏系统的技术分析,对能源的合理利用程度缺乏科学的评价,没有累积比较系统的资料等,不利于挖掘节能潜力。
(4)虽然大多企业有着自己的能源计量填报系统,但其中主要是以C/S为架构的,这就对上报人客户端软件的使用提出了一定的要求,另外对用户计算机的性能也有一定的要求。
1.3 本课题应达到的要求
(1)了解熟悉企业基本用能信息情况及流程;
(2)熟练掌握VS2010开发环境的使用方法;
(3)熟练掌握C# 语言的语法等使用;
(4)熟悉ASP.NET动态WEB应用程序开发平台的基本原理与开发环境;
(5)熟练掌握ASP.NET的内置对象、常用控件、数据验证技术、母版页和动态链接Access数据库方法;
(6)在ASP.NET平台上构建企业用能信息在线填报基本框架,实现基础查阅、填报和管理发布功能。
第2章 基本概念
2.1 企业用能信息相关概念
2.1.1 企业常用能源种类[7]
1、能源分为一次能源、二次能源和载能工质,其定义如下:
(1)一次能源:是指从自然界取得的未经任何加工、改变或转换的能源,如:原煤、原油、天然气、生物质能、水能、核能,以及太阳能、地热能、潮汐能等。某些一次能源所含的能量间接来自太阳能,由太阳能自然转换,即不通过人工形成,又称为一次直接能源,如煤炭、石油、天然气、生物质能、水能、风能、海洋能等均属此类。
(2)二次能源:也称“次级能源”或“人工能源”,是由一次能源、通过加工或转换得到的其他种类或形式的能源,包括煤气、焦炭、汽油、煤油、柴油、重油、电力、蒸汽、热水、氢能等。一次能源无论经过几次转换所得到的另一种能源都被称作二次能源。在生产过程中的余热裕压,如锅炉烟道排放的高温烟气,反应装置排放的可燃气体、蒸汽、热水,密闭反应器向外排放的有压流体等也属于二次能源。
(3)载能工质:是指由于本身状态参数的变化而能够吸收或放出能量的介质,即介质是能量载体。例如水蒸汽是最重要的载能工质。
2、企业常用的能源是二次能源和载能工质,见表2-1:
表 2-1企业常用能源
能源种类 | 电力 | |
固态能源 | 煤炭 | |
焦炭 | ||
液态能源 | 原油 | |
成品油 | ||
重油 | ||
渣油 | ||
气态能源 | 天然气 | |
液化气 | ||
煤气 | ||
载能工质 | 蒸汽 | |
水 | ||
可回收利用的余能 |
2.1.2 能源计量数据的分析应用与管理[6]
根据计量仪表读数而得到的各种用能、耗能的计量值,节能或计量部门首选应对计量数据进行技术经济性分析,即对能源计量系统完善情况进行分析,包括用于能源计量的器具配备率、检测率、正确使用以及对企业供应能源能力与生产负荷的关系分析,用于寻找节约潜力,并指导生产管理。
能源计量数据的管理是指对能源计量数据处理工作的管理。包括建立和完善相应的管理制度、对能源计量数据采集和数据处理人员的管理与考核、定期分析数据以完善计量系统。
能源计量数据的考核包括两个方面:一是对计量器具、校准条件、管理制度、以及抄表人员、统计核算人员、检定人员的评价与考核;对原始记录的抽查、对记录情况实施考核等,确认其计量数据的准确性、可靠性和合理性。二是为科学地利用这些能源计量数据指导、评价、考核有关部门(分厂、车间、班组以及岗位)的耗能水平和经营管理水平。
能源计量数据的考核,必须与经济考核和生产技术经济管理相结合。因此,各单位的生产管理部门或能源管理人员要根据行业的降耗标准,制定本单位产品的单耗及其节能奖惩办法,报企业主管领导批准后执行。在企业的不断发展和壮大的过程中,企业管理水平的提高、设备的更新改造、新技术的应用都会使产品的能量单耗逐步下降。当产品结构、生产工艺、生产负荷、管理机构或人员变动等造成生产、管理状态发生变化时,企业的能耗在各个环节上会产生相应的变化,管理部门要根据实际情况适时调整考核指标。
2.1.3 企业能源计量状况[6]
企业能源计量状况包括了以下几个方面的内容:
(1)主要能源消耗情况
(2)能源计量管理情况
(3)能源计量器具配备和管理的情况
(4)能源计量检测和数据使用情况
(5)能源计量产生的效益
其状况相应的调查表示例见附录1~5。
2.2 WEB与ASP.NET相关概念
2.2.1 WEB[8]
(1)WEB应用程序
在开发的ASP.NET应用程序中最多的是ASP.NET Web应用程序类型,也就是ASP.NET Web窗体应用程序。例如,通常的ASP.NET网站就是这类的应用程序。最简单的ASP.NET Web应用程序包含一个目录,其中至少包含一个.aspx文件,即ASP.NET页。
(2)WEB服务
Web服务是ASP.NET提供的另一种应用程序类型。在.NET Framework中,将其称为XML Web服务,主要是为了将Web服务与XML标准关联在一起。Web服务实际上是一种能够跨Internet调用的组件,不过,Web服务的真正威力体现在基础结构中。Web服务是建立在 .NET Framework和CLR之上的,Web服务可以充分利用这些技术的优点,例如,ASP.NET支持的性能、状态管理和身份验证都可以在使用ASP.NET生成Web服务时利用。
2.2.2 ASP.NET
(1)ASP.NET发展过程[9]
ASP .NET的前身ASP技术,是在IIS2.0上首次推出(WindowsNT 3.51),当时与 ADO 1.0 一起推出,在IIS 3.0 (Windows NT 4.0)发扬光大,成为服务器端应用程序的热门开发工具,微软还特别为它量身打造了VisualInterDev开发工具,在1994年到2000年之间,ASP技术已经成为微软推展WindowsNT 4.0平台的关键技术之一,数以万计的ASP网站也是这个时候开始如雨后春笋般的出现在网络上。它的简单以及高度可定制化的能力,也是它能迅速崛起的原因之一。不过ASP的缺点也逐渐的浮现出来:面向过程型的程序开发方法,让维护的难度提高很多,尤其是大型的ASP应用程序。解释型的VBScript或JScript语言,让性能无法完全发挥。扩展性由于其基础架构的不足而受限,虽然有COM元件可用,但开发一些特殊功能(如文件上传)时,没有来自内置的支持,需要寻求第三方控件商的控件。
1997年时,微软开始针对ASP的缺点(尤其是面向过程型的开发思想),开始了一个新的项目。当时ASP.NET的主要领导人ScottGuthrie刚从杜克大学毕业,他和IIS团队的Mark Anders经理一起合作两个月,开发出了下一代ASP技术的原型,这个原型在1997年的圣诞节时被发展出来,并给予一个名称:XSP,这个原型产品使用的是Java语言。不过它马上就被纳入当时还在开发中的CLR平台,Scott Guthrie事后也认为将这个技术移植到当时的CLR平台,确实有很大的风险(huge risk),但当时的XSP团队却是以CLR开发应用的第一个团队。
为了将XSP移植到CLR中,XSP团队将XSP的内核程序全部以C#语言进行了重构(在内部的项目代号是 "ProjectCool",但是当时对公开场合是保密的),并且改名为ASP+。而且为ASP开发人员提供了相应的迁移策略。ASP+首次的Beta版本以及应用在PDC 2000中亮相,由Bill Gates主讲Keynote(即关键技术的概览),由富士通公司展示使用COBOL语言撰写ASP+应用程序,并且宣布它可以使用Visual Basic .NET、C#、Perl、Nemerle与Python语言(后两者由ActiveState公司开发的互通工具支持)来开发。
在2000年第二季时,微软正式推动.NET策略,ASP+也顺理成章的改名为ASP .NET,经过四年的开发,第一个版本的ASP .NET在2002年1月5日亮相(和.NET Framework1.0),Scott Guthrie也成为ASP .NET的产品经理(后来Scott Gu主导开发了数个微软产品,如:ASP .NET AJAX、Silverlight、SignalR以及ASP .NET MVC)。当前ASP.NET的版本已经更新到了4.0。
(2)ASP.NET 4.0[10]
ASP.NET(Active Server Page.NET)是微软公司推出的基于.NET 4.0框架的新一代网络编程语言,也是目前最新的WEB技术之一。作为之前各个ASP.NET版本的集大成者,ASP.NET 4.0开创了公共语言运行库和动态语言运行库相结合的编程框架,可用于在服务器上生成功能强大的WEB应用程序。
ASP.NET 4.0框架支持多种语言,包括C#、VB、J#、C++等,但无论开发语言为何种,程序在被执行之前,所有的.NET语言都会被编译成为一种低级别的语言,这种语言就是中间语言(IntermediateLanguage,IL)。CLR之所以支持很多种语言,就是因为这些语言在运行之前被编译成了中间语言。正是因为所有的.NET语言都是建立在中间语言之上,所以VB和C#具有相同的特性和行为。因此一个利用C#编写的WEB页面可以使用一个使用VB编写的组件,同样使用VB编写的WEB页面也可以使用C#编写的组件。
.NET框架提供了一个公共语言规范(Common LanguageSpecification,CLS)以保证这些语言之间的兼容性。只要遵循CLS,任何利用某一种.NET语言编写的组件都可以被其他语言所引用。CLS的一个重要部分是公共类型系统(Common TypeSystem,CTS),CTS定义了诸如数字、字符串和数组等数据类型的规则,这样它们就能为所有的.NET语言所共享。CLS还定义了诸如类、方法、实践等对象成分。然而事实上,基于.NET进行程序构台程序员却没有必要考虑CLS是如何工作的,因为这一切都有.NET平台自动来完成。其实CLR只执行中间语言代码,再把它们进一步编译成为机器语言代码以全当前平台能执行。
(3)开发工具[9]
ASP .NET的网站或应用程序通常使用 Microsoft(微软)公司的IDE(集成开发环境)产品Visual Studio进行开发。在开发过程中可以进行WYSIWYG(What You See Is What You Get ,所见即为所得)的编辑。其它开发工具包括AdobeDreamweaver和SharpDevelop等。
(4)处理架构[9]
asp.net运行的架构分为三个阶段,分别为在 IIS 与 Web 服务器中的消息流动阶段、在asp.net网页中的消息分派阶段和在asp.net网页中的消息处理阶段。
(5)ASP.NET页面与服务器交互[10]
ASP.NET页面作为代码在服务器上运行。因此,要得到处理,页面必须在用户单击按键(或者当用户选中复选框或与页面中的其他控件交互)时提交到服务器。每次页面都会提交回自身,以便它可以再次运行其服务器代码,然后向用户呈现其自身的新版本。传递WEB页面的过程如下:
l 用户请求页面,使用HTTP GET方法请求页面,页面第一次运行,执行初步处理(如果已通过编程让它执行初步处理);
l 页面将标记动态呈现到浏览器中;
l 用户键入信息或从可用选项中进行选择,然后单击按键。如果用户单击链接而不是按键,页面可能仅定位到另一页,而第一页不会被进一步处理;
l 页面发送到WEB服务器。浏览器执行HTTP POST方法,该方法在ASP.NET中称为“回发”。更明确地说,页面发送回其自身;
l 在WEB服务器上,该页再次运行。并且可在页面上使用用户键入或选择的信息;
l 页面执行通过编程所要实行的操作;
l 页面将其自身呈现回浏览器。
只要用户仍停留在当前页面进行操作,这个过程就会一直循环下去。用户只要点击按键,页面中的信息就会发送到WEB服务器,然后就会两次运行该页面。每个循环称为一次“往返行程”。由于页面处理发生在WEB服务器上,因此页面每次的一个执行动作都需要一次到服务器的往返行程。
(6)ASP.NETWEB窗体[10]
在ASP.NET中,发送到用户浏览器中的网页是经过.NET框架中的基类(WEB页面框架中的Page类)动态生成的,而实例化的Page类就是一个WEB窗体,也就是WEB Forms。因此说,一个ASP.NET页面就是一个WEB窗体。而作为窗体对象,就具有属性、方法和事件,可以作为窗口容纳其他控件。
WEB窗体是一个保存为后缀名为.aspx的文本文件,一个.aspx页面不需要手工编译,而是在页面被调用时,有公共语言运行时自行决定是否要被编译。
在WEB窗体可以使用一般的html窗体控件,但ASP.NETBN 提供了自己的可以在服务器上运行的WEB控件。
第3章 方案构造
3.1 服务器与浏览器
本文设计的基本WEB的企业用能在线填报系统是基于B/S架构的,可以分为两个部分,分别为服务器端面和浏览器。其中服务器端布署网站基本构成文件,用户计算机只需要接入企业内部网络并安装有浏览器即可。
3.1.1 服务器
3.1.1.1网站文件
服务器端可以布置为一台1U服务器,用于存放具体包括1个公共类文件夹App_Code、1个App_Data文件夹、1个存放母版页图片的Images文件夹、1个web.config文件、15个.aspx页面文件和其相应的15个.aspx.cs文件,见图3.1:
图3.1服务器端文件
3.1.1.2 环境配置
开发或使用ASP.NET程序之前,需要安装并配置IIS(InternetInformation Server),是微软公司主推的WEB服务器。基本配置过程如下:
(1)在“控制面板”-“添加或删除程序”-“添加/删除Windows组件”中找到Internet信息服务;
(2)在弹出的“Internet信息服务器对话框”中选择要安装的选项,单击“完成”,完成IIS的安装;
(3)打开“控制面板”-“管理工具”-“Internet信息服务”;
(4)在弹出的对话框中依次展开“根”-“网站”-“默认网站”节点;
(5)右键单击“默认网站”节点,可以选择“暂停”或“停止”IIS服务。
3.1.2 浏览器
浏览器端的配置相对于服务器来说要简单很多,其只有两点要求:
(1)用户计算机已接入企业内部办公网络,能访问服务器;
(2)用户计算机上安装了一般常用的浏览器。
3.2 基本框架
3.2.1 用户设计
本文以最最简化模式进行用户设计,拟设计三类用户,分别为游客用户、普通用户和管理员用户,他们分别享有对企业能源使用计量数据不同权限的使用规则。在实际企业背景下,理应还有分类更细的用户类型,本文模型中仅设计三类用户,旨在体现出系统基本原理即可。
(1)游客用户
游客用户作为企业相对基层的员工,只享有查阅部分企业能源使用计量数据的权限,他们无法对信息进行上报,更不能对信息进行修改等管理操作。
(2)普通用户
普通用户作为企业中层管理人员,他们在所属部门中担任主管类一职,对其部门负责的能源种类进行采购量、使用量和损耗量等用量的记录。他们相对于游客用户,享有查阅更多企业用能计量数据的权限,且他们仅针对所属部门负责的能源作相关用量的在线填报。但普通用户所填报提交的信息并不能直接在查阅信息中得到及时更新,他们提交的信息会先记入数据库,等待管理员用户对其进行审阅和整理,综合各普通用户的提交数据后再进行发布。
(3)管理员用户
管理员用户作为三类用户中权限最高的用户,他们享有查阅所有企业能源使用计量数据的权限,同时要对普通用户提交的信息进行审阅和整理,综合多方信息后进行发布。他们负责信息的权威发布。
3.2.2 数据库设计
由于本文设计的是原型系统,不会出现大量用户或大量用能信息,另外相比于SQL数据库配置的纷繁复杂,Office的Access数据库轻量并且没有过多的环境配置,更适合本文设计的系统使用。
本文设计了两个数据库,分别针对用户身份信息和能源使用计量信息进行分开存放,分别为“db_user.mdb”和“db_content.mdb”。
3.2.2.1 用户身份数据库
用户身份数据库(db_user.mdb)中设计了三个表,表“tb_low”存放游客用户身份信息,表“tb_mid”存放普通用户身份信息,表“tb_high”存放管理员用户身份信息。用户在注册页面内选择需要注册的用户类型,填写用户名和密码后,系统依据用户类型在相应表中进行查找,在没有相同用户名的情况下将新注册用户信息写入表中,若有相同用户名存在,则注册失败。
三个用户信息表的基本原理相同,表结构相同,具体见表3-1:
表3-1用户身份数据库表结构
字段名称 | 数据类型 | 字段大小 | 主键 | 必填字段 |
Name | string | 20 | 是 | 是 |
PassWord | string | 50 | 否 | 是 |
3.2.2.2 能源使用计量数据库
能源使用计量数据库(db_content.mdb)中设计了两类表,第一类表存放普通用户编译后提交的用能信息,针对一种信息建立一个表,本文的原型系统中此类表设计了3个,分别为表“tb_mid2_1”、表“tb_mid2_2”和表“tb_mid2_3”。第二类表存放管理员用户审阅整理后发布的用能信息,此表为表“tb_issue”,游客用户和普通用户查阅到的用能信息其实就是这个表中的数据。
第一类表的表结构均相同,具体见表3-2:
表3-2用能信息数据库第一类表结构
字段名称 | 数据类型 | 字段大小 | 主键 | 必填字段 |
Name | string | 20 | 是 | 是 |
Content | string | 255 | 否 | 否 |
第二类表的表结构均相同,具体见表3-3:
表3-3用能信息数据库第一类表结构
字段名称 | 数据类型 | 字段大小 | 主键 | 必填字段 |
Type | string | 50 | 是 | 是 |
Content | string | 255 | 否 | 否 |
3.2.3 基本流程
本系统设计超始页为登录页,实际应用中该系统应当从企业内部网站的一个链接打开。若用户未注册过,可以在登录页面点击注册链接打开注册页面,在注册页面进行新用户信息注册,注册成功后可返回登录页面进行登录。
若是游客用户进行登录,则页面跳转到游客用户登录主页面(Low_MainPage.aspx),供游客用户查阅的有两类信息,分别为“企业基本经营情况”和“主要能源利用指标”。点击相应的链接后分别跳转到相应的子页面,分别为“Low_Page_1.aspx”和“Low_Page_2.aspx”。在子页面中分别可以再点击子项链接进行具体信息的查阅。
若是普通用户进行登录,则页面跳转到普通用户登录主页面(Mid_MainPage.aspx),供普通用户查阅的也是两类信息,分别为“企业基本经营情况”和“主要能源利用指标”。点击相应的链接后分别跳转到相应的子页面,分别为“Mid_Page_1.aspx”和“Mid_Page_2.aspx”。在子页面中分别可以再点击子项链接进行具体信息的查阅,查阅的信息来源于用能信息数据库“db_content.mdb”的第一类表“tb_issue”。区别于游客用户,普通用户可以对“Mid_Page_2.aspx”中查阅的信息进行编辑提交,即点击“编辑”按键后,会依据当前查阅的子项种类跳转到相应的编辑页面,“能源消耗总量”、“能源消耗费用”和“能源利用技术经济指标”分别对应的编辑页面为“Mid_Edit2_1.aspx”、“Mid_Edit2_2.aspx”和“Mid_Edit2_3.aspx”。在编辑页面中进行编辑后,点击“提交”按键后,即可把信息写入用能信息数据库“db_content.mdb”的第二类表中,等待管理员用户进行审阅整理和发布。
若是管理员用户进行登录,则页面跳转到管理员用户登录主页面(High_MainPage.aspx),供管理员用户查阅的也是两类信息,分别为“企业基本经营情况”和“主要能源利用指标”。点击相应的链接后分别跳转到相应的子页面,分别为“High_Page_1.aspx”和“High_Page_2.aspx”。在子页面中分别可以再点击子项链接进行具体信息的查阅,查阅的信息来源于用能信息数据库“db_content.mdb”的第一类表“tb_issue”。区别于游客用户和普通用户,管理员用户可以对“High_Page_1.aspx”和“High_Page_2.aspx”中查阅的信息进行编辑整理和发布。对于“High_Page_1.aspx”中的信息(企业基本状况信息),管理员用户不需要参考其他低级别用户的信息(也没有用户可以提交这类信息),只需直接编辑后点击“发布”按键即可发布。对于“High_Page_2.aspx”,管理员可以从用能信息数据库“db_content.mdb”的第二类表中在选择指标和用户后进行有针对性地查阅。在综合各普通用户的提交信息后,可编辑最终将发布的信息,编辑完成后,点击“发布”按键即可发布成功。
基本流程见图3.2:
图3.2系统流程图
3.3 实现过程
系统的实现过程基本可分为一个公共类和六类页面的设计:
3.3.1 公共类的设计
整个系统中设计了一个公共类“CommonClass.cs”,它主要包括了两个在整个系统中被较多次调用的函数“public string MessageBox(string TxtMessage, string Url)”和“public string RandomNum(int n)”。
其中函数MessageBox()的作用是对用户的操作做弹出对话框提示,具体为:
publicstring MessageBox(string TxtMessage, string Url)
string str;
str = "<scriptlanguage=javascript>alert('" + TxtMessage + "');location='" +Url + "'</script>";
return str;
函数RandomNum()的作用是利用随机函数生成验证码,具体代码见3.3.3。
3.3.2 母版页的设计
母版页(MasterPage.master)可以为应用程序中页面创建一致的布局,单个母版页可以为应用程序中的所有页定义所需的外观和标准行为,之后可以创建包含要显示的内容的各个内容页。当用户请求内容页时,这些内容页与母版页合并以将母版页的布局与内容页组合在一起输出。本系统设计的母版页保存在“MasterPage.master”文件中,具体包含了页头、页尾、列表内容和查询内容。见图3.3:
图3.3母版页
3.3.3 登录页的设计
登录页(Login.aspx)由于页面占幅较小,无需套用网站整体母版,故没有使用母版页,而只是在该页中按母版页风格进行了设计。此页包含了“用户类型”选择栏、“用户名”输入栏、“密码”输入栏、“验证码”输入栏和“注册”链接几个部分。见图3-4:
图3.4登录页
此页上设计了“验证码”一项,旨在预防拒绝访问攻击,每次登录是验证码均会随机生成,在正确输入后才可成功登录。验证码生成的由全局类“CommonClass.cs”中的RandomNum(int n) 函数实现,具体为:
publicstring RandomNum(int n) //
//定义一个包括数字、大写英文字母和小写英文字母的字符串
Stringstrchar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
//将strchar字符串转化为数组
//String.Split方法返回包含此实例中的子字符串(由指定Char数组的元素分隔)的 String数组。
string[] VcArray = strchar.Split(',');
string VNum = "";
//记录上次随机数值,尽量避免产生几个一样的随机数
inttemp = -1;
//采用一个简单的算法以保证生成随机数的不同
Random rand = new Random();
for (int i = 1; i < n + 1; i++)
if (temp != -1)
//unchecked 关键字用于取消整型算术运算和转换的溢出检查。
//DateTime.Ticks属性获取表示此实例的日期和时间的刻度数。
rand = new Random(i * temp *unchecked((int)DateTime.Now.Ticks));
//Random.Next方法返回一个小于所指定最大值的非负随机数。
int t =rand.Next(61);
if (temp != -1 && temp ==t)
return RandomNum(n);
temp = t;
VNum +=VcArray[t];
return VNum;//返回生成的随机数
登录页面是整个系统第一处需要与数据库建立连接的页面。C#语言下,与数据库的连接需要如下代码:
实例化数据库连接中需要的对象:
OleDbConnectioncon = new OleDbConnection();
OleDbCommandcmd = new OleDbCommand();
OleDbDataAdapteroda = new OleDbDataAdapter();
DataSetds = new DataSet();
DataTabledta = new DataTable();
打开数据库链接:
con.ConnectionString= "provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath ("app_data / db_user.mdb ");
con.Open();
cmd.Connection = con;
以验证游客用户身份真实信息为例:
cmd.CommandText="select* from tb_low where Name='" + txt_name.Text.Trim() + "' andPassWord='" + txt_password.Text.Trim()+"'";
oda =new OleDbDataAdapter(cmd);
oda.Fill(ds,"tb_low");
if(ds.Tables[0].Rows.Count == 0)
Response.Write(CC.MessageBox(""您输入的用户名或密码错误,请重新输入!", "Login.aspx"));
else
Response.Write(CC.MessageBox(""登录成功!", "Low_MainPage.aspx"));
用户填写好正确的登录信息后点击“登录”按键后,系统会依据用户类型进入db_user数据库的对应表中进行查询,若未用户名和密码不能完全匹配,刚返回告知“用户名和密码错误!”,否则进入相应级别的主登录页。
3.3.4 注册页的设计
若用户未注册过,则可在登录页上先点击注册链接跳转到注册页(Register.aspx)进行新用户注册。注册页和登录页一样,页面占幅较小,未使用母版页,只作风格统一设计。此页也包含了“用户类型”选择栏、“用户名”输入栏、“密码”输入栏、“验证码”输入栏和“注册”链接几个部分。见图3-5:
图3.5注册页
注册页上也设计了“验证码”一栏,理由同登录页,其实现代码也与登录页一致。
连接数据库后的操作除了和登录页一样,需要对数据库进行遍历,检查是否有相同用户名的用户已经进行过了注册,另外就是需要将被注册的用户名写入数据库相应级别的用户表单中。
3.3.5 各级用户主登录页的设计
在登录页正确输入了用户信息后依据用户类型将跳转到对应级别的主登录页(Low_MainPage.aspx、Min_MainPage.aspx和High_MainPage.aspx)上。各级用户的主登录页内容基本一致,均设计了“一、企业基本经营情况”链接、“二、主要能源利用指标”链接和“三、……”扩展链接。点击不同链接,可以跳转到对应级别的相应子查询页面上。
见图3.6、图3.7和图3.8:
图3.6游客用户主登录页
图3.7普通用户主登录页
图3.8管理员用户主登录页
这三个主登录页背后的代码是基本相同的,都是链接的跳转作用,只是跳转的目标页面不同而已,以low_MainPage.aspx为例,其具体实现如下:
protected void link_low_1_Click(objectsender, EventArgs e)
//“企业基本经过情况”链接的跳转语句
Response.Redirect("~/Low_Page_1.aspx");
protected void link_low_2_Click(objectsender, EventArgs e)
//“主要能源利用指标”链接的跳转语句
Response.Redirect("~/Low_Page_2.aspx");
protected void link_logout_Click(objectsender, EventArgs e)
//“注销”按键的跳转语句
Response.Redirect("~/Login.aspx");
3.3.6 各级用户查询页的设计
由于各级用户对用能信息享有不同的操作权限,因此虽然它们的主登录页相同,但它们的查询子页面设计存在不同之处。
3.3.5.1游客用户子页1
游客用户子页1是“企业基本经营情况”中三个子项“1.主要产品与产量”、“2.生产总值”和“3.产值季度纵向比较”的具体查询页面。在此页面中点击各个链接即可在中间的文本框中查阅到相应信息。此信息只能由管理员用户进行编辑发布,游客用户无编辑提交和发布权限。
游客用户的子页1如图3.9所示:
图3.9游客用户子页1
用户子页面的主要作用就是将数据库中存放的企业用能信息按用户需要进行提取,从服务器反馈给前台的用户使用。此处为游客用户对数据库中信息的查询,其具体代码实现如下:
protectedvoid link_low1_1_Click(object sender, EventArgs e)
//对“主产品与产量”信息的查询语句
cmd.CommandText = "SELECT Content FROMtb_issue where Type='1-1'";
txt_low1_1.Text =cmd.ExecuteScalar().ToString();
protectedvoid link_low1_2_Click(object sender, EventArgs e)
//对“生产总值”信息的查询语句
cmd.CommandText = "SELECT Content FROMtb_issue where Type='1-2'";
txt_low1_1.Text =cmd.ExecuteScalar().ToString();
protectedvoid link_low1_3_Click(object sender, EventArgs e)
//对“产值季度纵向比较”信息的查询语句
cmd.CommandText = "SELECT Content FROMtb_issue where Type='1-3'";
txt_low1_1.Text =cmd.ExecuteScalar().ToString();
3.3.5.2游客用户子页2
游客用户子页2是“主要能源利用指标”中三个子项“1.能源消耗总量”、“2.能源消耗费用”和“3.能源利用技术经济指标”的具体查询页面。在此页面中点击各个链接即可在中间的文本框中查阅到相应信息。此信息只能由管理员用户进行编辑发布,游客用户无编辑提交和发布权限。
游客用户的子页面2如图3.10所示:
图3.10游客用户子页2
此页面中的具体实现与子页1基本相同,只是在数据库中检索的内容不同而已。
3.3.5.3普通用户子页1
普通用户子页1与游客用户子页1相同,是“企业基本经营情况”中三个子项“1.主要产品与产量”、“2.生产总值”和“3.产值季度纵向比较”的具体查询页面。在此页面中点击各个链接即可在中间的文本框中查阅到相应信息。此信息只能由管理员用户进行编辑发布,普通用户无编辑提交和发布权限。
普通用户的子页面1如图3.11所示:
图3.11普通用户子页1
3.3.5.4普通用户子页2
普通用户子页2和游客用户子页2相同,是“主要能源利用指标”中三个子项“1.能源消耗总量”、“2.能源消耗费用”和“3.能源利用技术经济指标”的具体查询页面。在此页面中点击各个链接即可在中间的文本框中查阅到相应信息。普通用户可以对此三类信息进行编辑,编辑后提交至后台数据库,等待管理员进行审阅整理后发布。
普通用户的子页面2如图3.12所示:
图 3.12普通用户子页2
此页内容除了对数据库信息进行检索查询并反馈外,由于普通用户享有对部分信息的编辑提交权限,故此页中添加了一个“编辑”按键,点击此按键将跳转到相应信息的编辑页面中,具体代码如下:
protectedvoid btn_edit2_Click(object sender, EventArgs e)
//跳转到下一级的编辑页面前需要先关闭数据库连接
con.Close();
//依据信息主题跳转到不同的编辑页面
switch ((int)ViewState["flag"])
case 1:
Response.Redirect("~/Mid_Edit2_1.aspx");
break;
case 2:
Response.Redirect("~/Mid_Edit2_2.aspx");
break;
case 3:
Response.Redirect("~/Mid_Edit2_3.aspx");
break;
default:
break;
3.3.5.5管理员用户子页1
管理员用户子页1与普通用户子页1相同,是“企业基本经营情况”中三个子项“1.主要产品与产量”、“2.生产总值”和“3.产值季度纵向比较”的具体查询页面。在此页面中点击各个链接即可在中间的文本框中查阅到相应信息。仅管理员可以对此页面信息进行编辑发布,故页面中设计了“发布”按键,点击后信息将会写入数据库“db_content”的表“tb_issue”。
管理员用户的子页面1如图3.13所示:
图 3.13管理员用户子页1
对于“企业基本经营情况”这项内容,本文设计的是只能由管理员用户进行更新发布,故在此页中设计了“发布”和“重置”按键。对于“发布”按键,其基本原理仍是数据库的读写操作,具体实现代码如下:
protectedvoid btn_edit2_Click(object sender, EventArgs e)
string str_type = "";
switch ((int)ViewState["flag"])
case 1:
str_type = "1-1";
break;
case 2:
str_type = "1-2";
break;
case 3:
str_type = "1-3";
break;
default:
break;
cmd.CommandText= "UPDATE tb_issue SET Content='" + txt_high1_1.Text.Trim() + "'WHERE Type='"+ str_type +"'";
if (cmd.ExecuteNonQuery() >= 1)
Response.Write(CC.MessageBox("发¤¡é布?成¨¦功|!ê?","High_Page_1.aspx"));
else
Response.Write(CC.MessageBox("发¤¡é布?失º¡ì败㨹!ê?", "High_Page_1.aspx"));
3.3.5.6管理员用户子页2
管理员用户子页2和游客用户子页2、普通用户子页2均不同,管理员可以在此页面上选择指标及普通用户,来查阅其提交的用能信息。在查阅过多名普通用户提交的信息后,管理员用户可综合多方信息,对最后要发布的信息进行编辑,然后点击“发布”按键进行发布。当然,此子页中的子项也是“1.能源消耗总量”、“2.能源消耗费用”和“3.能源利用技术经济指标”。
普通用户的子页面2如图3.14所示:
图 3.14管理员用户子页2
此页中的信息“查询”与“发布”按键的功能与管理员用户子页1中基本相同,只是“综合发布信息”中的内容是写入数据库“tb_issue”中的。
3.3.7 普通用户编辑页的设计
本文设计系统中,仅对普通用户在其“主要能源利用指标”子页中设计了编辑页面的链接。针对不同子项分别设计了相应的编辑页面,普通用户可以在此类页面中,查询到当前发布的用能信息,并直接进行更新编辑。确认编辑完成后,点击“提交”按键后即可将待审核信息写入相应数据库中。见图3.15、3.16和3.17。
图 3.15普通用户编辑页1
图3.16普通用户编辑页2
图3.17普通用户编辑页2
以上是关于基于WEB的企业用能信息在线填报系统设计的主要内容,如果未能解决你的问题,请参考以下文章