2000,数据库及其表的建立比较简单,可参考前面 相关内容,在此不多叙述。 5系统程序实现 2.5.1设计概况 为了让读者对本系统有一个大致了解,首先列 举出本程序包含的窗体和模块及说明。窗体信息如 frmLogin(系统登录窗体):对用户名、用户密码、 用户类型进行验证。 MDIForm1(程序主窗体):将系统提供的各种功能集 中呈现于用户面前。 frmSubiects(主题信息管理窗体):提供对书籍主 题信息的添加、修改、删除、浏览、査询等功能。 frmTitles(书籍信息管理窗体):提供书籍基本信 息的添加、修改、删除、浏览、査询等功能 frmBooks(书本信息管理窗体):提供对书本基本信 息的添加、修改、删除、浏览、查询等功能。 frmMembers(会员信息管理窗体):提供对会员基本 信息的管理功能,如添加会员、删除会员、修改会 员信息、查询特定会员等。 frmEmployees(员工信息管理窗体):提供对员工基
2000,数据库及其表的建立比较简单,可参考前面 相关内容,在此不多叙述。 2.5 系统程序实现 2.5.1 设计概况 为了让读者对本系统有一个大致了解,首先列 举出本程序包含的窗体和模块及说明。窗体信息如 下: frmLogin(系统登录窗体):对用户名、用户密码、 用户类型进行验证。 MDIForm1(程序主窗体):将系统提供的各种功能集 中呈现于用户面前。 frmSubiects(主题信息管理窗体):提供对书籍主 题信息的添加、修改、删除、浏览、查询等功能。 frmTitles(书籍信息管理窗体):提供书籍基本信 息的添加、修改、删除、浏览、查询等功能。 frmBooks(书本信息管理窗体):提供对书本基本信 息的添加、修改、删除、浏览、查询等功能。 frmMembers(会员信息管理窗体):提供对会员基本 信息的管理功能,如添加会员、删除会员、修改会 员信息、查询特定会员等。 frmEmployees(员工信息管理窗体):提供对员工基
本信息的管理功能,如添加员工、删除员工、修改 员唐息、查询特定员工等。 frmlssue(业务窗体):本窗体实现的功能比较多, 如借阅书籍、还书、续借书籍、丢失书籍、赔款、 预订书籍等。它也是本系统的最重要的窗体,大部 分图书管理的业务逻辑均存在于这个窗体中 frm0 ptions(系统配置窗体):提供对系统的一些配 置选项,如会员最大借书数量、会员最大预定数量、 最大罚款金额、会员资格持续时间、会员费用、会 员续办费用等。 frmFindBook(书籍査询窗体):按书籍编号、书籍 名称、作者、主题、价格等进行精确或模糊査询。 frmFindMember(会员查询窗体):按会员编号、姓、 名、电话、地址、 email等进行精确或模糊査询。 fraSer(用户管理窗体):提供用户添加、删除、 更改密码、更改用户类型的管理功能 frmAbout(关于窗体):提供软件的名称、版本、版 权、作者、维护等信息。 以上介绍的是程序的重要窗体,其中 frmSub jects、 frmTitles、 frmBooks、 frmMembers 和 frmEmployee均是信息管理系统的标准窗体设 计,具有一定相似性和代表性,可以依照这两个窗
本信息的管理功能,如添加员工、删除员工、修改 员唐息、查询特定员工等。 frmlssue(业务窗体):本窗体实现的功能比较多, 如借阅书籍、还书、续借书籍、丢失书籍、赔款、 预订书籍等。它也是本系统的最重要的窗体,大部 分图书管理的业务逻辑均存在于这个窗体中。 frmOptions(系统配置窗体):提供对系统的一些配 置选项,如会员最大借书数量、会员最大预定数量、 最大罚款金额、会员资格持续时间、会员费用、会 员续办费用等。 frmFindBook(书籍查询窗体):按书籍编号、书籍 名称、作者、主题、价格等进行精确或模糊查询。 frmFindMember(会员查询窗体):按会员编号、姓、 名、电话、地址、email 等进行精确或模糊查询。 frmUser(用户管理窗体):提供用户添加、删除、 更改密码、更改用户类型的管理功能。 frmAbout(关于窗体):提供软件的名称、版本、版 权、作者、维护等信息。 以上介绍的是程序的重要窗体,其中 frmSubjects、frmTitles、frmBooks、frmMembers 和 frmEmployee 均是信息管理系统的标准窗体设 计,具有一定相似性和代表性,可以依照这两个窗
体的模式编写出适合其它信息系统的管理窗口。 还有一个部分即模块文件,具体为: m.bas(主模块):主要功能为将系统配置信息 从G1 obalvariables表中读入系统。 在阅读下面的具体程序以前,可先了解每个窗 体的大致功能,这对了解整个程序的开发实施是非 常有益的。在后面的具体程序实现中,由于篇幅的 限制,不会时所有的代码都进行详细分析,而只是 针对关键的模块和技术进行介绍。 2.5.2系统登录窗体 登录窗体的功能 系统登录模块是由系统登录窗体( frmLogin) 构成,界面如图2-4所示。 本系统是一个基于不同用户的系统。在本系统 中有3类不同的用户:管理人员、图书馆工作人员 和会员。因此,在系统启动时,需要显示一个登录 窗口,以供用户选择不同类型的身份登录,然后根 据不同的用户身份,来显示不同的功能。 请登录 登录 用户名 确定 「取消」 选择身份理员
体的模式编写出适合其它信息系统的管理窗口。 还有一个部分即模块文件,具体为: m.bas(主模块):主要功能为将系统配置信息 从 GlobalVariables 表中读入系统。 在阅读下面的具体程序以前,可先了解每个窗 体的大致功能,这对了解整个程序的开发实施是非 常有益的。在后面的具体程序实现中,由于篇幅的 限制,不会时所有的代码都进行详细分析,而只是 针对关键的模块和技术进行介绍。 2.5.2 系统登录窗体 1. 登录窗体的功能 系统登录模块是由系统登录窗体(frmLogin) 构成,界面如图 2-4 所示。 本系统是一个基于不同用户的系统。在本系统 中有 3 类不同的用户:管理人员、图书馆工作人员 和会员。因此,在系统启动时,需要显示一个登录 窗口,以供用户选择不同类型的身份登录,然后根 据不同的用户身份,来显示不同的功能
图2-4 frmLogin窗体的设计示意图 2.登录窗体的设计 登录窗体的主要控件及其属性如表2-9所示。 表2-9登录窗体主要控件及其属性设置 控件 名称 属性设置 frmLogin Borderstyle属性设为3, Caption属性设为“请登录” rame fralogin Caption属性设为“登录” abel lbllabels| Caption属性设为“用户名:”, Index属性为0 texTbox txtUser Text属性设为空 abel lbllabels Caption属性为“口令:”, Index属性为1 texTbox txtPwd 「Text属性设为空 labels aption属性为“选择身份:”, Index属性为2 ComboBox cboUserType Style属性为“2- Dropdown List” mmandBut ton cmdOK Caption属性设为“确定”, Default属性为True CommandButton cmdCancel Caption/属性设为“取消”, Cance|属性为Fase 3.窗体的工作流程/方式 系统开始运行时,首先会登录窗体。由于本窗 体是一个面向多用户的系统,不同的用户在使用统 时,将会拥有不同的功能。登录窗体的作用就是确 定当前使用系统的用户的类型。 当窗体运行时,用户首先要在用户名和口令这 两个文本框中输入其用户名和口令,然后在身份组 合框中选择不同的身份(管理人员、图书馆工作人 员和会员)。 在窗体的Load事件中,首先就是需要将用户 的3种不同的身份添加到 cloUser Type中,以供用
图 2-4 frmLogin 窗体的设计示意图 2.登录窗体的设计 登录窗体的主要控件及其属性如表 2-9 所示。 表 2-9 登录窗体主要控件及其属性设置 控件 名称 属性设置 Form frmLogin BorderStyle属性设为3,Caption属性设为“请登录” Frame fraLogin Caption属性设为“登录” Label lblLabels Caption属性设为“用户名:”,Index属性为0 TextBox txtUser Text属性设为空 Label lblLabels Caption属性为“口令:”,Index属性为l TextBox txtPwd Text属性设为空 Label lblLabels Caption属性为“选择身份:”,Index属性为2 ComboBox cboUserType Style属性为“2-Dropdown List” CommandButton cmdOK Caption属性设为“确定”,Default属性为True CommandButton cmdCancel Caption属性设为“取消”,Cancel属性为False 3.窗体的工作流程/方式 系统开始运行时,首先会登录窗体。由于本窗 体是一个面向多用户的系统,不同的用户在使用统 时,将会拥有不同的功能。登录窗体的作用就是确 定当前使用系统的用户的类型。 当窗体运行时,用户首先要在用户名和口令这 两个文本框中输入其用户名和口令,然后在身份组 合框中选择不同的身份(管理人员、图书馆工作人 员和会员)。 在窗体的 Load 事件中,首先就是需要将用户 的 3 种不同的身份添加到 cboUserType 中,以供用
户选择其身份之用。在“确定”按钮的 Click事件 响应中,程序将会根据用户输入的用户名和口令, 及其选择的用户身份,在数据库中的 Users表中查 找对应的用户。在 Users中,“用户名”字段对应 用户输入的用户名,“用户密码”字段对应用户输 入的口令,“用户类型”字段对应用户所选择的身 份 如果在 Userlist表中找到了对应的用户 则退出登录窗体,并进入到MI主窗体,并根据不 同的用户身份,来向用户开放不同的功能。 如果在 Users表中没有找到对应的用户,则 提示用户再次输入,如果超过3次,还不能找到用 户,则表示用户无权使用本系统,并退出系统。 4.编写窗体代码 (1)本系统需要打开数据库及记录集,以及根据 不同的用户来显示不同的功能,需要添加全局性变 量和过程。因此在标准模块mbas中添加变量和如 Public cnn as new adode. Connection’数据库连接对象 Public g sql As string 要执行的SQL语句 Public rs as new adodB. recordset 记录集对象 Public g Usertype As Integer 用户类型 Public g userName As String 用户名
户选择其身份之用。在“确定”按钮的 Click 事件 响应中,程序将会根据用户输入的用户名和口令, 及其选择的用户身份,在数据库中的 Users 表中查 找对应的用户。在 Users 中,“用户名”字段对应 用户输入的用户名,“用户密码”字段对应用户输 入的口令,“用户类型”字段对应用户所选择的身 份。 ·如果在 UserList 表中找到了对应的用户, 则退出登录窗体,并进入到 MDI 主窗体,并根据不 同的用户身份,来向用户开放不同的功能。 ·如果在 Users 表中没有找到对应的用户,则 提示用户再次输入,如果超过 3 次,还不能找到用 户,则表示用户无权使用本系统,并退出系统。 4.编写窗体代码 (1)本系统需要打开数据库及记录集,以及根据 不同的用户来显示不同的功能,需要添加全局性变 量和过程。因此在标准模块 m.bas 中添加变量和如 下: Public cnn As New ADODB.Connection '数据库连接对象 Public g_sql As String '要执行的 SQL 语句 Public rs As New ADODB.Recordset '记录集对象 Public g_Usertype As Integer '用户类型 Public g_userName As String '用户名