软件开发的基本内容(1)——数据采集

来源:互联网 发布:清风网络 编辑:程序博客网 时间:2024/04/28 22:33

软件开发的基本内容(1)——数据采集

        做了快三年的软件了,总想着我到底做了些什么,做得怎么样,现在抽空写些自己的开发心得,一是为自己树理树理思路,二是给新人一个参考;这些都是本人的个人心得,若有不同看法,欢迎交流,共同进步。

      一般有做软件必不可少的开发内容包括:数据收集,查询报表;数据收集,是软件系统数据的主要来源,就是收集用户录入的数据,例如:ERP系统的凭证或者单据等;数据收集一般包括:新增,修改,查看,删除,复制,打印等功能。查询报表,是用户录入数据后按照一定格式展示给用户看,一般是以列表形式或者报表形式;列表形式,一般只是展示收集的用户源数据信息,包括查询条件和列表相关功能, 报表形式,一般比列表形式复杂,是按照一定格式生成的。下面我先来说说数据采集;

        (-)数据采集

        数据采集包括新增,修改,查看,删除,复制,打印等功能。一般由两部分界面构成,一个列表界面,一个数据录入界面,对于较复杂的数据列表界面还会有一个查询条件窗口;现在我以较为简单的图书管理系统为例来说好理解些。假设现在要做一个功能来维护图书信息,控制流程图如下:

一般由过滤条件窗口,列表窗口,数据采集窗口构成;

各窗口界面的功能如下

       过滤条件窗口:用户可以在这个界面录入相关的过滤条件,窗口传递条件给列表窗口,并被列表界面再次调用时可以接收列表的过滤条件(也就是上次选择的过滤条件);过滤条件界面其实也属于数据收集界面,只是它收集的数据不用永久保存到下来;

       列表窗口:基本功能是以列表显示数据的主要内容,更重要的是它是数据收集其他功能的激活点;它应该包含的数据采集功能按钮为:新增,修改,复制,删除,查看,必要还要是包含的辅助功能“定位”按钮,当然必不可少的列表数据输出功能“打印”也是要有的;新增,修改,复制,查看这四个功能调用数据采集窗口完成,其他功能是列表窗体要自己完成的

      数据采集窗口:顾名思义该窗口负责数据采集功能,其用户交互性要求很强,开发是尤其要注意要用较强的和操作性;该窗口是由列表窗口触发的,其窗体类型应该为reponse窗口;除了用于数据采集(新增,修改)外,一般我会将该窗口重用为查看窗口,复制窗口,这样不但减少了开发时间,还增加了源码可维护性,得到了最大限度的重用。(OO的重要思想之一就是最大限度的重用,这个问题可以单独写大一篇了,呵呵;这里就不多说了)

       大体的界面功能上面都已经叙述了,界面设计方面就不讲的,因为不同的开发工具有不同的界面设计。下面我们开始详细讨论程序如何设计实现上面说到的这些功能:

上图是一个简单的类图设计

w_data_query 过滤条件查询界面, w_data_list为列表界面, w_data_input为数据采集界面,各各界面类的方法如其方法名的字面意思;特别要说明一下的是w_data_input的属性opertion_type,它用来控制窗体的操作状态,用于实现重用,其值为add,edit,copy,view分别标识不同的操作状态;

过滤条件查询界面w_data_query的程序实现内容:

操作(方法或事件)

实现内容

event open()

1. 接收来至列表的条件参数;

2. 初始化界面;

3. 将条件参数赋值到界面;

event ok()

1. 检测用户录入的条件是否合法

2. 将条件参数赋值到传递参数中

3. 关闭窗体,返回(这里应该传递一个值给调用窗体的程序表明是确认的返回操作)

event close()

关闭窗体,返回(这里应该传递一个值给调用窗体的程序表明是直接退出的返回操作)

列表界面w_data_list的程序实现内容:

操作(方法或事件)

实现内容

event open()

调用event query() (这也是一个重用的体现)如果event query()返回为关闭参数则关闭窗体return

event query()

1.打开w_data_query(需要传递默认条件参数)

2.接收操作参数,如果是关闭返回就返回关闭参数,如果不是执行第3

3.接收过滤条件参数并生成过滤条件

4.根据过滤条件从数据库读取数据生成列表数据

event add()

1.赋值传递控制参数为add

2.将窗体列表作为参数传递过去

3.打开w_data_input

event edit()

1.判断用户是否在列表中选择了要修改的行记录,如果选中则执行2.否则提示用户

2.赋值传递控制参数为edit

3.将窗体列表作为参数传递过去

4.打开w_data_input

event copy()

1.判断用户是否在列表中选择了要复制的行记录,如果选中则执行2.否则提示用户

2.赋值传递控制参数为copy

3.将窗体列表作为参数传递过去

4.打开w_data_input

event delete()

1.判断用户是否在列表中选择了要删除的行记录,如果选中则执行2.否则提示用户

2.读取选中记录的主键,根据主键从数据库中删除该记录相关的所有信息;如果删除执行3,否则提示用户删除失败

3.从列表中删除该条记录

event location()

一般调用一个功能的定位界面实现,这个是用户方便性功能,以后在讨论这方面的文章中叙述

event close()

关闭窗体

过滤条件查询界面w_data_input的程序实现内容:

操作(方法或事件)

实现内容

Event open()

1.       接收列表对象参数

2.       接收数据参数

3.       初始化界面

4.       IF 不是新增(修改,查看,复制)

{

       读取原数据并展示到界面

       IF 是复制

{//复制

   将控制参数更改为新增

}

ELSE

{//修改

      IF 是修改

      {

        将主键控制为不可修改模式(enable=false)

}

ELSE

{//查看

  将所有数据设置为不可修改模式(enable=false)

}

}

}

 

 录入帮助方法

1.为用户录入数据提供帮助界面,这样可以方便用户;对于大型的系统来说,一般会用公用帮助界面来处理(设计模式中的工厂模式,适配器模式都为这种处理提供了方法模型);

2.用户直接录入的数据最好提供自动模糊查找匹配;我一般是将这种逻辑处理抽象出来做成单独的检测方法,这样在保存检测时和其他地方也可以用;(在做软件过程中,采用多做公用方法和控件的方式可以为自己以后的开发和整个项目组的开发提供复用,这样维护方便,扩展容易;)

Event save()

1.      保存检测:数据完整性检测

一般将保存检测过程做成单独的窗体方法用来;保存检测要注意的时当检测不通过,提示用户修改,并将焦点定位到要修改的数据控件上;

2.      保存:提交数据到数据库

3.      回填数据到列表

* 将保存数据和刷新列表分开出来可以提高速度,特别是在B/S结构中

 

 

<未完待续...>

原创粉丝点击