水利工程建设与管理通用信息记录系统设计

2010-04-25 01:35王迎春
中国水利 2010年14期
关键词:数据表控件定义

刘 晖,王迎春

(新疆伊犁河流域开发建设管理局,830000,乌鲁木齐)

一、系统设计思路与结构

系统设计的重点在于实现和构造信息记录项目的灵活性、方便性及通用性,按实际工作要求定义各种形式的信息记录,开发不受应用平台限制的浏览器/服务器(B/S)的Web应用。系统使用者可根据实际工作要求,按照系统设计的相应格式提出一段文字内容,就可以快捷地完成信息记录项目的定义,并在数据提交页面自动生成提交数据项。系统的通用性表现在无论信息记录项目中有多少变量,表达文字有多少,都不需要对程序代码或数据结构作出调整。

系统由信息记录项目定义模块、数据提交模块和信息记录显示模块构成,各模块按系统设计规则对数据库中的信息记录数据进行插入、更新或提取操作,系统结构见图1。

1.项目定义模块

图1 系统结构图

项目定义模块是用户根据水利工程管理任务(工程施工、工程建设监理、工程建设管理、工程运行管理)或某一特定工程项目的信息类别定义信息记录项目、变量项的模块,是水利工程建设与管理通用信息记录系统的核心模块。用户可根据模块提供的功能,自行完成适于各类信息记录需求的记录模板设计。项目定义模块适用于信息记录设计人员,一般在新建或更改信息记录项目时使用。完成项目定义共需两个步骤,第一步:根据信息记录项目的内容,分析并提取相关变量信息,对变量进行分类后编码,给出变量名称描述和单位,变量编码作为引用变量的依据;第二步:根据信息启示项目需要表达的内容,定制信息记录表述内容,用变量编码表示相关变量项目。项目定义完成后,将在数据库中形成对项目完整的数据描述。

2.数据提交模块

信息记录项目定义完成后系统可根据项目变量的层次,应用ASP.net中的GridView控件自动列表,在Grid View控件中填加模板列,在模板列中加入TextBox控件,数据提交页面根据信息记录项目数据描述表中的信息,自动生成数据提交列表。数据提交模块可以同时处理多个信息记录项目,根据选择的项目展现相对应的数据提交列表。数据提交模块是水利工程建设与管理通用信息记录系统的数据基础,一般适用于信息数据维护人员,是信息数据维护人员最常用的模块。

3.信息记录显示模块

信息记录显示模块是水利工程建设与管理通用信息记录系统的最终表现形式,是各类信息经系统统计、分析后的结果表现,供水利工程管理人员及决策人员检索、查询。开发设计中应用正则表达式技术,由程序分析信息记录项目变量的组成,根据项目定义时确定的变量提取方法(忽略空值、空值填空、空值填零),对项目表述文本进行再构造,模块中放置了 2个 MsChart控件,Visible属性默认为false,如果信息记录项目需要用图表进一步表述,只要将相关表述变量与MsChart的Serial属性进行关联,并将Visible属性更改为true,即可得到直观的图表显示。

二、系统记录实现方法

水利工程建设与管理通用信息记录系统的开发过程中应用Web服务技术对数据库进行操作,实现了将系统开发成B/S结构的Web应用。根据各模块的设计目标,用正则表达式实现文本内容检索匹配,用GridView模板实现自动生成提交数据列表,用MsChart实现图表显示,用数据分级描述方式使系统适应多种形式信息记录的要求,最终实现了信息定义、数据提交、信息内容显示、信息检索的功能。

1.数据结构设计

考虑到系统需处理多种形式(施工、监理、建设管理、运行管理)的信息记录,直接对具体描述对象定义数据字段很难做到灵活性、通用性,因此采用数据描述的方式来实现应用需求。系统共创建4个数据表,分别为信息项目登记表(LOG_INDEX)、信息项目描述表(LOG_STRUCTURE)、信息记录登记表(LOG_ITEM)、信息记录数据表 (LOG_ITEM_INDEX),在提交信息记录数据时,项目下的每一变量生成一行记录,数据表结构见图2。

数据表中关联字段“PROJECT”表示项目分组代码,是总分类标识;“LOG_NO”表示项目代码,作为信息记录细项的分类码;LOG_CODE为3级(1级表示信息类别,2级表示变量类别或变量本身,3级表示变量本身)6位编码,前2位引用父编码LOG_NO,LOG_STRUCTURE 表 中 的ITEM_DESC字段为记录细项的描述;LOG_SERIAL组成LOG_NO+4位序列码。通过此编码规则可以明确区分信息记录项目及该项目下所有需要记录的信息细项,可以方便地根据编码进行信息记录检索。

2.程序设计

(1)项目定义模块程序设计

项目定义模块程序流程见图3。

(2)数据提交模块程序设计

根据选择的信息记录项目从数据表“LOG_STRUCTURE”、 “LOG_ITEM_INDEX”中提取信息记录数据更新项信息,构建包含 LOG_CODE、LOG_NAME、LOG_VALUE、LOG_UNIT 列的 DataSet类型数据集,把从数据库中提取的信息装载进该DataSet数据集,并与GridView控件绑定,自动生成不同信息记录项目数据更新项目列表;MODIFY_ITEM(STRING OP,STRING LOG_NO)方法根据调用参数“insert”或“update”执行向数据库插入记录或更新记录操作,依据信息记录定义中确定的空值处理方式对未填入数据的数据更新项进行处理。系统扫描列表中所有行中的细项编码,在数据表“LOG_ITEM_INDEX”中插入或更新数据。数据提交模块程序流程见图4。

(3)信息记录显示模块程序设计

将指定日期转换成信息记录序列号,在数据库中提取所需数据,在信息记录信息显示页面中使用Label控件显示信息记录文字表述,使用MsChart控件显示信息记录图表,使用如下正则表达式处理信息记录表述内容:

STRING INEDX_CODE="[@][0-9]{1,}";//已提交信息记录数据项编码

STRING EMPTY-CODE="\w{1,}[A-Z,\-]\w{1,}[@][0-9]{1,}[,]";//忽略空值情况下信息记录表达式中多余的数据项

图2 数据表结构

图3 项目定义模块程序流程

图4 数据提交模块程序流程

MATCHCOLLECTIONmc=TEGEX.MATCHES(信息记录文字表达语句(LOG_SYNTAX),INDEX_CODE)。

用上述正则表达式对信息记录表述语句中已提交的数据项进行文字替换,完成第一次匹配,在第二次匹配中把信息记录表述语句中未提交的数据项的语句移除,如果仍存在已提交信息记录数据项编码,则为空值填空的情况,进行第三次匹配,消除与空值相关的表述语句。完成信息记录文字表述内容处理后,把需要进行图表显示的数据绑定到相应的MsChart控件上,信息记录显示页面即可按项目定义要求显示相关记录信息。

[1]Wei-Meng Lee著,薛莹 译.C#2008编程参考手册[M].北京:清华大学出版社,2009.

[2]Paul Kimmel.Advanced C#Programming[M].McGraw-Hill/Osborne,2003.

[3]Sanuabh Nandu.C#.NET Web Developer’s Guide [M].Global Knowledge,2003.

[4]Rick Greenwald,Robert Stackowiak.Professional Oracle Programming[M].Wiley Publishing,Inc,2005.

猜你喜欢
数据表控件定义
基于.net的用户定义验证控件的应用分析
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
基于列控工程数据表建立线路拓扑关系的研究
关于.net控件数组的探讨
成功的定义
图表
修辞学的重大定义
山的定义
基于嵌入式MINIGUI控件子类化技术的深入研究与应用