网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

档案管理系统

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
档案管理系统目      录
内 容 摘 要………………………………………………………………………………2前       言………………………………………………………………………………3第一章 系统分析…………………………………………………………………………4   1.1 需求分析…………………………………………………………………………4   1.1.1应用现状………………………………………………………………………4   1.1.2存在的问题……………………………………………………………………4   1.1.3 用户的要求……………………………………………………………………4   1.2可行性分析…………………………………………………………………………4第二章 系统设计……………………………………………………………………………52.1设计目标……………………………………………………………………………52.2功能设计……………………………………………………………………………52.2.1开发和运行环境…………………………………………………………………52.3数据库设计…………………………………………………………………………52.3.1 E-R图………………………………………………………………………52.3.2数据库结构………………………………………………………………………62.3.3数据库关联………………………………………………………………………72.4用户界面设计………………………………………………………………………7第三章 系统实现…………………………………………………………………………93.1建立应用对象………………………………………………………………………93.2登录窗口……………………………………………………………………………93.3菜单设计…………………………………………………………………………113.4 MDI主窗口…………………………………………………………………………133.5归档文件管理窗口…………………………………………………………………143.6登记情况窗口………………………………………………………………………233.7借阅管理窗口………………………………………………………………………243.8页面设置窗口………………………………………………………………………253.9打印预览窗口………………………………………………………………………263.10打印设置窗口………………………………………………………………………283.11查询窗口……………………………………………………………………………313.12查找窗口……………………………………………………………………………343.13统计窗口………………………………………………………………………373.14档案分布窗口………………………………………………………………………393.15文件操作窗口………………………………………………………………………40结束语………………………………………………………………………………………42参考文献……………………………………………………………………………………355
 
档案管理系统内 容 摘 要
档案管理信息系统是使用PowerBuilder 9.0开发的面向对象的数据库信息管理系统,该系统主要用于文件归档的管理。本系统实现对归档文件的录入、修改、删除、查询、打印等功能,并实现了档案统计、分布情况的分析,还有档案文件的借阅管理,并且对使用该系统的用户进行管理控制,防止文件泄密等。该系统界面友好,操作简单,易学易用,适合各机关事业单位使用,从总体方案上达到该软件所需的目标要求。 关键词:档案管理  信息系统  数据库  PowerBuilder 9.0 
前    言
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。由于计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。一个单位的信息化程度体现在将计算机与信息技术应用于日常办公与管理中,以现代化工具代替传统手工作业。无疑,使用信息化管理将使办公更高效、管理更科学,信息交流更迅速。档案管理信息系统是一个机关事业单位不可缺少的部分,它的内容对于单位的各部门来说都至关重要,所以档案管理信息系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统手工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对档案信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高档案管理的效率,也是机关事业单位的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情,在很短的时间里开发出一套界面友好,功能强大,使用简单的适用于各单位的档案管理系统。该档案管理系统能有效的处理各种文件管理,具有数据输入、修改、删除、查询、打印等功能。
第一章  系统分析
1.1需求分析我市某一机关事业单位的档案管理目前仍靠传统手工方式来完成。随着信息技术的发展和计算机的日益普及,该单位的档案管理也由以前的手工方式向计算机化的电子方式开始转移,利用计算机技术和数据库技术设计开发档案管理信息系统,为档案管理人员提供了档案管理自动化的可能,尤其是电子公文处理的广泛应用更加速了档案管理系统的出台。1.1.1应用现状该单位现在的档案管理工作主要是手工方式,即手工录入归档文件、修改、查询,需要占用很大的工作。1.1.2存在的问题随着该单位文件量的日益增加,传统手工方式的档案管理工作需要耗用相当大的工作量,而且效率也不明显。传统的档案管理工作一直以来存在着许多缺点:如效率低、保密性差、工作量繁琐,时间一长将产生大量的文件和数据,这对于查找和维护都带来了不少的困难。1.1.3用户的要求档案管理工作主要是对各种文件基本情况的归档管理和档案文件的借阅管理,主要包括文件输入、修改、删除、查询、打印等功能,要求新的档案管理信息系统能高效、准确地完成这些功能。1.2可行性分析档案管理系统的要求是能够管理归档文件信息,主要涉及到归档文件的基本信息、借阅档案信息和借阅者登记信息的管理。归档文件的相关内容是需要由人工录入的,因此系统就需要设计一个归档文件信息管理的窗口来录入文件信息,并且在这个窗口中放入一个数据窗口来实现录入、修改、删除等方面信息的功能。系统还要求具有查询文件信息的功能,因此为了显示查询结果,就要设计一个窗口,并将其放在查询窗口中实现查询功能。由于该系统是各单位管理文件档案信息的系统,因此必须具有一定的保密性,需要特定的人员才可以修改,因此需要设计一个用户登陆的窗口,使具有访问权限的用户才能登录此系统。系统的主窗口要能够在用户选中相应操作后,调出相应的窗口来使用户在窗口中完成相应的功能。
 

