第三章 系统实现
在档案管理信息系统中主要实现对归档文件基本情况表、借阅登记情况表、借阅情况表及用户表中数据的增、删、改和查询、查找、排序、打印等功能。下面详细介绍系统中各主要功能的实现过程。
3.1建立应用对象
建立名为wsgl的工作区和目标,然后建立一名为wsgl的应用对象,在其open事件中加入如下脚本:
// 设置SQLCA的属性,利用名为 Wsgl的数据源连接数据库
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Connectstring='DSN=wsgl'"
connect using sqlca;
if sqlca.sqlcode<0 then
messagebox("错误","数据库连接错误")
else
open(w-main)
end if
在应用对象的close事件中加入如下脚本:
//断开数据库连接
disconnect using sqlca;
if sqlca.sqlcode<0 then
messagebox("错误","数据库断开失败!")
end if
3.2登录窗口
对于系统的用户分为3类:系统管理员(其权限为1)、数据管理员(其权限为2)和普通用户(其权限为3)。系统管理员拥有最大的权限;数据管理员可以修改数据,但不能对用户进行管理;普通用户只有对数据的浏览权限。登录窗口w-main的主要功能是验证用户身份,并确定用户权限,如图3所示。
为了方便用户的输入,为每个单行编辑框都定义了一个用户事件ue_enterkey,用pbm_keydown作为事件的ID。当用户按下回车键时,该用户事件用来完成对单行编辑框的输入,并转入下一个处理过程。
在“用户名”单行编辑框的ue_enterkey事件中加入如下脚本:
//判断用户是否按下回车键
if key=keyenter! then
//把输入焦点转移到“密码”单行编辑框
sle_3.setfocus()
end if
在“密码”单行编辑框的ue_enterkey事件中加入如下脚本:
if key=keyenter!then
//触发登录按钮的clicked事件
cb_1.triggerevent(clicked!)
end if
在登录按钮的事件中加入如下脚本:
string password
//用SQL语句根据用户名查找密码
SELECT mm,qx
INTO :password,:right //right为设置的全局变量,用来保存用户权限
FROM "qx"
WHERE "qx"."hm" =:sle_2.text;
//SQLCode等于100代表没有得到任何记录
If SQLCA.SQLCode=100 Then
MessageBox("提示信息","没有此用户")
sle_2.text=""
sle_3.text=""
sle_2.SetFocus()
ElseIf password<>sle_3.text Then
MessageBox("提示信息","密码错误")
sle_3.text=""
sle_3.SetFocus()
Else
//打开主窗口,关闭登录窗口
Open(w_m1)
Close(Parent)
End If
在取消按钮的事件中加入如下脚本:
close(parent)//关闭登录窗口
3.3菜单设计
系统中主要的功能就是在数据窗口中完成对数据的增、删、改、查询、查找和打印(查询是指找到满足条件的多个记录,查找是指找到满足条件的第一个记录),而对不同表完成的功能基本相似,因此使不同的窗口共享一个主菜单m_main,通过在菜单中触发当前活动窗口中定义的事件来完成各种功能。例如,在需要打印的每个窗口上定义一个ue_print事件,在打印菜单项的clicked事件中只要触发当前活动窗口的ue_print事件,即可以完成打印功能,具体的打印实现则在窗口的ue_print事件中完成。菜单的结构如图5所示。
文件 编辑 操作 窗口 系统文护 统计数据 档案分布 文件操作
文件管理 检索 查询 窗口级联 用户文护 期限统计 按部门分布 文件转出
登记管理 追加 查找 窗口重叠 文件文护 部门统计 按保管期限分布 文件转入
借阅管理 插入 升序 窗口水平
用户管理 删除 降序 窗口垂直
页面设置 上一个
打印预览 下一个
取消预览 最前一个
打印 最后一个
保存
退出
图5 菜单结构
为菜单高置好名称、图标,并通过在菜单描绘器中的Toolbar标签设置其spacebefore和order项来分组,并确定在工具栏中的先后顺序。
图6 工具栏
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>