李琳
(大庆油田储运销售分公司资产设备管理部,黑龙江 大庆 163453)
随着信息化的高速发展,各油田企业都将提高工作效率、提升企业竞争力作为新的追求目标。油库输油调度令的下达体系主要有如下问题需要改善:一方面,随着能源消耗的不断增长,储运销售部门每月都会产生大量的输油调度信息,而企业目前缺乏对这些信息的规范化管理,导致这些重要信息无法妥善保存,容易丢失。另一方面,人工电话联系进行输油调度令下达的方式已不能够满足企业信息化的要求,在一定程度上阻碍着企业竞争力的提升。本文根据油田储运销售部门的实际应用需要,建立了输油调度命令管理数据库,实现了大量调度令的规范化保存和管理。同时,设计了一套基于B/S模式的输油调度管理系统。通过本系统,输油调度命令的下达、签发以及接收都可以在网络环境下完成,并且实现了Word文档在网络环境下的动态生成与下载,大大减少了时间和人力的耗费,提升了企业的工作效率。
根据输油调度命令实际下达的基本流程(如图1),以及命令下达方、签发方和接收方之间的交互关系,对本系统做如下需求分析[1]:
第一,作为服务器端的管理员必须能够对Web内容进行创建和修改,能够对客户端的请求做及时的处理。对于客户端来讲,系统应该具备与客户进行实时交互的功能,客户通过浏览器查看命令内容后,做出相应反应并且实时反馈给服务器端。这一功能就要求本系统具有动态网页特点,能够实现复杂的Web应用。
第二,该系统必须有后台数据库支持。对于企业来讲,输油调度命令作为一项商业秘密,必须利用数据库进行妥善的保存和管理。另外,在服务器端和客户端进行交互的过程中,大量数据信息的调用和存储,需要利用数据库来实现。在系统的安全性方面,要求对客户端的访问进行控制,防止系统资源被非法窃取以及外部对服务器的恶意损耗和攻击。
第三,作为核心技术之一,该系统应具备动态生成Word文档及提供下载的功能。
图1 命令下达流程图
依据输油调度令下达的实际流程,综合考虑命令下达、签发、接收这三方的交互关系,为本数据库设计了如下几个数据表[2]:
表1 输油调度命令数据库各个数据表
本系统采用的是B/S模式的三层体系结构,客户端采用Web浏览器显示服务器端的运行结果,并利用数据库操作技术进行一些事务处理。服务器端则负责接收远程或本地的页面请求,借助于ADO中间部件将数据请求发送到数据库服务器上以获取相关数据,再把结果数据转化成Html及各种脚本传回客户端的Web浏览器上。数据库服务器负责管理数据库,处理数据的存储、更新、查询及修改等要求。结构示意图如下:
图2 系统结构示意图
各模块的功能分别如下:
(1)调度令下达模块:用于下达调度命令以及指定相应的接收单位,命令下达成功之后,命令内容将会传递给命令签发人,等待签发。同时,下令人具有修改调度令的权限。
(2)调度令签发模块:本模块主要是用于对调度令进行确认和核实,如果发现调度令有误,则可以将错误信息反馈给下令人,由下令人对命令进行修改。如果命令准确无误,则确认签发。命令签发之后将传递给指定的命令接收方,等待接收。在调度令签发之前,系统将禁止接收方接收命令。
(3)调度令接收模块:调度令下达之后,指定的接收单位将在该模块完成调度令的接收,而且接收完成的信息将会反馈到命令下达方。
(4)调度令查询和文档生成模块:该模块提供了调度令查询功能,用户可以根据自己的需求查询数据库中的每一条记录,并且可以根据查询的结果动态生成Word文档。
客户端主要完成输油调度命令的浏览、查询以及与服务器端进行交互。本系统客户端的用户主要就是三类:命令下达人、签发人以及接收人,这三者一方面通过浏览器接收来自服务器端的信息,另一方面又要向服务器发出数据请求。当用户通过浏览器进入到主页之后,系统就会根据用户的权限和状态,从数据库中查找相关的信息发送到客户端,客户端的用户收到信息之后,做出反应将数据请求反馈给服务器端,这样就完成了客户端与服务器端的交互。以命令接收者为例说明,当它进入主页时,系统将相应的命令信息发送到该用户的页面上,用户对命令进行浏览、查询之后,进行签名确认,即将反馈信息又发送到服务器上[3]。
服务器端的功能主要是处理来自客户端的数据请求,实现与客户端的实时交互。在本系统的数据库设计当中,针对客户端的每一个用户,都建立了与之对应的数据表,负责存储和管理该用户的数据。当服务器端接收到来自客户端的数据请求之后,系统就会执行相应的数据库操作,比如,数据查询、插入、修改、更新、删除等,以期实现客户端的请求,完成对数据库的操作之后,再将信息发送到客户端,这样就实现了二者的实时交互。
根据实际情况的需要,为方便用户对输油调度命令的利用与存档,系统设计了此功能。要实现此功能,我们首先要设计一个Word模板(dot格式)放在网站的根目录下,然后编程对该模板进行一系列的操作。主要过程就是,读取该模板,然后从数据库中提取数据,填充到Word模板相应的位置,最后将模板另存为一个Word文档(doc格式)。要在Visual C#.Net中操作Word,我们还需要在命名空间中进行如下引用:using Microsoft.Office.Interop.Word。
操作Word的基本操作如下:
①读取想添加的模板
object strfile Name=this.Map Path("App_Data/输油调度命令记录.dot");
②定义新的Word.Application Class对象
Word.Application Class WordApp = new Word.Application Class();
③定义新的Word.Document对象
Word.Document WordDoc=new Word.DocumentClass();
实例化WordDoc
WordDoc= WordApp.Documents.Open(ref strfile Name,refmissing…)
④操作Word模板中的书签,向模板指定位置填充数据。
⑤设置另存对话框源地址
object strsave = this.MapPath("App_Data/temp/输油调度命令记录.doc");
⑥保存WordDoc文档对象内容:WordDoc.SaveAs(ref strsave,ref missing…)
关闭WordDoc文档对象:WordDoc.Close(ref missing,ref missing…)
关闭WordApp组件对象:WordApp.Quit(ref missing,ref missing…)
⑦将上述源地址中的Word文档另存。
基于B/S模式的输油调度网络管理平台很好地满足了油田储运销售部门的实际需求,实现了油田企业的网络化、便捷化办公,大大提高了办公效率,该系统可以在油田企业中广泛推广。
[1]张海藩.软件工程导论[M].清华大学出版社,2007:45-62.
[2]王珊.萨师煊.数据库系统概论[M].高等教育出版社,2006:198-234.