档案管理系统第二章  系统设计
2.1设计目标根据需求分析,系统界面友好美观,操作简单易行,全面自动化信息管理,档案管理信息系统主要是对文件基本情况的管理、借阅情况的管理,考虑到系统的安全性,不同用户应该具有不同的权限,系统还应有用户权限管理功能。具体实现功能主要包括数据输入、修改、删除、查询,打印等。2.2功能设计主要包括用户界面设计、系统主窗口设计、文件管理窗口设计、查询窗口设计等。2.2.1开发和运行环境硬件环境要求:有一台微型计算机。操作系统环境要求:Windows 98、Windows 2000、Windows XP。开发系统环境:PowerBuilder 9.0。数据库管理系统(DBMS)选择PowerBuilder自带的Sybase SQL Anywhere 8.0。2.3数据库设计2.3.1 E-R图 图1 E-R图
2.3.2数据库结构根据本单位的情况,该系统采用了以下四个表:用户权限表(QX) 、文件基本情况表(WJ)、借阅登记情况表(DJ)、借阅情况表(JY)。1.用户权限表(QX)设置合法用户的用户名、密码、权限等信息,如表1所示。表1  用户权限表(qx)主键 列标题 列名 数据类型 宽度 小数位数 是否空 缺省值P 用户名 Hm Char  10  No  密码 Mm  Char  10  No   权限 Qx  Smallint    No  2.文件基本情况表(WJ)设置归档文件信息包括案卷题名、分类号、保管期限等信息,如表2所示。表2  文件基本情况表(wj)主键 列标题 列名 数据类型 宽度 小数位数 是否空 缺省值 案卷题名 Tm Varchar 100  No  分类号 Flh Char 20  No  时间 Sj Date   No  页数 Ys Smallint   No  全宗号 Qzh Smallint   No  保管期限 Bgqx Char 10  No  密级 Mj Char 10  No  摘要 Zy Varchar 100  Yes  文件份数 Wjfs Smallint   No P 案卷档号 Ajdh Smallint   No  编制单位 Bzdw Varchar 100  No  编制部门 Bzbm Varchar 100  No 3.借阅登记情况表(DJ)设置借阅者的登记信息包括登记号、姓名、借阅单位等信息,如表3所示。表3  借阅登记情况表(dj)主键 列标题 列名 数据类型 宽度 小数位数 是否空 缺省值P 登记号 Djh Smallint   No  姓名 Xm Char 10  No  借阅单位 Sydw Varchar 100  No  电话 Dh Char 20  No  密级 Mj Char 10  No  管理员 gly Char 10  No 4.借阅情况表(JY)设置借阅档案的相关信息包括案卷题名、案卷档号等信息,如表4所示。表4  借阅情况表(jy)主键 列标题 列名 数据类型 宽度 小数位数 是否空 缺省值 登记号 Djh Smallint   No  案卷题名 Tm  Varchar  100  No   分类号 Flh  Char  20  No  P 案卷档号 Ajdh  Smallint    No   姓名 Xm Char 10  No  借阅单位 Sydw Varchar 100  No   借阅时间 Jysj Date    No  归还时间 ghsj Date    No 2.3.3数据库关联本系统中用到的4个表关联如图2所示。
 图2 数据库表关联示意图
2.4用户界面设计用户运行该系统时,首先出现一个登录窗口(如图3),提示用户输入用户名和密码,输入正确合法的用户信息后进入系统主窗口。如图4所示。
 
档案管理系统图4 系统运行主窗口主窗口的上半部分是菜单和工具栏,系统中的所有功能通过选择菜单项或单击工具栏中的图标就可以实现。通过选择各个菜单项或工具栏图标,分别进入各个具体界面,实现不同的操作功能。
第三章  系统实现
在档案管理信息系统中主要实现对归档文件基本情况表、借阅登记情况表、借阅情况表及用户表中数据的增、删、改和查询、查找、排序、打印等功能。下面详细介绍系统中各主要功能的实现过程。
3.1建立应用对象建立名为wsgl的工作区和目标,然后建立一名为wsgl的应用对象,在其open事件中加入如下脚本:// 设置SQLCA的属性,利用名为 Wsgl的数据源连接数据库SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "Connectstring='DSN=wsgl'"connect using sqlca;if sqlca.sqlcode<0 then  messagebox("错误","数据库连接错误")elseopen(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,qxINTO :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 工具栏
 
档案管理系统在菜单项的 clicked事件中基本完成两类操作:一是得到当前活动窗口并触发窗口上定义的用户事件;二是打开某个固定窗口。因此在这里只介绍部分菜单项clicked事件的脚本。在文件管理菜单项的Clicked事件中加入如下脚本://打开文件管理窗口opensheet(w_wj,w_m1,4)
在页面设置菜单项的Clicked事件中加入如下脚本:window actsheet//取得当前活动窗口actsheet=w_m1.GetActiveSheet()//触发活动窗口的ue_pageset事件actsheet.TriggerEvent("ue_pageset")
在打印菜单项的Clicked事件中加入如下脚本:window actsheetactsheet=w_m1.GetActiveSheet()actsheet.TriggerEvent("ue_print")
在退出菜单项的Clicked事件中加入如下脚本:close(parentwindow)
在窗口级联菜单项的Clicked事件中加入如下脚本://修改菜单的选中标志m_jilian.checked=Truem_chongdie.checked=Falsem_shuiping.checked=Falsem_chuizhi.checked=False//改变工作表的排列方式ParentWindow.ArrangeSheets (Cascade!)
在窗口重叠菜单项的Clicked事件中加入如下脚本:m_jilian.checked=Falsem_chongdie.checked=Truem_shuiping.checked=Falsem_chuizhi.checked=falseParentWindow.ArrangeSheets (Layer!)
在窗口水平菜单项的Clicked事件中加入如下脚本:m_jilian.checked=Falsem_chongdie.checked=Falsem_shuiping.checked=Truem_chuizhi.checked=FalseParentWindow.ArrangeSheets (Tile!)
在窗口垂直菜单项的Clicked事件中加入如下脚本:m_jilian.checked=Falsem_chongdie.checked=Falsem_shuiping.checked=Falsem_chuizhi.checked=TrueParentWindow.ArrangeSheets (TileHorizontal!)
3.4 MDI主窗口本系统采用MDI风格,因此建立一个主窗口w_m1,选择其窗口类型为MDI Frame,用菜单m_main作为主窗口的菜单。在主窗口的Open事件中加入如下脚本://如果不是系统管理员则屏蔽帐号管理菜单项If right<>1 then m_main.m_file.m_id.visible=False//因为打开主窗口后还没有打开任何工作表,所以把和工作表相关的//功能菜单的enabled属性设为Falsem_main.m_file.m_pageset.enabled=Falsem_main.m_file.m_preview.enabled=Falsem_main.m_file.m_previewcancle.enabled=Falsem_main.m_file.m_print.enabled=Falsem_main.m_edit.m_insert.enabled=Falsem_main.m_edit.m_del.enabled=Falsem_main.m_file.m_save.enabled=Falsem_main.m_edit.m_append.enabled=Falsem_main.m_edit.m_retrieve.enabled=Falsem_main.m_edit.m_prior.enabled=Falsem_main.m_edit.m_next.enabled=Falsem_main.m_edit.m_first.enabled=Falsem_main.m_edit.m_last.enabled=Falsem_main.m_caozuo.m_select.enabled=Falselwfree.cnm_main.m_window.m_jilian.enabled=Falsem_main.m_window.m_chongdie.enabled=Falsem_main.m_window.m_shuiping.enabled=Falsem_main.m_window.m_chuizhi.enabled=False
3.5归档文件管理窗口在归档文件管理窗口w_wj中主要完成对归档文件信息的各种操作。首先,建立一个数据窗口对象d_wj,其数据源是文件基本情况表。其次,在窗口中添加一个数据窗口控件dw_wj,并和数据窗口对象w_wj相关联;一个静态文本框用来显示当前日期。为了美化界面,把显示日期的静态文本边界设置为3DRaised,并设置一定的背景色。最后,在窗口中定义ue_append、ue_filter等事件,用来完成菜单项的实际功能。 图7  文件管理窗口数据窗口默认按Tab键来改变数据窗口的当前列,但用户的习惯经常是在输入完后按回车键来跳转到数据窗口中的下一列。为了方便用户的输入,在数据窗口du_wj上声明一个用户事件ue_enterkey,用pbm_dwnprocessenter作为事件的ID,此事件截获回车键,并用回车键来代替Tab键的功能。在文件管理窗口的Open事件中加入如下脚本://为数据窗口分配事务对象,并检索数据dw_wj.SetTransObject (SQLCA)dw_wj.Retrieve()//用静态文本显示当前日期st_1.text=string(today(),"yyyy/mm/dd")
在文件管理窗口的Activate事件中加入如下脚本://此事件在当前窗口获得焦点时触发//如果当前用户的权限不是系统管理员和数据管理员则屏蔽数据修改相关的菜单If right>2 Then  m_main.m_edit.m_insert.enabled=False m_main.m_edit.m_del.enabled=False m_main.m_file.m_save.enabled=False m_main.m_edit.m_append.enabled=FalseElse m_main.m_edit.m_insert.enabled=True m_main.m_edit.m_del.enabled=True m_main.m_file.m_save.enabled=True m_main.m_edit.m_append.enabled=True m_main.m_wh.m_yhwh.enabled=true   m_main.m_wh.m_xzyh.enabled=true   m_main.m_wh.m_wjwh.enabled=true   m_main.m_tj.m_qxtj.enabled=true   m_main.m_tj.m_bmtj.enabled=true   m_main.m_fb.m_bmfb.enabled=true   m_main.m_fb.m_qxfb.enabled=trueEnd If//在当前窗口得到焦点后修改菜单项的enabled属性为True//在窗口得到焦点时使菜单项可用m_main.m_file.m_pageset.enabled=Truem_main.m_file.m_preview.enabled=Truem_main.m_file.m_previewcancle.enabled=True
 
