计算机信息管理专业毕业设计(心理咨询资料管理系统).doc_第1页
计算机信息管理专业毕业设计(心理咨询资料管理系统).doc_第2页
计算机信息管理专业毕业设计(心理咨询资料管理系统).doc_第3页
计算机信息管理专业毕业设计(心理咨询资料管理系统).doc_第4页
计算机信息管理专业毕业设计(心理咨询资料管理系统).doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机信息管理专业(本科)毕业设计心理咨询资料管理系统大学名称: 大学指导教师: 作 者: 考 号: 地 (市): 省市工作单位: 完成日期: 年月日 摘要随着人民生活水平提高,生活节奏加快,心理咨询机构也日益增多起来。而如今咨询资料的管理多还处于手工记录阶段,而储存、查找、统计都不很方便。利用计算机技术和数据库技术开发心理咨询资料管理系统,实现资料管理工作的自动化成为心理咨询机构的迫切需要。本系统心理咨询资料管理系统应运而生,可以较好的解决此类问题。它可以方便地将资料输入、删除、修改、查询、统计、打印等,而且界面友好、使用方便,符合心理咨询本质的风格。同时,用户的四级权限设置,可以更好的保护求助者的隐私,符合心理咨询的原则。关键字:心理咨询、管理系统、powerbuilder目 录摘要.21 引言.42 系统分析.5 21系统初步调查.5 22可行性研究.5 23系统详细调查.5 231组织机构调查.5 232信息流程调查.524现行系统评价.63 系统设计.73.1 总体结构设计.7 3.1.1软、硬件环境.7 3.1.2开发工具的选择.73.2 详细设计.83.2.1用户界面设计.83.2.2 ER图与关系模型.94 系统实施.114.1 建立应用对象.114.2 登录功能.124.3 菜单设计.134.4 主窗口.154.5 求助者资料管理功能.164.6 咨询师资料管理与诊断资料管理功能.234.7 页面设置功能.234.8 打印预览功能.254.9 打印设置功能.264.10 查询功能.294.11 查找功能.314.12 诊断类型统计功能.354.13 帮助菜单.365 设计中遇到的问题及解决过程.376 运行情况.387 结束语及致谢.38参考文献1 引言信息管理系统是一门计算机应用科学,它是将管理学与计算机有机结合的一门科学。通过理论知识学习,我完成了计算机信息管理专业的理论课程学习。设计心理咨询资料管理系统是在理论学习的基础上的实践操作,是检验理论学习成果的一次有益尝试,也是加深理解所学知识的重要手段。系统设计使用的工具为Sybase Inc的子公司POWERSOFT公司开发的数据库应用开发工具PowerBuilder6.0。PB6.0除了能够设计传统的高性能,基于客户服务器(client/server)体系结构的应用系统外,也能够用于开发基于Internet的应用系统。PB6.0支持应用系统同时访问多种数据,这既包括诸如Oracle Sybase之类的大型数据库,也包括小至FoxPro之类的支持ODBC接口的数据库,另外,PB6.0开发环境随身携带的Sybase SQL Anywhere本身就是个功能强大的DBMS。对小型应用系统来说,直接使用这个数据库就是个质优价廉的选择。我所设计的心理咨询资料管理系统就是使用PB6.0随身携带的Sybase SQL Anywhere。为了方便用户界面的开发,PB6.0提供了大量控件。这既丰富了应用程序的表达能力,也加快了项目的开发速度,PB6.O还支持分布式应用系统的开发,形成多层应用系统结构。用PB6.0不仅能够开发客户端应用程序而且还可以轻而易举地构造应用服务器,从而形成分布式应用。PB6.0支持多种平台,并能生成机器代码的可执行文件。专业的客户服务器开发工具,客户服务器是一种将任务进行分解,然后协同解决的计算模式。客户端的应用程序负责提出任务需求,服务器端的应用程序则为客户提供服务,例如数据查询,打印等。用PowerBuilder6.0开发出的应用程序能够与数据库服务器完美地协同工作,构成客户服务器计算模式。PowerBuilder6.0提供了一个全新的内置调试器,利用它,开发人员能够单步,断点跟踪应用程序的执行,并在中断模式下查看或修改变量以及对象属性的取值。除了常规的断点设置方法外,开发人员还可以设置条件断点和变量断点,使应用程序在某种条件下进入中断模式。除了内置调试器外,开发人员还可以使用PowerBuilder的PBDEBUG功能跟踪应用程序,并把执行过程记录到运行日志中。另外,PowerBuilder6.0还提供了专门跟踪嵌入式SQL语句的功能,从而可以找到与数据访问相关的性能瓶颈问题。本系统是集多功能于一体的单机版信息管理系统,具有一定的现场实用价值。单机版心理咨询资料管理系统的开发,可使心理咨询、教育工作者更方便的对数据信息进行管理;同时,为管理部门提供信息查询服务。本系统的开发所使用的软件开发工具是PowerBuilder 6.0;后台的数据库管理系统采用PowerBuilder 6.0自带的 Sybase SQL Anywhere 5.0。本系统本着适用、方便用户的原则进行开发,同时,也采用一定的手段保证了系统的安全性。2 系 统 分 析 2.1系统初步调查我在一所中学的心理咨询室的调查了解到,有几名工作人员同时负责心理咨询资料的管理工作。由于要不断的增添求助者资料信息,统计求助者的类型,这使得工作人员的任务量仍较重。2.2 可行性研究技术可行性:现今计算机信息管理技术已比较成熟,教育和心理咨询中心的管理已引入微机和网络,而利用已学技术编制软件以适应当前应用,虽有困难但可克服,而且现有技术完全能满足新系统的需要。经济可行性:小型的系统管理对计算机的配置要求并不需要太高。所以价格相对来说不是很高,而且微机已较普及。这些问题很容易解决。新系统能大大降低劳动强度,提高工作效率。系统开发人员就是系统使用员,对以后的系统运行和维护都非常有利。营运可行性:因系统并不复杂,对管理人员来说都无需专门培训该系统,工作流程与现行系统基本相同,使用人员很容易接受和掌握。23系统的详细调查为了了解用户对信息的要求,明确系统的目标、功能、规模。首先对现行管理模式进行详细调查。调查的主要方法是,通过本人的经验和相关知识及查阅的资料。231组织机构调查在咨询机构中,一般管理工作并没有太明确的分工,所以组织结构很简单。232信息流程调查开发一个信息系统,做到对系统中的信息流程的全面、透彻的了解是至关重要的。舍弃具体的物质,抽象出信息流,以便用计算机来对信息管理。首先绘制出系统的关联图(如图1)。求助者心理咨询资料管理系统查询人求助者资料查询条件咨询师资料查询结果咨询师图1 心理咨询资料管理系统关联图绘制心理咨询资料管理系统的流程图。(如图2)各种操作求助者管理 资料 信息求助者 各种操作咨询师管理咨询师资料 各种操作 报表诊断管理 报表诊断信息 管理员咨询师图2 数据流图2.4现行系统评价经对现行系统的详细调查,多年来一直采用手工操作方式,在各个环节上纪录比较简单,留存资料较少,要查询信息比较困难。针对以上问题,提出如下解决方案:1 在求助者基本信息的基础上,多加入一些相应的信息。2 使用四级权限,更好的保护求助者的姓名等隐私。3 改善查询功能,实现多条件查询。4 建立统计窗口,诊断类型分布得到统计,使咨询师便于决策。3 系统设计3.1 总体结构设计根据需求分析,心理咨询资料管理工作主要是求助者资料管理,咨询师资料管理,诊断资料管理。考虑到系统的安全性以及求助者的隐私,应该区分用户所拥有的功能,所以不同的用户应该具有不同的权限,系统还应有权限管理功能。具体功能主要包括数据输入、修改、删除、查询、统计、打印等功能。3.1.1软、硬件环境运行模式选择单机模式。最好Pentium 以上的微型计算机,操作系统选择Windows 98/2000,内存32M以上。3.1.2开发工具的选择本系统使用的开发工具是PowerBuilder 6.0。数据库管理系统选择PowerBuilder 6.0自带的Sybase SQL Anywhere 5.0。PowerBuilder,是美国Powersoft公司开发的一个数据库应用开发工具,它运行于Windows环境下,具有面向对象的特点,并提供了可视化的开发环境。具体说来它有如下一些特性:(1)可视化开发首先,开发人员可以一目了然地看到工作的进行情况和效果,然后根据当前的工作状态轻松地调整进程和修改程序;其次,可视化开发环境较大程度地降低了开发的难度,使程序代码的编写显得更直观、更省力;此外,程序的调试和维护也比在一般的开发环境下更容易些。(2)面向对象PowerBuilder把用户界面中的任何元素都当成对象,它们相互独立,各自具有自己的属性。如果想更改一个对象的属性,只需要单独对这一个相对独立的对象进行修改。或者想添加一段程序代码在某个对象上,只需要在这个对象的事件中添加相应的脚本就可以了。这样做的最大好处就是简洁明快,大大降低了开发的难度,提高对象的可重用性,避免了很多重复性工作。(3)功能强大的PowerScript语言PowerBuilder把程序写在每个对象的事件上,每个PowerBuilder对象都有很多属于自己的事件,程序员对每个事件都可以编写相对独立的代码段。这些用来驱动特定对象的特定事件的代码段,就是用PowerBuilder提供的一种使用方便且功能强大的PowerScript语言编写的,PowerScript语言的功能强大的函数和对象属性,大大方便了代码的编写工作。(4)数据窗口数据窗口(DataWindow)是PowerBuilder所特有的一个控件对象,它的最主要功能是用不同的风格显示数据,并且允许用户对数据进行输入和修改。此外,数据窗口还可以对数据的合法性进行检查。由于数据窗口拥有多种数据源和表现风格,因此可以用来很容易地生成报表,同时还支持打印、打印预览等一系列报表应有的功能。另外,数据窗口还提供了丰富的函数供调用,并可以自动生成和显示图形。(5)开放系统PowerBuilder是一个开放性的协作环境,可以与其它系统交换数据。最主要的是PowerBuilder可以访问任何一个常用的后台数据库系统。特别需要指出的是,PowerBuilder自带的Sybase SQL Anywhere为开发单机版的数据库应用软件提供了极大的便利。此外,PowerBuilder还可通过客户机/服务器开发环境规范(CODE)与其它开发工具开发的产品进行集成。(6)多平台开发环境PowerBuilder不但是一个Windows环境下的开发工具,而且还有Macintosh和Unix版本。更重要的是在某一个平台下开发的代码若要移植到另一个平台,只需要重新编译就可以了。这大大节省了不同平台间代码移植的工作量和费用。(7)丰富的联机帮助PowerBuilder提供功能强大的联机帮助,无论何时都可以得到系统的帮助信息。而且在很多画板中,PowerBuilder都提供了一个“Browse”按钮,可以通过它浏览对象的所有属性、变量和函数等信息。由于具有以上强大的功能,及在专业学习过程中对PB有所了解,所以决定,在单机版心理咨询资料管理系统的开发中,把PB作为数据库应用软件开发的开发工具。3.2 详细设计 总体结构设计完成后,应进行详细设计。详细设计包括用户界面设计、算法设计、编码设计、数据库设计等,本例算法设计、编码设计较简单,不在叙述,下面是用户界面设计与数据库设计。3.2.1用户界面设计运行该系统时,首先出现一个登录窗口,提示用户输入用户名和密码,输入正确进入系统主窗口。如图3。(图3为打开了三个资料表后的画面)图3主窗口的上部是菜单和工具栏,系统中的所有功能通过选择菜单项或单击工具栏中的图标就可以实现。通过选择各个菜单项或工具栏图标,分别进入各个具体界面,实现不同的操作功能。其它界面的样式在随后结合功能实现加以介绍。3.1.2 ER图与关系模型一个求助者归一个咨询师负责咨询,一个咨询师可以指导多个求助者,两个实体集之间是一对多的联系。ER图如图4。根据E-R图到关系模式的转换规则,转换成两个关系模式。如表1,表2。为保证系统的安全性,只有合法用户才能登录使用系统,为方便系统管理员对用户的管理,设一用户表来存放合法用户的用户名、密码、权限等信息,如表3。求助者编号过程住址电话日期婚否性别别名咨询师编号年龄E-mail代号学历姓名求 助 者 N咨询 1咨 询 师咨询师编号备注职称电话住址姓名E-mail特长学历年龄性别图 4求助者资料表(qzzb)主键列标题列名数据类型宽度小数位数是否空缺省值P求助者编号qbhChar4No姓名qxmChar8No别名qbmChar10Yes性别qxbChar2Yes年龄qnlSmallintYes婚否qhfChar2Yes住址qzzChar50Yes学历qxlChar10Yes电话qdhChar15YesE-mailqemChar30Yes咨询师编号zbhChar4No日期rqDateYes诊断类型代号dhChar 2Yes 咨询过程zgcLong VarcharYes表1咨询师资料表(zxsb)主键列标题列名数据类型宽度小数位数是否空缺省值P咨询师编号zbhChar4No姓名zxmChar8No性别zxbChar2Yes年龄znlSmallintYes住址zzzChar50Yes学历zxlChar10Yes职称ZzcChar20yes电话zdhChar15YesE-mailzemChar30Yes特长ztcChar50Yes备注bzVarchar200Yes表2用户表(yhb)主键列标题列名数据类型宽度小数位数是否空缺省值P用户名hmChar10No密码mmChar10No权限qxSmallintNo表3做出这三个表:求助者资料表(qzzb)、咨询师资料表(zxsb)、用户表(yhb)。并通过外键建立关联。各个表结构如图5所示。图5数据库表关联示意图4 系统实施4.1 建立应用对象建立名为xinlizixun 的应用对象,在其Open事件中加入如下脚本:/设置SQLCA的属性,连接数据库SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = Connectstring=DSN=pbxlzxconnect using sqlca;If SQLCA.SQLCode0 ThenMessagebox(错误,数据库连接错误)Else/打开登录窗口open(w_register)End If在应用对象的Close 事件中加入如下脚本:DISCONNECT USING SQLCA;4.2 登录功能对于系统的用户分为四类:系统管理员(其权限为1)、数据管理员(其权限为2)、只读用户(其权限为3)和一般用户(其权限为4)。系统管理员拥有最大的权限;数据管理可以修改数据,但不能对用户进行管理;只读用户只有数据的浏览权限;一般用户拥有只读用户的所有功能,只是不能看到求助者真名。登录窗口w_register的主要功能是验证用户身份,并确定用户权限,如图6所示。为了方便用户的输入,为每个单行编辑框都定义了一个用户事件ue_enterkey,用pbm_keydown作为事件的ID。当用户按下回车件,该用户事件用来完成对单行编辑框的输入,并转入下一个处理过程。图 6 登录窗口在“用户名”单行编辑框的ue_enterkey 事件中加入如下脚本:If key = KeyEnter! Then/触发登录按钮的Click事件cb_1.TriggerEvent(Clicked!)End If在“密码”单行编辑框的ue_enterkey 事件中加入如下脚本:/判断用户是否按下的是回车键If key = KeyEnter! Then/把输入焦点转移到密码输入单行编辑框sle_2.SetFocus()End If在登录按钮的clicked 事件中加入如下脚本:string password/用SQL语句根据用户名查找密码SELECT mm,qxINTO :password,:right /right为设置的全局变量,用来保存用户权限FROM yhbWHERE yhb.hm = :sle_1.text;/SQLCode等于100代表没有得到任何记录If SQLCA.SQLCode=100 ThenMessageBox(提示信息,没有此用户)sle_1.text=sle_1.SetFocus()ElseIf passwordsle_2.text ThenMessageBox(提示信息,密码错误)sle_2.text=sle_2.SetFocus()Else/打开主窗口Open(w_main)Close(Parent)End If在取消按钮的Clicked 事件中加入如下脚本:close(parent)4.3 菜单设计系统中主要的功能就是在数据窗口中完成对数据的增删改、查询、查找和打印(查询是指找到满足条件的多个记录,查找是指找到满足条件的一个记录),而对不同表完成的功能基本相似,因此使不同的窗口共享一个主菜单m_main,通过在菜单中触发当前活动窗口中定义的事件来完成各种功能。例如,在需要打印的每个窗口上定义一个ue_print事件,在打印菜单项的Clicked事件中只要触发当前活动窗口的ue_print事件,即可完成打印功能,具体的打印实现则在窗口的ue_print事件中完成。菜单的结构如图5所示。为菜单设置好名称、图标,并通过在菜单描绘器中的ToolBar标签设置其BqaceBefore和Order项来分组,并确定在工具栏中的先后顺序,如图7所示。在菜单项的Clicked事件中基本完成两类操作:一是得到当前活动窗口并触发窗口上定义的用户事件;二是打开某个固定窗口。图7 菜单及工具栏在求助者资料菜单项的Clicked事件中加入以下脚本:OpenSheet(w_qiuzhu,w_main,4)在页面设置菜单项的clicked 事件中加入如下脚本:window actsheetactsheet=w_main.GetActiveSheet()actsheet.TriggerEvent(ue_pageset)在打印预览菜单项的clicked事件中加入如下脚本:window actsheetactsheet=w_main.GetActiveSheet()actsheet.TriggerEvent(ue_preview)在打印菜单项的clicked事件中加入如下脚本:window actsheetactsheet=w_main.GetActiveSheet()actsheet.TriggerEvent(ue_previewcancel)在打印菜单项的clicked事件中加入如下脚本:window actsheetactsheet=w_main.GetActiveSheet()actsheet.TriggerEvent(ue_print)在退出菜单项的clicked事件中加入如下脚本:Close(ParentWindow)在检索菜单项的clicked事件中加入如下脚本:window actsheetactsheet=w_main.GetActiveSheet()actsheet.TriggerEvent(ue_retrieve)在追加菜单项的clicked事件中加入如下脚本:window actsheetactsheet=w_main.GetActiveSheet()actsheet.TriggerEvent(ue_append)在插入菜单项的clicked事件中加入如下脚本:window actsheetactsheet=w_main.GetActiveSheet()actsheet.TriggerEvent(ue_insert)在删除菜单项的clicked事件中加入如下脚本:window actsheetactsheet=w_main.GetActiveSheet()actsheet.TriggerEvent(ue_del)在保存菜单项的clicked事件中加入如下脚本:window actsheetactsheet=w_main.GetActiveSheet()actsheet.TriggerEvent(ue_save)在查询菜单项的clicked事件中加入如下脚本:window actsheetactsheet=w_main.GetActiveSheet()actsheet.TriggerEvent(ue_filter)在查找菜单项的clicked事件中加入如下脚本:window actsheetactsheet=w_main.GetActiveSheet()actsheet.TriggerEvent(ue_find)在窗口级联菜单项的clicked事件中加入如下脚本:m_jilian.checked=Truem_shuiping.checked=FalseParentWindow.ArrangeSheets (Cascade!)在窗口水平菜单项的clicked事件中加入如下脚本:m_jilian.checked=Falsem_shuiping.checked=TrueParentWindow.ArrangeSheets (Tile!)4.4 主窗口心理咨询资料管理系统采用了MDI风格,因此建立一个主窗口w_main,选择其窗口类型为MDI Frame,用菜单m_main作为主窗口的菜单。在主窗口的Open事件中加入如下脚本:/如果不是系统管理员则屏蔽帐号管理菜单项If right1 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_previewcancel.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_edit.m_save.enabled=Falsem_main.m_edit.m_append.enabled=Falsem_main.m_edit.m_retrieve.enabled=Falsem_main.m_caozuo.m_select.enabled=Falsem_main.m_caozuo.m_find.enabled=Falsem_main.m_window.m_jilian.enabled=Falsem_main.m_window.m_shuiping.enabled=False4.5 求助者资料管理功能在求助者资料窗口w_qiuzhu,主要完成对求助者数据的各种操作。建立一个数据窗口对象dw_qiuzhuzhe。其次,在窗口中添加个数据窗口dw_qzz,并和数据窗口对象dw_qiuzhuzhe相关联;有两个单行编辑框(用来输入查询内容);两个按钮(一个按姓名查询,一个按别名查询);一个静态文本框(用来提示输入姓名)。最后,在窗口中定义ue_append、ue_filter、ue_find等事件,用来完成菜单项的实际功能。数据窗口默认按Tab键来改变数据窗口中的当前列,但用户的习惯经常是在输入完后按回车键来跳转到数据窗口中的下一列。为了方便用户的输入,在数据窗口dw_qzz上申明一个用户事件ue_enterkey,用pbm_dwnprocessenter作为事件的ID,此事件截获回车键,并用回车键来代替Tab键的功能。 图8在求助者窗口的Activate事件中加入如下脚本:/此事件在当前窗口获得焦点时触发/如果当前用户的权限不是系统管理员和数据管理员则屏蔽数据修改相关的菜单/如果权限大于3,则屏蔽姓名列If right=3 Thenm_main.m_edit.m_insert.enabled=Falsem_main.m_edit.m_del.enabled=Falsem_main.m_edit.m_save.enabled=Falsem_main.m_edit.m_append.enabled=Falseelseif right3 thenm_main.m_edit.m_insert.enabled=Falsem_main.m_edit.m_del.enabled=Falsem_main.m_edit.m_save.enabled=Falsem_main.m_edit.m_append.enabled=Falsedw_qzz.object.qxm.visible=false else m_main.m_edit.m_insert.enabled=True m_main.m_edit.m_del.enabled=True m_main.m_edit.m_save.enabled=True m_main.m_edit.m_append.enabled=TrueEnd If/在当前窗口得到焦点后修改菜单项的enabled属性为True/在窗口得到焦点时使菜单项可用m_main.m_file.m_pageset.enabled=Truem_main.m_file.m_preview.enabled=Truem_main.m_file.m_previewcancel.enabled=Truem_main.m_file.m_print.enabled=Truem_main.m_edit.m_retrieve.enabled=Truem_main.m_caozuo.m_select.enabled=Truem_main.m_caozuo.m_find.enabled=Truem_main.m_window.m_jilian.enabled=Truem_main.m_window.m_shuiping.enabled=True在求助者窗口的CloseQuery事件中加入如下脚本:Integer i/判断是否有数据的修改If dw_qzz.ModifiedCount() + dw_qzz.DeletedCount()0 Theni= MessageBox(提示,是否保存对数据的修改?, Exclamation!, YesNoCancel!)Choose case icase 1/保存数据If dw_qzz.UpDate() = 1 Then/如果保存成功则提交COMMIT;Else ROLLBACK;MessageBox(错误, 数据库内容更新失败)End Ifcase 2/不保存数据Return 0Case 3/阻止窗口的关闭Return 1End ChooseEnd If在求助者窗口的Deactivate事件中加入如下脚本:/此事件在窗口失去焦点时触发/当窗口失去焦点时修改和窗口相关的菜单项的enabled属性为False/在窗口失去焦点时使菜单项不可用m_main.m_file.m_pageset.enabled=Falsem_main.m_file.m_preview.enabled=Falsem_main.m_file.m_previewcancel.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_edit.m_save.enabled=Falsem_main.m_edit.m_retrieve.enabled=Falsem_main.m_caozuo.m_select.enabled=Falsem_main.m_caozuo.m_find.enabled=Falsem_main.m_window.m_jilian.enabled=Falsem_main.m_window.m_shuiping.enabled=False在求助者窗口的Open事件中加入如下脚本:/为数据窗口分配事务对象,并检索数据dw_qzz.SetTransObject (SQLCA)dw_qzz.Retrieve()在求助者窗口的Resize事件中加入如下脚本:/此事件在窗口改变大小时触发/修改数据窗口控件的位置及大小,使其随窗口大小的改变而改变dw_qzz.x=10dw_qzz.y=350/newwidth和newheight为该事件传递的参数,代表窗口的新宽度和高度dw_qzz.width=newwidth - 20dw_qzz.height=newheight - 360在求助者窗口的ue_append事件中加入如下脚本:/实现追加功能long therow/在数据窗口最后插入一行therow=dw_qzz.insertrow(0)/滚动到新加入的行dw_qzz.ScrollToRow(theRow)dw_qzz.SetFocus()在求助者窗口的ue_del事件中加入如下脚本:/实现删除功能integer i,mm=0long therowi=MessageBox(提示信息,确认要删除行?,exclamation!,YesNoCancel!)If i=1 Then/如果当前数据窗口中选择了多行则用循环删除多行Do/因为如果删除了第3行,那么原来第4行就变成现在的第三行,所以/要把搜索的行号减1therow=dw_qzz.GetSelectedRow(therow - 1)If therow0 Thenm=1dw_qzz.DeleteRow(therow)End IfLoop While therow0/如果没有选中多行则删除当前行If m=0 Thendw_qzz.DeleteRow(0)End IfEnd Ifdw_qzz.SetFocus()在求助者窗口的ue_filter事件中加入如下脚本:/实现查询功能。打开查询窗口,并把数据窗口dw_qzz作为参数传递过去,可以使多个窗口共用一个查询窗口OpenWithParm(w_select, dw_qzz, w_qiuzhu)在求助者窗口的ue_find事件中加入如下脚本:/实现查找功能。打开查找窗口,并把数据窗口dw_qzz作为参数传递过去,可以使多个窗口共用一个查找窗口OpenWithParm(w_find, dw_qzz, w_qiuzhu)在求助者窗口的ue_insert事件中加入如下脚本:/实现插入功能long therow,therow1/得到数据窗口当前行,并在当前行前面插入therow=dw_qzz.GetRow()therow1=dw_qzz.InsertRow(therow)dw_qzz.SetRow(therow1)dw_qzz.SetFocus()在求助者窗口的ue_pageset事件中加入如下脚本:/实现页面设置功能。打开页面设置窗口,并把数据窗口dw_qzz作为参数传递过去,可以使多个窗口共用一个页面设置窗口OpenWithParm(w_pageset, dw_qzz, w_qiuzhu)在求助者窗口的ue_preview事件中加入如下脚本:/实现打印预览功能。打开打印预览窗口,并把数据窗口dw_qzz作为参数传递过去,可以使多个窗口共用一个打印预览窗口OpenWithParm(w_preview, dw_qzz, w_qiuzhu)在求助者窗口的ue_previewcancel事件中加入如下脚本:/取消数据窗口的预览模式dw_qzz.modify(datawindow.print.preview = No)dw_qzz.SetFocus()在求助者窗口的ue_print事件中加入如下脚本:/实现打印功能。打开打印窗口,并把数据窗口dw_qzz作为参数传递过去,可以使多个窗口共用一个打印窗口OpenWithParm(w_print, dw_qzz, w_qiuzhu)在求助者窗口的ue_retrieve事件中加入如下脚本:/实现检索功能。把过滤条件设为空,并重新检索数据dw_qzz.SetFilter()dw_qzz.SetSort()dw_qzz.SetTransObject(SQLCA)dw_qzz.Retrieve()dw_qzz.SetFocus()在求助者窗口的ue_save事件中加入如下脚本:/实现保存功能If dw_qzz.UpDate() = 1 ThenCOMMIT;Else ROLLBACK;MessageBox(错误, 数据库内容更新失败)End If在姓名查询按钮的Clicked事件中加入如下脚本:If right3 thenmessagebox(提示,不够权限,无权窥探隐私)elseif sle_1.text= Then/如果没有输入查询关键字提示输入MessageBox(提示, 请输入您要查询的关键字)sle_1.SetFocus()Else/按输入的姓名查询,并用like实现模糊查询dw_qzz.setfilter(qxm like % + sle_1.text + %)dw_qzz.filter()dw_qzz.SetFocus()End If在别名查询按钮的Clicked事件中加入如下脚本:If sle_2.text= Then/如果没有输入查询关键字提示输入MessageBox(提示, 请输入您要查询的关键字)sle_2.SetFocus()Else/按输入的姓名查询,并用like实现模糊查询dw_qzz.setfilter(qbm like % + sle_2.text + %)dw_qzz.filter()dw_qzz.SetFocus()End If在数据窗口控件dw_qzz的Clicked事件中加入如下脚本:/通过单击可以选择一行或多行long therow,startrow,endrowIf KeyDown(KeyControl!) Then /如果按着Ctrl键则使点击的行被选择If row0 Then /row是系统传递到Clicked事件的参数,代表当前鼠标点击的行/事件的参数可以在脚本编辑器的Paste Argument下拉列表框中查看this.SelectRow(row,TRUE)ElsereturnEnd IfElseIf KeyDown(KeyShift!) Then/如果按着Shift键则选择一定范围内的行startrow=this.GetRow()endrow=rowIf startrowendrow ThenFor therow=startrow To endrow Step -1this.SelectRow(therow,TRUE)NextElseFor therow=startrow To endrowthis.SelectRow(therow,TRUE)NextEnd IfElsethis.SelectRow(0,False)End If在数据窗口控件dw_qzz的DBError事件中加入如下脚本:/用自己的错误提示来屏蔽某些系统的错误提示Choose case sqldbcode/SQL Anywhere5.0主键重复的错误代码为193/可以特意发生错误从而得到数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论