APP下载

基于ExtJS的汽车租赁系统的设计与实现

2014-03-26王莉利高新成王蔚龙

关键词:功能模块组件汽车

王莉利, 高新成, 王蔚龙

(1.东北石油大学 计算机与信息技术学院, 黑龙江 大庆 163318;2.东北石油大学 现代教育技术中心, 黑龙江 大庆 163318)

0 引 言

网络的普及与发展推动了软件开发技术和模式的变革,然而传统的汽车租赁公司却仍然采用纸质记录数据,导致公司的办公效率大大的降低,同时也无法满足数据的永久性存储。目前普遍的办公系统采用Javascript配合Jquery来控制前台的客户体验,这种方法不利于控制开发的成本,而且经常在浏览器上出现严重的兼容性问题,影响了客户体验效果[1]。在采用ExtJS技术优化系统结构的基础上,设计并开发了一套汽车租赁管理系统,将汽车管理业务分类整合,达到了业务集中管理的效果。

1 ExtJS组件介绍

ExtJS组件主要是指HTML标签表现出来的区域,它能够让静态标签转换成有着生命周期的动态组件,组件本身不是分散的结构集,在架构设计上主要采用集成方式紧密关联的倒树结构[2]。ExtJS组件结构如图1所示[3]。

ExtJS中所有组件的基类是指分层抽象出组件的共性Ext.Component,包括的子类都会自动拥有标准ExtJS组件所带的生命周期,其中包括渲染的创建和销毁,同时支持标准的启动、禁用、隐藏和显示等操作。ExtJS中所有组件都会有一个被指定的type属性值,定义一个指定类型的组件或者一个组件的类型是通过这个值得到。利用ExtJS技术可以把数据和组件进行解耦,在设计用户界面时就不用考虑各种形式的数据了,操作数据通过统一的数据接口来处理,可见ExtJS与后台技术没有什么关系,可以方便地把它运用在各种语言的开发应用中[4]。

2 系统功能设计与关键技术实现

2.1 系统功能模块介绍

系统在设计过程中考虑到汽车租赁公司业务管理需求,主要功能包括系统管理、车辆管理、系统用户管理、车辆配件管理、驾驶员管理、查询和统计等功能模块。系统功能模块如图2所示。

图1 ExtJS组件结构

图2 汽车租赁系统功能模块图

2.2 ExtJS数据存储与传输的研究设计与实现

在系统中所有的数据传输方式均是采用ExtJS的数据传递方式,ExtJS提供了JsonReader、XmlReader和ArrayReader三种数据解析方式[5]。ExtJS定义数据代理基类Ext.data.DataProxy,在DataProxy的基础,通过Ext.data.MemoryProxy、Ext.data.HttpProxy和Ext.data.ScriptTagProxy三种方式读取服务器端的数据及从跨域服务器中读取数据,其中Httpproxy使用HTTP协议通过Ajax获取后台数据。代码如下:

var cellClick = function (grid, rowIndex, columnIndex, e) {

record = grid.getStore().getAt(rowIndex), // Get the Record

columnId = grid.getColumnModel().getColumnId(columnIndex)}; // Get column id

通过输入绑定组件的id值grid和当前行的索引值rowIndex,以及当前列的索引值columnIndex调用Ajax方法,获取对应的记录,ExtJS框架会自动的调用内部的机制DataProxy类,通过JsonReader的方式将获取到的数据通过Json流的形式,并解析出来最终显示给客户界面。

2.3 ExtJS组件自定义事件技术的研究与实现

系统的所有组件事件的定义都是采用Ext的自定义事件,这些自定义事件一般和组件相关,要求用户根据组件的状态来进行触发,ExtJS中遵循一种树状的事件模型,同时为这些事件配置监听器,当某个事件被触发时自动调用对应的监听器[6]。ExtJS中的组件添加事件方法如下:

①为eventCmP添加Click事件:eventCmp.addEvents(“click”);传入参数为要添加的事件名称。

②为eventCmP添加事件监听器:eventCmp.on(“click”,fn);这里的on()是addLiStener()的简写形式,第一个参数表示传入事件名称,第二个参数表示事件发生的执行函数。

③触发eventCmP的事件:eventCmp.fireEvent(“click”,“params”);fireEvent是强迫触发组件的事件,开始传入事件名称,如果有其它参数,补充到后面。

2.4 多权限化管理的设计与实现

系统在多权限化管理设计中,采用了页面生命周期的技术来实现。用户在访问任何页面时都会在初始化该页面过程中,通过Web.config中注册的信息找到权限类,在该类中,先访问Init方法,同时关注Http的传输过程,在HttpModule实现过程中主要运用Init阶段来激发权限检测事件。实现自定义HttpModule类FrameWorkPermission的关键代码如下:

public class FrameWorkPermission : IHttpModule

public void Init(HttpApplication app){

app.AcquireRequestState += new EventHandler(app_Auth); //处理检测权限事件}

public void Dispose()

{ // 释放 }

在以上代码中,权限检测是通过EventHandler事件激发了自定义app_Auth方法来实现的。

2.5 系统实现界面

系统开发基于B/S结构模式,前台开发语言为C#,后台数据库为SQL Server 2008,开发了一套汽车租赁公司业务统一管理平台,系统能够根据业务范围分配相应管理权限,满足汽车租赁业务管理需求。系统主界面如图3所示。

图3 太平洋汽车租赁公司办公系统

3 结 论

在ExtJS与ASP.NET技术相结合的应用模式下,设计并实现了太平洋汽车租赁办公系统,系统采用ExtJS组件技术达到页面可视化效果,通过HTTP管道技术实现对不同的功能的权限分配,具有功能全面、界面美观大方、操作灵活、易扩展等优点,同时避免了代码冗余,减短了开发周期,降低了开发成本。

[参考文献]

[1] 魏丽芬.基于.NET技术实现MVC三层架构的学生事务管理系统[J].机电技术,2011,34(1):18-21.

[2] 邢春宇.在ASP.NET中应用ExtJS开发库存管理信息系统[J].电脑编程技巧与维护,2010(19):28-31.

[3] 陈道鑫,宋绍云.ExtJS框架在Web软件开发中的应用[J].电脑知识与技术,2011,7(9):2044-2047.

[4] 王建文,张俊明,韩李鹏.基于ExtJS的物资管理系统的设计与实现[J].计算机工程与设计,2010,31(23):5012-5013.

[5] 秦姣华,袁智威,王振,等.利用Ajax与ExtJS改善用户体验[J].电子设计工程,2011,19(10):1-4.

[6] 刘丹,马世霞,于琨.基于ASP.NET和AJAX的社区网络办公系统的设计与实现[J].河南机电高等专科学校学报,2010,18(4):29-31.

猜你喜欢

功能模块组件汽车
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
汽车的“出卖”
基于ASP.NET标准的采购管理系统研究
汽车们的喜怒哀乐
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
风起新一代光伏组件膜层:SSG纳米自清洁膜层
功能模块的设计与应用研究