档案管理系统m_main.m_file.m_print.enabled=Truem_main.m_edit.m_retrieve.enabled=Truem_main.m_edit.m_prior.enabled=Truem_main.m_edit.m_next.enabled=Truem_main.m_edit.m_first.enabled=Truem_main.m_edit.m_last.enabled=Truem_main.m_caozuo.m_select.enabled=Truem_main.m_caozuo.m_find.enabled=Truem_main.m_caozuo.m_sortasc.enabled=Truem_main.m_caozuo.m_sortdesc.enabled=Truem_main.m_window.m_jilian.enabled=Truem_main.m_window.m_chongdie.enabled=Truem_main.m_window.m_shuiping.enabled=Truem_main.m_window.m_chuizhi.enabled=True
在文件管理窗口的Deactivate事件中加入如下脚本://此事件在窗口失去焦点时触发//当窗口失去焦点时修改和窗口相关的菜单项的enabled属性为False//在窗口失去焦点时使菜单项不可用m_main.m_file.m_pageset.enabled=Falsem_main.m_file.m_preview.enabled=Falsem_main.m_file.m_previewcancle.enabled=Falsem_main.m_file.m_print.enabled=Falsem_main.m_edit.m_insert.enabled=Falsem_main.m_edit.m_append.enabled=Falsem_main.m_edit.m_del.enabled=Falsem_main.m_file.m_save.enabled=Falsem_main.m_edit.m_retrieve.enabled=Falsem_main.m_edit.m_prior.enabled=Falsem_main.m_edit.m_next.enabled=Falsem_main.m_edit.m_first.enabled=Falsem_main.m_edit.m_last.enabled=Falsem_main.m_caozuo.m_select.enabled=Falsem_main.m_caozuo.m_find.enabled=Falsem_main.m_caozuo.m_sortasc.enabled=Falsem_main.m_caozuo.m_sortdesc.enabled=Falsem_main.m_window.m_jilian.enabled=Falsem_main.m_window.m_chongdie.enabled=Falsem_main.m_window.m_shuiping.enabled=Falsem_main.m_window.m_chuizhi.enabled=Falsem_main.m_wh.m_yhwh.enabled=Falsem_main.m_wh.m_xzyh.enabled=Falsem_main.m_wh.m_wjwh.enabled=Falsem_main.m_tj.m_qxtj.enabled=Falsem_main.m_tj.m_bmtj.enabled=Falsem_main.m_fb.m_bmfb.enabled=Falsem_main.m_fb.m_qxfb.enabled=False
在文件管理窗口的CloseQuery事件中加入如下脚本:Integer i//判断是否有数据的修改If dw_wj.ModifiedCount() + dw_wj.DeletedCount()>0 Then i= MessageBox("提示","是否保存对数据的修改?", Exclamation!,YesNoCancel!) Choose case i  case 1   //保存数据   If dw_wj.UpDate() = 1 Then    //如果保存成功则提交    COMMIT;   Else     ROLLBACK;    MessageBox("错误", "数据库内容更新失败")   End If  case 2   //不保存数据   Return 0  Case 3   //阻止窗口的关闭   Return 1 End ChooseEnd If
在文件管理窗口的Resize事件中加入如下脚本://此事件在窗口改变大小时触发//修改数据窗口控件的位置及大小,使其随窗口大小的改变而改变dw_wj.x=10dw_wj.y=150//newwidth和newheight为该事件传递的参数,代表窗口的新宽度和高度dw_wj.width=newwidth - 20dw_wj.height=newheight – 160
在文件管理窗口的ue_append事件中加入如下脚本://实现追加功能long therow//在数据窗口最后插入一行therow=dw_wj.insertrow(0)//滚动到新加入的行dw_wj.ScrollToRow(theRow)dw_wj.SetFocus()
在文件管理窗口的ue_del事件中加入如下脚本://实现删除功能integer i,mm=0long therowi=MessageBox("提示信息","确认要删除行?",exclamation!,YesNoCancel!)If i=1 Then //如果当前数据窗口中选择了多行则用循环删除多行 Do  //因为如果删除了第3行,那么原来第4行就变成现在的第三行,所以  //要把搜索的行号减1  therow=dw_wj.GetSelectedRow(therow - 1)  If therow<>0 Then   m=1   dw_wj.DeleteRow(therow)  End If Loop While therow<>0lwfree.cnEnd Ifdw_wj.SetFocus()
在文件管理窗口的ue_filter事件中加入如下脚本://实现查询功能。打开查询窗口,并把数据窗口dw_wj作为参数传递过去,可以使多个窗口共用一个查询窗口OpenWithParm(w_filter, dw_wj, w_wj)
在文件管理窗口的ue_find事件中加入如下脚本://实现查找功能。打开查找窗口,并把数据窗口dw_wj作为参数传递过去,可以使多个窗口共用一个查找窗口OpenWithParm(w_find, dw_wj, w_wj)
在文件管理窗口的ue_first事件中加入如下脚本://滚动到第一行,实现最前一个的功能dw_wj.ScrollToRow(1)dw_wj.SetFocus()
在文件管理窗口的ue_insert事件中加入如下脚本://实现插入功能long therow,therow1//得到数据窗口当前行,并在当前行前面插入therow=dw_wj.GetRow()therow1=dw_wj.InsertRow(therow)dw_wj.SetRow(therow1)dw_wj.SetFocus()
在文件管理窗口的ue_last事件中加入如下脚本:
 
档案管理系统//滚动到最后一行,实现最后一个的功能long therowtherow=dw_wj.RowCount()dw_wj.ScrollToRow(therow)dw_wj.SetFocus()
在文件管理窗口的ue_next事件中加入如下脚本://滚动到下一行,实现下一个的功能dw_wj.ScrollNextRow ( )dw_wj.SetFocus()
在文件管理窗口的ue_prior事件中加入如下脚本://滚动到上一行,实现上一个的功能dw_wj.ScrollPriorRow ( )dw_wj.SetFocus()
在文件管理窗口的ue_pageset事件中加入如下脚本://实现页面设置功能。打开页面设置窗口,并把数据窗口dw_wj作为参数传递过去,可以使多个窗口共用一个页面设置窗口OpenWithParm(w_setpage, dw_wj, w_wj)
在文件管理窗口的ue_preview事件中加入如下脚本://实现打印预览功能。打开打印预览窗口,并把数据窗口dw_wj作为参数传递过去,可以使多个窗口共用一个打印预览窗口OpenWithParm(w_preview, dw_wj, w_wj)
在文件管理窗口的ue_previewcancle事件中加入如下脚本://取消数据窗口的预览模式dw_wj.modify("datawindow.print.preview = No")dw_wj.SetFocus()
在文件管理窗口的ue_print事件中加入如下脚本://实现打印功能。打开打印窗口,并把数据窗口dw_wj作为参数传递过去,可以使多个窗口共用一个打印窗口OpenWithParm(w_print, dw_wj, w_wj)
在文件管理窗口的ue_retrieve事件中加入如下脚本://实现检索功能。把过滤条件设为空,并重新检索数据dw_wj.SetFilter("")dw_wj.SetSort("")dw_wj.SetTransObject(SQLCA)dw_wj.Retrieve()dw_wj.SetFocus()
在文件管理窗口的ue_save事件中加入如下脚本://实现保存功能If dw_wj.UpDate() = 1 Then COMMIT;Else  ROLLBACK; MessageBox("错误", "数据库内容更新失败")End If
在文件管理窗口的ue_sortasc事件中加入如下脚本://实现升序的功能String Is_ColumnName//得到数据窗口中当前列的列名Is_ColumnName = dw_wj.GetColumnName()If Is_ColumnName <> "" Then  dw_wj.SetSort(Is_ColumnName + " A")  dw_wj.Sort()Else  MessageBox("提示","请您单击数据窗口中某一列,将按此列升序排列")End Ifdw_wj.SetFocus()
在文件管理窗口的ue_sortdesc事件中加入如下脚本://实现降序的功能String Is_ColumnNameIs_ColumnName = dw_wj.GetColumnName()If Is_ColumnName <> "" Then  dw_wj.SetSort(Is_ColumnName + " D")  dw_wj.Sort()Else  MessageBox("提示","请您单击数据窗口中某一列,将按此列降序排列")End Ifdw_wj.SetFocus()
在数据窗口控件dw_wj的Clicked事件中加入如下脚本://通过单击可以选择一行或多行long therow,startrow,endrowIf KeyDown(KeyControl!) Then  //如果按着Ctrl键则使点击的行被选择 If row>0 Then   //row是系统传递到Clicked事件的参数,代表当前鼠标点击的行  //事件的参数可以在脚本编辑器的"Paste Argument"下拉列表框中查看  this.SelectRow(row,TRUE) Else  return End IfElseIf KeyDown(KeyShift!) Then //如果按着Shift键则选择一定范围内的行 startrow=this.GetRow() endrow=row If startrow>endrow Then  For therow=startrow To endrow Step -1   this.SelectRow(therow,TRUE)  Next Else  For therow=startrow To endrow   this.SelectRow(therow,TRUE)  Next End IfElse //如果没按Ctrl和Shift键,则取消选中状态 this.SelectRow(0,False)End If
在数据窗口控件dw_wj的ue_enterkey事件中加入如下脚本:long therowIf this.AcceptText() < 0 Then   Return 1 End If If this.GetColumn() = Long(this.object.datawindow.column.count) Then  If this.GetRow() = this.RowCount() Then    therow=this.Insertrow(0) lwfree.cnSend(Handle(this),256,9,Long(0,0)) return 1
在数据窗口控件dw_wj的RetrieveEnd事件中加入如下脚本://此事件在数据检索完成后触发integer ColIndex,ColNumIf right>2 Then//如果不是系统管理员和数据管理员则通过把列对象的Order设为0来阻止对数据的修改 ColNum=integer(this.describe("datawindow.column.count")) For ColIndex=1 To ColNum  this.SetTabOrder(ColIndex,0) NextEnd If
3.6登记情况窗口在登记情况窗口w_dj中主要完成对借阅档案者登记信息的各种操作。首先,建立一个数据窗口对象d_dj,其数据源是借阅登记情况表。其次,在窗口中添加一个数据窗口控件dw_dj,并和数据窗口对象w_dj相关联;一个静态文本框用来显示当前日期。为
 
档案管理系统图8 登记情况管理窗口在登记情况管理窗口中,大部分功能都和归档文件管理窗口功能相同,不重复介绍。
3.7借阅管理窗口在借阅管理窗口w_jy中主要完成对借阅档案信息的各种操作。首先,建立一个数据窗口对象d_jy,其数据源是借阅档案情况表。其次,在窗口中添加一个数据窗口控件dw_jy,并和数据窗口对象w_jy相关联;一个静态文本框用来显示当前日期。为了美化界面,把显示日期的静态文本边界设置为3DRaised,并设置一定的背景色。最后,在窗口中定义ue_append、ue_filter、ue_find等事件,用来完成菜单项的实际功能。 图9 借阅档案管理窗口在借阅档案管理窗口、用户管理窗口中,大部分功能都和归档文件管理窗口功能相同,不重复介绍。3.8页面设置窗口页面设置窗口(如图10所示)用来对数据窗口打印时的页边距进行设置,通过从参数传递过来的数据窗口,从而可以使多个窗口共用此页面设置窗口。该窗口包含的主要对象有:一组静态文本,用来显示固定信息:4个掩码编辑框(em_bottom、em_left、          em_right、em_top),用来输入页面的边距;两个分组框,一个把4个掩码编辑框框在一起,       图10 页面设置窗口一个把两个单选按钮(rb_1、rb_2控制打印方向)框起来,使窗口看起来整洁;两按钮,“确定”按钮用来设置页边距,“取消”按钮关闭页面设置窗口。在页面设置窗口中声明一个实例变量(datawindow i_dwtoacton)保存传递到该窗口的数据窗口。在页面设置窗口的Open事件中加入如下脚本:String szDescribe//获得传递过来的数据窗口参数i_dwToActOn = Message.PowerObjectParm//取得当前数据窗口的页边距szDescribe = i_dwToActOn.Describe("DataWindow.Print.Margin.Bottom")em_bottom.Text = szDescribeszDescribe = i_dwToActOn.Describe("DataWindow.Print.Margin.Left")em_left.Text = szDescribeszDescribe = i_dwToActOn.Describe("DataWindow.Print.Margin.Right")em_right.Text = szDescribeszDescribe = i_dwToActOn.Describe("DataWindow.Print.Margin.Top")em_top.Text = szDescribe
在页面设置窗口的确定按钮的Cliclked事件中加入如下脚本:Decimal bottom, left, iright, topString szModify, szReturn//拼写设置页边距的字符串If  em_bottom.GetData(bottom) = 1 Then szModify = szModify + " datawindow.print.margin.bottom = " + string(bottom)End IfIF em_left.GetData(left) = 1 Then szModify = szModify + " datawindow.print.margin.left = " + string(left)END IFIf em_right.GetData(iright) = 1 Then  szModify = szModify + " datawindow.print.margin.right = " + string(iright)End If
If em_top.GetData(top) = 1 Then  szModify = szModify + " datawindow.print.margin.top = " + string(top)End If//设置数据窗口的打印方向if rb_1.checked = TRUE  then   szModify = szModify + " datawindow.print.orientation=1"end ifszModify = Trim(szModify)//设置数据窗口的页边距szReturn = i_dwToActOn.Modify(szModify)If szReturn <> "" Then   MessageBox("错误","边框设置错误!" + "~n"+ szReturn)   ReturnEnd Ifi_dwtoacton.SetFocus()Close(Parent)
在页面设置窗口的取消按钮的Cliclked事件中加入如下脚本:Close(Parent)3.9打印预览窗口打印预览窗口(如图11所示)用来设置预览时的比例及是否显示标尺,通过参数传递过来的数据窗口,从而可以使多个窗口共用此打印预览窗口。该窗口包含的主要对象有:一组单选按钮(rb_200p、rb_100p、rb_50p、rb_33p、rb_custom),用来选择打印预览的显示比例;一个掩码编辑框(em_custom),用来输入自定义的显示比例;一个复选按钮(cbx_rulers),用来确定是否显示标尺;一个分组框,把单选按钮、掩码编辑框和复选按钮框起来;一个“确定”按钮,用来根据用户的选择显示打印预览。  在打印预览窗口中声明一实例变量(datawindow  i_dwtoacton)保存传递到该窗口的数据窗口。
在打印预览窗口的Open事件中加入如下脚本://取得传递的数据窗口参数i_dwtoacton=message.powerobjectparm
在打印预览窗口的掩码编辑框em_custom的Modified事件中加入如下脚本:                        图11 打印预览窗口//把“自定义”单选按钮高为选中状态rb_custom.checked=true
在打印预览窗口的确定按钮的Clicked事件中加入如下脚本:String sZoom, szReturn, szModify//取得预览比例If rb_200p.checked = TRUE Then   sZoom = "200"ElseIf rb_100p.checked = TRUE  Then sZoom = "100"ElseIf rb_50p.checked = TRUE  Then sZoom = "50"ElseIf rb_33p.checked = TRUE  Then  sZoom = "33"ElseIf  rb_custom.checked = TRUE Then sZoom = em_custom.textEnd If //拼写修改数据窗口预览设置的字符串szModify = szModify + " datawindow.print.preview.zoom = " + sZoom//把数据窗口的预览状态设为真szModify = szModify + " datawindow.print.preview = YES"If cbx_rulers.checked = True Then szModify = szModify+" datawindow.print.preview.rulers = "+"YES"
 
档案管理系统Else  szModify = szModify+" datawindow.print.preview.rulers = "+"NO" End IfszModify = Trim(szModify)//修改数据窗口预览设置szreturn = i_dwtoacton.modIfy(szModify)If szreturn <> "" Then messagebox("错误", "打印预览失败!") ReturnEnd IfClose(Parent)
3.10打印设置窗口打印设置窗口(如图12所示)用来设置和打印相关的各项参数,并启动打印作业,通过从参数传递过来的数据窗口,从而可以使多个窗口共用此打印设置窗口。该窗口包含的主要对象有:一个静态文本对象(st_current_printer),用来显示当前的打印机;一个掩码编辑框(em_copies),用设置打印的份数,使用掩码编辑框是为了得到一个上下头调节打印份数的效果;一个单行编辑框(sle_page_range),用来输入需要打印的页码;一组单选按钮(rb_all_page、rb_current_page、rb_pages),用来选择是打印全部页、当前页还是用户自己输入页码;一个分组框,用来把单选按钮和单行编辑框框在一起;一个下拉列表(ddlb_range_include),用来选择是全部打印还是打印奇数或偶数行;一个复选框(cbx_collate),用来确定是否需要校验打印内容;3个按钮,“确定”按钮根据打印设置开始打印,“取消”按钮关闭打印设置窗口,“打印机设置”按钮调用系统的打印机设置对话框。在打印设置窗口中声明一个事例变量(datawindow i_dwtoacton)保存传递到该窗口的数据窗口。图12 打印设置窗口
在打印设置窗口的Open事件中加入如下脚本:String szCopiesi_dwToActOn = Message.PowerObjectParm//取得当前使用打印机的型号st_current_printer.text = " 当前打印机: " + &         String(i_dwToActOn.Object.DataWindow.Printer)szCopies = String( i_dwToActOn.Object.DataWindow.Print.Copies)//设置初始打印份数If szCopies <> "" And szCopies <> "0" Then   em_copies.Text = szCopiesElse   em_copies.Text = "1"End If//如果当前数据窗口的打印校验取值为“YES”,则设置“校验拷贝”复选框//的Checked为True,否则设为Falsecbx_collate.Checked = ( Upper( String( &     i_dwToActOn.Object.DataWindow.Print.Collate)) = "YES")
在打印窗口的“全部”单选按钮的Clicked事件中加入如下脚本://清空单行列表框的内容sle_page_range.text=""
在打印窗口的“当前页”单选按钮的Clicked事件中加入如下脚本:sle_page_range.text=""
在打印窗口的“选择页码”单选按钮的Clicked事件中加入如下脚本:If this.Checked Then  //点击该单选按钮后使单行编辑框获得焦点 sle_page_range.SetFocus()End If在打印窗口的单行编辑框(sle_page_range)的Modified事件中加入如下脚本:rb_pages.checked=TRUE
在打印窗口的确定按钮的Clicked事件中加入如下脚本:Integer nIndexString  szPage, szModify, szReturnDecimal sCopies//取得掩码编辑框的内容,即打印份数em_copies.getdata(sCopies)//下面不断拼写szmodify字符串,用来保存打印属性的设置szModify = "DataWindow.Print.Copies = " + string(scopies)//保存打印校验属性If cbx_collate.Checked Then   szModify = szModify + " DataWindow.Print.Collate = Yes "Else   szModify = szModify + " DataWindow.Print.Collate = No "End IfIf rb_all_page.Checked Then //保存打印全部页码   szModify = szModify + " DataWindow.Print.Page.Range = ''" ElseIf rb_current_page.Checked Then   //保存打印当前页码 szPage = i_dwToActOn.Describe( "Evaluate('Page()', " + &                                  String(i_dwToActOn.GetRow()) +")")   szModify = szModify + " DataWindow.Print.Page.Range='" + szPage + "'"Else  //保存打印用户输入的页码 szModify = szModify+" DataWindow.Print.Page.Range='" + &             sle_page_range.text + "'"End If//取得用户在下拉列表框中所选项的索引值nIndex = ddlb_range_include.FindItem( ddlb_range_include.Text, 0)//保存希望打印页的页号szModify = szModify + " DataWindow.Print.Page.RangeInclude = " + String(nIndex - 1)szModify = Trim(szModify)//修改数据窗口的打印设置szReturn = i_dwToActOn.Modify(szModify)If szReturn <> "" Then   MessageBox("错误","打印参数设置失败!")   returnEnd IfParent.Visible = FALSE//打印数据窗口i_dwToActOn.Print()this.SetFocus()Close(Parent)
在打印窗口的取消按钮的Clicked事件中加入如下脚本:close(parent)
在打印窗口的打印机设置按钮的Clicked事件中加入如下脚本:printsetup()
3.11查询窗口查询窗口(如图13所示)用来查询数据窗口中满足查询条件的记录,通过从参数传递过来的数据窗口,从而可以使多个窗口共用此窗口。该窗口包含的主要对象有:4个静态文本用来显示提示信息;两个下拉列表框(ddlb_1、ddlb_2),用来输入查询列及关系操作符;一个单行编辑框(sle_1),用来输入查询的具体条件;两个单选按钮(rb_1、rb_2),用来选择查询条件之间的逻辑关系;一个多行编辑框(mle_1),用来显示最终的查询条件,用户还可以用括号改变最终查询条件的运算次序;3个按钮,“添加”按钮用来拼查询条件,并把查询条件显示在多行编辑框中,“查询”按钮实施查询操作,“取消”按钮关闭查询窗口。声明一个结构s_colinfo,拥有3个元素(coltag、colname、coltype),用来保存列对象的简单注释(因为要动态读取作为参数传递过来的数据窗口的所有列,并将这些信息加入到查询条件选择列的下拉列表中,所以用列的简单注释来取得列的中文含义)、名称和数据类型(用来保存列的数据类型)。
 
档案管理系统在查询窗口中声明如下的实例变量:s_colinfo colinfo[]     //保存列注释、名称和数据类型的数组integer ColCount   //保存当前数据窗口中列的数目string thelogic   //保存当前选择的逻辑关系string Expression  //保存查询表达式datawindow i_dwToActOn //保存传递过来的数据窗口
在查询窗口的Open事件中加入如下脚本:integer ithelogic=""i_dwToActOn = Message.PowerObjectParm//取得当前数据窗口的列的数据ColCount = Integer(i_dwToActOn.Object.DataWindow.Column.Count)for i=1 to ColCount //取得并保存列的简单注释、名称和数据类型 colinfo[i].colname=i_dwToActOn.Describe("#" + string(i) + ".Name") colinfo[i].coltag=i_dwToActOn.Describe("#" + string(i) + ".Tag") colinfo[i].coltype=left(i_dwToActOn.Describe("#" + string(i) + ".ColType"),4) //在列选择下拉列表中添加项 ddlb_1.additem(i_dwToActOn.Describe("#" + string(i) + ".Tag"))next//初始化,把and设为默认得逻辑关系rb_1.checked=trueddlb_1.selectitem(1)
在查询窗口的添加按钮的Clicked事件中加入如下脚本:string thecol,valinteger i//取得用户选择的列和用户输入的具体查询条件thecol=ddlb_1.textval=sle_1.text//从数组中查找用户选择的列在数组中的位置For i=1 To ColCount If thecol=colinfo[i].coltag Then exitNext//根据列的数据类型,拼写不同的查询字符串Choose Case colinfo[i].coltype  Case "char"    //拼写查询字符串   Expression = Expression + thelogic + colinfo[i].colname &                + ddlb_2.text + "'" + val + "'"  Case "deci", "long", "numb", "real"   //判断用户输入是否为数值   If IsNumber(sle_1.text) Then    Expression = Expression + thelogic + colinfo[i].colname &                 + ddlb_2.text + val   Else    MessageBox("错误","请输入数值作为查询条件")    sle_1.text=""    sle_1.SetFocus()    Return   End If  Case "date"   //格式化用户的输入为具体的日期格式    val = String(Date(val), "yyyy-mm-dd")   Expression = Expression + thelogic + colinfo[i].colname &                + ddlb_2.text +valEnd Choose//根据用户的选择设置逻辑关系If rb_1.checked Then thelogic=" and "Else thelogic=" or "End If//在多行编辑框中显示查询字符串mle_1.text=Expression
在查询窗口的查询按钮的Clicked事件中加入如下脚本://设置过滤条件i_dwtoacton.SetFilter(mle_1.text)i_dwtoacton.Filter()i_dwtoacton.SetFocus()Close(Parent)
在查询窗口的取消按钮的Clicked事件中加入如下脚本:Close(Parent)
3.12查找窗口查找窗口(如图14所示)用来查找数据窗口中满足查找条件的记录,通过从参数传递过来的数据窗口,从而可以使多个窗口共用此窗口。该窗口包含的主要对象有:4个静态文本用来显示提示信息;一个下拉列表框(ddlb_1),用来输入查找列;一个单行编辑框(sle_findword),用来输入查找的具体条件;两个单选按钮(rb_prior、rb_back),用来选择查找的方向;一个分组框(gb_1),用来把两个单选按钮框起来;两个按钮, “查找”按钮实施查找功能,“取消”按钮关闭查找窗口。 图14 查找窗口www.lwfree.cn  long row=0         //保存当前查找的起始行
在查找窗口的Open事件中加入如下脚本:integer ii_dwToActOn = Message.PowerObjectParmColCount = Integer(i_dwToActOn.Object.DataWindow.Column.Count)for i=1 to ColCount colinfo[i].colname=i_dwToActOn.Describe("#" + string(i) + ".Name")
 
档案管理系统 colinfo[i].coltag=i_dwToActOn.Describe("#" + string(i) + ".Tag") colinfo[i].coltype=left(i_dwToActOn.Describe("#" + string(i) + ".ColType"),4) ddlb_1.additem(i_dwToActOn.Describe("#" + string(i) + ".Tag"))next//取得当前行row=i_dwtoacton.GetRow()ddlb_1.SelectItem(1)
在查找窗口的查找按钮的Clicked事件中加入如下脚本:boolean FindToEndstring thecol,Expression,valinteger i//取得用户选择的列thecol=ddlb_1.textIf sle_FindWord.text = "" Then MessageBox("提示", "请输入您要查找的关键字") sle_FindWord.SetFocus() ReturnEnd Ifval=sle_FindWord.text//获得用户选择的列在数组中的位置For i=1 To ColCount If thecol=colinfo[i].coltag Then exitNext//确定查找方向If rb_back.Checked = True Then FindToEnd = TrueElseIf rb_prior.Checked = True Then FindToEnd = FalseEnd If//如果第二次查找,则把"查找"按钮的标题改为"查找下一个"This.Text = "查找下一个"//如果第二次查找,则取消上次查找行的选中状态i_dwtoacton.SelectRow(row,False)//根据数据类型的不同拼写查找字符串Choose Case colinfo[i].coltype  Case "char"    Expression = colinfo[i].colname + " like '%" + val + "%'"  Case "deci", "long", "numb", "real"   If IsNumber(val) Then    Expression = colinfo[i].colname + "=" + val   Else    MessageBox("错误","请输入数值作为查询条件")    sle_FindWord.text=""    sle_FindWord.SetFocus()    Return   End If  Case "date"    val = String(Date(val), "yyyy-mm-dd")   Expression = colinfo[i].colname + "=" + valEnd ChooseIf FindToEnd = True Then //从前向后查找 //从当前行往后查找因此row ++ row ++ //如果row大于当前数据窗口的总行数,向下越界,把row设为0 If row <= i_dwtoacton.RowCount() Then  row = i_dwtoacton.Find(Expression, row, i_dwtoacton.RowCount()) Else  row=0 End IfElse //从后向前查找 //从当前行往前查找因此row -- row -- //如果row小于1,向上越界,把row设为0 If row<1 Then  row=0 Else  row = i_dwtoacton.Find(Expression, row, 0) End IfEnd IfIf row = 0 Then MessageBox("警告","当前窗口内未找到此关键字") i_dwtoacton.SetFocus() Close(Parent) ReturnElseIf row < 0 Then MessageBox("错误","查找关键字失败") i_dwtoacton.SetFocus() ReturnElse  //把查找到的行设为选中状态并滚动到该行 i_dwtoacton.SelectRow(row,true) i_dwtoacton.ScrollToRow(row)End Ifi_dwtoacton.SetFocus()
在查找窗口的取消按钮的Clicked事件中加入如下脚本:Close(Parent)
3.13统计窗口统计窗口用来显示统计结果。首先,根据需要建立用于统计的数据窗口对象。d_bm:用来统计各部门拥有的档案数量,选择Group风格的数据窗口,用编制部门(bzbm)作为分组列。选择文件表的题名(tm)、分类号(flh)、时间(sj)、保管期限(bgqx)、编制部门(bzbm)作为数据源。在数据窗口描绘器里调整列的位置、属性,修改静态文本对象的标题、属性添加需要的计算列。最后,在统计窗口加入一个数据控件,用来放置用于统计的数据窗口对象。如图15所示。在统计窗口的Open事件中加入如下脚本://为数据窗口分配事务对象,并检索数据dw_st.SetTransObject (SQLCA)dw_st.Retrieve() 图15  按部门统计的结果统计窗口还有按照保管期限的不同进行的统计,主要介绍保管期限是长期的统计窗口,短期跟永久的功能基本相同不再重复。如图16所示。在统计窗口的Open事件中加入如下脚本:long therow//为数据窗口分配事务对象,并检索数据dw_1.SetTransObject (SQLCA)dw_1.Retrieve()//用静态文本显示当前日期st_2.text=string(today(),"yyyy/mm/dd")//设置过滤条件this.dw_1.SetFilter("bgqx='长期'")this.dw_1.Filter()therow=dw_1.rowcount()st_1.text = " 统计结果:"+string(therow)
 
档案管理系统3.14档案分布窗口档案分布窗口以统计图的方式用来显示档案在各部门之间的分布结果。首先,根据需要建立数据窗口对象。d_fbt:用来统计各部门拥有的档案数量,选择Graph风格的数据窗口,Categor用编制部门(bzbm), Value 设为count(bzbm for graph)。档案分布窗口中放置一个数据窗口控件用于放置数据窗口对象。如图17所示。在统计窗口的Open事件中加入如下脚本://为数据窗口分配事务对象,并检索数据dw_st.SetTransObject (SQLCA)dw_st.Retrieve()st_1.text=string(today(),"yyyy/mm/dd") 图17 各部门档案分布图档案按保管期限分布窗口与按各部门分布窗口,大部分功能都相同,不重复介绍如图18所示。 图18 档案按保管期限分布情况图3.15文件操作窗口文件操作窗口主要涉及到借阅文件的转出与转入,当文件被借出时,打开转出文件窗口,如图19所示。当文件归还后,打开转入窗口并输入归还时间,如图20所示。该窗口包含的主要对象有:一个列表框(ddlb_1),用来显示要转出(转入)文件的题名;两个按钮,“转出”(“转入”)按钮实施转出(转入)功能,“取消”按钮关闭窗口。文件转出窗口的转出按钮的Clicked事件中加入如下脚本:string tmdeclare mycursor cursor for  select tm  from jy;  open mycursor;  if sqlca.sqlcode<0 then messagebox("数据库错","游标无法打开") return end if fetch mycursor into :tm; do while sqlca.sqlcode=0  lb_1.additem(tm)  fetch mycursor into :tm; loop close mycursor;在窗口的取消按钮的Clicked事件中加入如下脚本:Close(Parent) 图19 文件转出窗口
 图20 文件转入窗口
文件转入窗口的转入按钮的Clicked事件中加入如下脚本:string tmdeclare mycursor cursor for  select tm  from jy;  open mycursor;  if sqlca.sqlcode<0 then messagebox("数据库错","游标无法打开") return end if fetch mycursor into :tm; do while sqlca.sqlcode=0  lb_1.deleteitem(1)  fetch mycursor into :tm; loop close mycursor;
在窗口的取消按钮的Clicked事件中加入如下脚本:Close(Parent)
 
档案管理系统结 束 语  经过调试,总结出本系统具有如下特点:1)系统操作灵活方便,简单扼要,改变了以往档案管理系统使用大量菜单而少用按钮的风格。在本系统以鼠标动作居多,其中主要功能大多集中在所使用的窗口界面上,通过大量的按钮直接对窗口操作,这样一来,用户操作起来方便,要进行那些工作一目了然,不必在到各个菜单中进行查找。2)本系统界面美观大方,突破了以往传统的以黑白界面为主的局限性,本系统在界面设计上以彩色界面居多,同时也有少数传统界面,界面设计时注意色彩的协调搭配。总之,本系统的界面能够给人一种轻松,活泼的气氛。本系统的不足之处及其改进:www.lwfree.cn本系统只是针对文书档案管理一方面的开发,这只是档案管理中的一部分,因时间和精力的限制,没有来得及扩及整个档案管理的开发。历时几个月的奋斗,终于让自己的辛苦开花结果,同时也收益颇丰。通过本次毕业设计,我从PowerBuilder的初学者到能够运用之独立开发项目,使我更深刻的体会到如何将所学的知识运用到实践中,学会了如何查阅资料、自学,逐步掌握软件开发的一般步骤。在开发过程中,明白开发一个优秀的软件必须经历调查、分析、设计、测试、维护漫长的周期,需要很多人的共同努力,才能达到最佳效果。本次毕业设计,我付出了很多时间和精力,能运用一些技巧来开发档案管理信息系统,结果还算是成功的,但不乏有着我还不能注意到的缺陷。总之,这次毕业设计让我接触到了许多新知识,学到许多新东西,锻炼了我的独立学习能力,也锻炼了我解决问题的能力。在本次毕业设计的开发过程中,得到了杜瑞忠老师的指导和帮助,在此深表谢意。
参  考  文  献
[1]袁方、杨成等编著,数据库应用系统设计理论与实践教程,电子科技大学出版社,2005[2]甘仞初主编,信息系统开发,经济科学出版社,1996[3]宋晔 、张宏编著,PowerBuilder实用教程 ,北京理工大学出版社,2002[4]胡存生 、张庆丰等编著,PowerBuilder7.0开发基础和范例,电子工业出版社,2000[5]王珊、陈红编著,数据库系统原理教程 ,清华大学出版社,2001[6]张长富,李匀编著,PowerBuilder9.0参考手册,电子科技大学出版社,2004[7]严蔚敏、吴伟民等编著 ,数据结构,清华大学出版社,1999[8]丁宝康主编,数据库原理,经济科学出版社,2000[9]萨师煊、王珊编著,数据库系统概论,高等教育出版社,2000[10]陈禹,方美琪主编,软件开发工具,经济科学出版社,2000[11]甘仞初主编,信息资源管理,经济科学出版社,2000
  • 上一篇资讯: 毕业实践报告格式范文
  • 下一篇资讯: 人民币升值利弊的评估
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师