医院管理系统_第1页
医院管理系统_第2页
医院管理系统_第3页
医院管理系统_第4页
医院管理系统_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、医院管理系统现代化的医院也应该有现代化的管理系统。在科技日益发达的今天,人们的身体健康也在不断受到重视。因此,医院进行现代化管理就变得尤为重要。这里, 我们以一个典型的医院管理系统为例子, 来讲述如何建立一个使用的医院管理系 统。1. 1.系统设计1.1系统目标设计通过一个医院管理系统,使医院的管理工作系统化、规范化、自动化,从 而达到提高医院管理效率的目的。1.2开发设计思想本系统开发设计思想:尽量采用公司现有软硬件环境,及先进的管理系统开发方案,从而 达到充分利用公司现有资源,提高系统开发水平和应用效果的目的;系统应符合医院员工管理的规定,满足医院日常管理的需要,并达 到操作过程中的直观、

2、方便、实用、安全等要求;系统采用模块化程序设计方法,这样既便于系统功能的各种组合, 又便于未参与开发的技术维护人员补充、维护。系统应具备数据维护功能,及时根据用户需求进行数据的添加、删 除、修改、备份等操作。1.3开发和运行环境选择开发工具:Visual FoxPro 6.0;运行环境:Window9.x 或 Windows20001.4系统功能分析系统功能分析事在系统开发的总体任务的基础上完成的。本例子中的医院管理系统需要完成功能主要有:员工各种信息的输入,包括员工基本细细、职称、岗位。 员工各种的查询、修改,包括员工基本信息、职称、岗位、工资等。 员工的人事调动管理。病人信息的管理。病院病

3、床的管理。药剂资源管理。 仪器资源管理。 系统用户管理、权限管理。1.5系统功能模块设计在系统功能分析的基础上,考虑Visual FoxPro 6.0程序编制的特点,得至U 如图1所示的系统功能模块图。管理系统员工管谊药品狠图1系统功能模块图2. 2.数据库设计在数据库应用系统的开发过程中,数据库的结构设计是一个非常重要的问 题。数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响, 好的数据库结构会减小数据库的存储量, 数据的完整性和一致性比较高,系统具 有较快的相应速度,简化基于此数据库的应用程序的实现等。在数据库系统开始设计的时候应该尽量考虑全面,尤其应该仔细考虑用户的各种需

4、求,避免浪费不要的人力和物力。2.1数据库需求分析数据库需求分析是数据结构设计的第一阶段,是非常重要的一个阶段。在这 个阶段主要是收集基本数据、数据结构以及确定数据处理的流程,组成一份详尽 的数据字典,为以后进一步设计打下基础。在仔细调查医院管理过程的基础上,我们得到本系统所处理的数据关系如图 2所示。病床病人资料IH 医生图2数据关系图针对本实例,通过对医院管理的内容和数据关系分析,我们设计的数据项和 数据结构如下:员工基本状况包括的数据项有员工号、 员工姓名、性别、所在部门、 身份证号、生日、籍贯、国籍、民族、婚姻状况、健康状况、参加工作 时间、员工状态、家庭住址、联系电话等。 员工工资状

5、况包括的数据项有员工号、工资项别、工资金额等。 医院工作岗位信息包括的数据项有工作岗位代号、工作岗位名称 等。医院部门信息包括的数据项有部门代号、 部门名称、部门负责人等。 病人信息包括的数据项有病人姓名、病人性别、入院时间、病人所 属科室、病人状况、病人主治医生、房间号、病床号等。药剂资源管理信息包括的数据项有药剂代号、药剂名称、药剂价格、 药剂库存数量、备注等。医疗仪器管理包括的数据项有仪器代号、仪器名称、仪器价格、仪 器数量、备注等。有了上面的数据结构、数据项和数据关系,我们就进行下面的数据库设计。 2.2数据库概念结构设计这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实

6、体, 以及确定他们之间的关系,为后面的逻辑结构设计打下基础。本实例根据上面的 设计规划出的实体有员工实体、部门实体、岗位实体、病人实体、药剂实体、仪 器实体。实体和实体之间的关系E-R图如图3所示。2.3数据库逻辑结构设计我们需要将上面的数据库概念结构转化为 Visual FoxPro 6.0数据库系统所支 持的实际数据模型,也就是数据库的逻辑结构。在上面的实体以及实体之间关系的基础上,我们就可以形成数据库中的表格 以及各个表格之间的关系。医院管理系统数据库中各个表格的设计结果如表1到表7所示。每个表格对应在数据库中的一个表。1n图3实体之间关系E-R图表1为员工基本状况表(这里主要针对医生,

7、读者可自行建立护士等的数据 表),其中涵盖了常用的字段。表1 PERSONNEL员工基本状况表列名数据类型可否为空说明EMP_NONUMBERIC(6)NOT NULL员工号(主键)EMP_NAMECHARACTER。)NULL员工姓名EMP_DEPT_IDNUMBERIC(3)NULL所在部门号EMP_DUTYCHARACTER(10)NULL:职务EMP_XLCHARACTER(10)NULL学历EMP GENDERCHARACTER(2)NULL性别EMP BIRTHDAYDATENULL生日EMP HOMETOWNCHARACTER(8)NULL籍贯EMP COUNTRYCHARACT

8、ER(10)NULLr国籍EMP NATIONCHARACTER(10)NULLr民族EMP IDNUMBERIC(6)NULL身份证号EMP MARRIAGECHARACTER(2)NULLr婚姻状况EMP HEALTHCHARACTER(10)NULL健康状况EMP STARTWORKDATENULL参加工作时间EMP STATECHARACTER(10)NULL员工状态EMP HOMEADDRESSCHARACTER(10)NULL家庭住址EMP TELENONUMBERIC(IO)NULL联系电话EMP EMAILCHARACTER(20)NULL联系E-mail地址EMP JOB I

9、DNUMBERIC(3)NULL工作岗位代号表2为工作岗位情况表表2 JOB工作岗位情况表列名数据类型可否为空说明JOB IDNUMBERIC(3)NTO NULL工作岗位代号(主键)JOB NAMECHARACTER(10)NULL工作岗位名称表3为部门信息表表3 DEPT部门信息表列名数据类型可否为空说明DEPT IDNUMBERIC(3)NOT NULL部门代号(主键)DEPT NAMECHARACTER(10)NULL部门名称DEPT MANAGERNUMBERIC(6)NULL部门主任代号DEPT_VICEMANAGENUMBERIC(6)NULL部门副主任代号表4为病人信息表。表4

10、病人信息表 PATIENT列名数据类型可否为空说明PATIENT NAMECHARACTER(10)NULL病人姓名(主键)PATIENT GENDERCHARACTER(2)NOT NULL病人性别PATIENT DATE STARTCHARACTER。)NULL入院时间PATIENT DEPTCHARACTER。)NOT NULL病人所属科室PATIENT STATECHARACTER(10)NULL病人状况PATIENT_DOCCHARACTER(10)NOT NULL病人主治医生PATIENT ROOMCHARACTERS)NOT NULL病人房间号PATIENT BEDCHARACT

11、ER)NOT NULL病人病床号表5为药剂信息表。表5药剂信息表POTION列名数据类型可否为空说明POTION IDNUMBERIC(3)NOT NULL药剂代号(主键)POTION NAMECHARACTER(10)NULL药剂名称POTION PRICENUMBERIC(5,2)NULL药剂价格POTION QUANTITYNUMBERIC(3)NULL药剂库存数量POTION REMCHARACTER(40)NULL备注表6为医疗仪器信息表。表6医疗仪器信息表 APPARATUS列名数据类型可否为空说明APPARATUS IDNUMBERIC(3)NOT NULL仪器代号(主键)APP

12、ARATUS NAMECHARACTER(10)NULL仪器名称APPARATUS PRICENUMBERIC(5,2)NULL仪器价格APPARATUS QUANTITYNUMBERIC(3)NULL仪器数量APPARATUS REMCHARACTER(40)NULL备注一个企业可以有多个用户管理该系统,因此就需要为不同的用户设置不同的 口令。表7为管理TMS系统的用户口令表。表7管理TMS系统的用户口令表 TMS列名数据类型可否为空说明TMS USERCHARACTER(20)NOT NULL用户名(主键)TMS PSWDCHARACTER(10)NOT NULL口令3数据库结构的实现在需

13、求分析、概念结构设计的基础上得到数据的逻辑结构之后,我们就可以在Visual FoxPro6.0数据库系统中实现该逻辑结构。在Visual FoxPro6.0的主菜单中单击一丨,在弹出的“ New(新建)”对话框中 选中“ Project(项目)”,单击“新建文件”按钮。此时弹出“ Create创建)”对话 框,这是为该项目设置存储路径,请将项目名设为 Hospital(医院)的项目,保存 在磁盘中。例如“ D:hospital”文件夹。项目建立好后,就可以实现数据库结构了。注意,Visual FoxPro6.0的数据库结构试依靠项目存在的。在如图4所示Project Manager(项目管理

14、器)中展开Data(数据)文件夹,鼠标 选中Database数据库),单击右侧的New(新建)按钮。在弹出的“ New Database新建数据库)”对话框中单击“ New Database新建数据库)”选项,然后将文件存储为 D:hospitaldatabasehospital.dbc现在就可以为数据库添加数据表了,表的具体内容如表1至7所示。项目以表4为例讲解数据表的创建过程。豆顶目管理醫-Hospital图4新建数据库在弹出的Database Designer(数据库设计器)中单击鼠标右键,选择“ New Table(新建表)”,如图 5 所示。将其存储为“ D: hospitaldat

15、abasepatient.dbC。所 有的表均放在“ D:”目录下,以便使用和管理。图5新建数据表现在可以为表填写内容了,设计表的内容主要试设计表中的字段的 Name名 称)、Type(类型)、Width(宽度)以及表的DecimalIndex(索引)。表中的字段如图6 所示,具体内容参见前面的表4。表的结构设计好后,单击“ 0K ”按钮存储,关闭设计栏,系统会提示为刚凶完成的表输入数据。输入数据后一个数据表的创建就完成了图6设置表的字段4各个功能模块的创建4.1系统欢迎界面及主界面模块设计当软件运行出现欢迎界面后一段时间内按下空格键后就进入系统主界面。1. 1.欢迎界面设计这个部分的设计思路

16、试为整个系统设计一个“欢迎使用”的画面,为防止 单调,加入字体闪烁的效果。其步骤如下:为表单加上背景画面,设定表单的Picture属性为希望加入的图画路径及名 称,在图片上面有颜色和大小随时间改变的文字“欢迎使用医院管理系统”。设置表单的Icon属性为一图标文件(.ico),可以代表表单左上角的VISUAL FOXPRO 图标。为表单添加一个标签控件,注明软件设计者等信息,表单的界面如图17所示。为表单添加一个记时器(Timer)控件,他的属性Interval表明间隔时间。在 记时器的Timer事件中编程使该表单释放并调用主界面表单。 Timer事件是从表 单运行到Interval属性规定的时

17、间间隔过后被触发的。在表单的KeyPress Eve nt事件中编写代码,使当空格键按下时将该表单释 放并执行主界面表单。KeyPress Eve nt事件是当有键按下时被触发的。在表单的Click Eve nt事件中编写代码,使当鼠标单击时将该表单释放并执 行主界面表单。该表单如图7所示。图7欢迎界面根据前面的设计思路,为了实现表单中的字体颜色何大小随事件变化(本例为每秒变化一次),拟定了如下的步骤:新建一个表单,存储为“ ksjm”。在表单适当位置添加Label控件,填入所 续显示的文字。在表单的Init Eve nt事件中填入如下代码:public ipublic ji=0j=0设计两个

18、全局变量以控制事件发生条件。在表单的KeyPress Eve nt事件中填入如下的代码:LPARAMETERS n KeyCode, n ShiftAltCtrl thisform.release*释放本表单do form hospitalformma in*执行表单在表单的Click Eve nt事件中填入如下代码:thisform.release*释放本表单do form hospitalformma in*执行表单main在表单中添加一个Timer控件,设置其Interval属性为1000(单位是毫秒), 表单中Timer的Timer Eve nt事件的代码如下:if i=0thisfo

19、r m.l abel1.fo ntsize=22*将表单中label1控件的字体大小设为22thisfor m.l abel2.fo ntsize=24*将表单中label2控件的字体大小设为24thisform.label1.forecolor=16711935thisform .1 abel2.forecolor=65535*控制显示字体的颜色和大小i=1j=j+1elsethisfor m.l abell.fo ntsize=24thisform .l abel2.fo ntsize=22thisform.label1.forecolor=16711935thisform .l abel

20、2.forecolor=65535*控制显示字体的颜色和大小i=0 j=j+1 en dif*控制10次显示if j>10thisform.releasedo form hospitalformma in*打开系统主界面en dif这段代码的功能在于实现了界面上的字体随时间变化颜色和大小。以上为欢迎界面的设计,接下来是主界面的设计。主界面的主要功能是引 导使用者进入各个下级表单。2. 2.系统主界面设计 本表单的设计思路如下:为表单设计背景和ico图标。设置各个按钮引导使用者进入下一级表单。 设置“退出”按钮以便退出主程序。具体的操作步骤如下:新建一个表单,存储为“ main”。设置表单

21、各外观参数。如表8所示。表8医院管理系统表单参数属性名值说明CAPTION医院管理系统表单标题WIDTH397表单宽HELGHT269表单高ICON图标文件位置为了使主界面功能清晰,首先加入两个容器控件(容器1和容器2)。在容器1中加入3个按钮,分别为“门诊部”,“住院部”,“药品仪器”;容 器2中加入1个按钮,为“员工管理”。右下角加入按钮“退出”。为各个按钮添加Click事件代码。“门诊部”按钮代码如下:do form hospitalformmzb*打开“门诊部管理”界面,实例中本部分程序未编写thisform.e nabled=.F.“住院部”按钮代码如下:do form hospit

22、alformzyb*打开“住院部管理”界面 thisform.e nabled=.F.“药品仪器”按钮代码如下: do form hospitalformypyq *打开“药品仪器管理”界面 thisform.e nabled=.F.“员工管理”按钮代码如下:do form hospitalformyggl*打开“员工管理”界面thisform.e nabled=.F.退出”按钮代码如下:this form.release*释放本表单clear eve nts*关闭整个系统主界面表单如图5-8所示。5.4.2住院部模块的设计医院的住院部的病人管理及病床管理是本模块需要解决的问题。合理安排 病床

23、,使得病人在住院期有一个宽松的环境,不至于出现一个病房挤满而另一个病房一个病人也没有的状况,利用计算机来管理是非常有必要的。1.住院部管理模块主界面图5-8系统主界面本表单主要功能是引导使用者进入分级表单,因此力求简单明了。本表单的目标设计如图5-9所示,表单的名称为zyb。1:/注咲部|-! x|住院部数据管理a I病床管理匚确定广焉兀管理退出图5-9住院部管理主界面清楚了本表单要设计的功能后,下面就是具体的操作步骤: 新建一个表单,存储为“ zyb”。设置表单的各外观参数,如表5-9所示住院部主界面参数属性名值说明CAPTION医院管理系统表单标题WIDTH389表单宽HELGHT203表

24、单高ICON图标文件位置向表单中合适的位置添加 Lable控件,填入“住院部数据管理”,为了是字 体美观,将Lable控件的Alignment属性设置为“ 2-centeF'(居中),Font (字体) 属性设置为“隶书” ,FontSize (字体大小)设置为20。在表单中加入Option Group (选项按钮组)组件。本表单只用到了两个管理项目,故其 Button Count属性设置为2。在控件上 单击鼠标右键选Edit (编辑),将两个Butt on的Cap tio n设置为需要的“病床管 理”和“病人管理”并调整好位置和大小。“确定”按钮的功能是根据选择者所选的 Option

25、 Group的选项进入不同的分 级表单,其代码如下“sele name=thisform.optio ngroup.value*判断所选的内容if sele name=1do form hospitalformbcg1*打开下级表单“病床管理”else do form hospitalformbrg1*打开下级表单“病人管理”ednif添加一个“退出”按钮,功能为释放本表单,激活系统主界面。其代码如下:thisform.releasemain.en abled=.T.2.病人管理模块设计该表单主要是为使用者提供对住院部病人的一览,查询,添加等具体功能。其设计思路如下:因功能较多,为了使一个表大

26、怒中能够显示大量的信息。本表单使用 PageFrame(页框)控件,具体目标如图 5-10所示。表单中页框共分为6个子页面,分别为“一览”,“简单查询”,“高级查询”, 以及“添加”,“编辑”,“删除”,使用者单击各页面标题就可以进入各个子页面, 从而实现相应的功能。(1) “一览”子页面用来显示整个住院部的病人资料。缺省以记录输入顺序 排序。表格内显示病人资料,当使用者单击列头时,会根据该表中此列的顺序重 新排列一个表格中的记录。图10病人管理界面(2) “简单查询”为使用者提供一个简单的病人查询方式一一由一个字段检 索病人记录。如“病人姓名”、“入院时间”、“所属科室”、“主治医生”和“病

27、房(3) “高级查询”实际上就是可集合简单查询中提供的字段的内容,可精简 简单查询的结果,从而更快地得到病人信息。(4) 使用者可通过“添加”页面提供的功能向病人的数据库中添加新的记 录。(5) “编辑”页面中使用者可以编辑已经存在的记录。(6) 在“删除”页面中,提供了通过输入病人姓名来删除记录的方式,同 时还可以删除数据库中空白的记录。通过如下的步骤来实现上述功能:新建一个表单,存储名为“ brgl” . 设置表单的各外观参数,如表10所示。表10病人管理界面参数属性名值1说明CAPTION病人管理表单标题WIDTH604表单宽HEIGHT454表单高ICON图标文件位置向表单中添加Pag

28、eFrame控件,将其PageCount (页面数)属性设为6,即 共6个子页面。各页面的Caption属性分别设为“一览”、“简单查询”、“高级查 询”、“添加”、“编辑”、“删除”。在适当位置添加Label控件,命名为“病人管 理”。单击鼠标右键,在Date Environment (数据环境)中添加表Patient。(1) “一览”子页面的设计步骤如下:拖动表Patient至表单中。将其加入到子页面1中,结果如图10所示。改动 表格中名列名称,分别为“病人姓名”、“性别”、“入院时间”、“科室”、“病症”、 “主治医生”、“病房号”、“病床号”。调整各列宽至合适宽度,Alignment属

29、性为 “2-Middle Center” (居中)。填写各列头的Click代码。Column1 Header(病人姓名)Click 代码:Set order to patie nt_na*以“病人姓名”为索引排列go topthisform.pageframe1.page1.grdpatie nt.refreshColumn2 Header性别)Click 代码:Set order to patie nt_ge*以“病人性别”为索引排序go topthisform.pageframe1.page1.grdpatie nt.refreshColumn3 Header入院时间)Click 代码:S

30、et order to patie nt_da*以“入院时间”为索引排序go topthisform.pageframe1.page1.grdpatie nt.refreshColumn4 Header科室)Click 代码:Set order to patie nt_de*以“所属科室”为索引排序go topthisform.pageframe1.page1.grdpatie nt.refreshColumn6 Header主治医生)Click 代码:Set order to patie nt_do*以“主治医生”为索引排序go topthisform.pageframe1.page1.gr

31、dpatie nt.refreshColumn7 Header病房号)Click 代码:Set order to patie nt_ro*以“病房号”为索引排序go topthisform.pageframe1.page1.grdpatie nt.refresh因不需要对“病症”和“病床号”进行排序,因此其Column Header的Click代码不要填。另外,为防止对表格内容进行误操作修改或删除,将表格各Column的Text的Enabled属性设为“ E”。(2)“简单查询”页面的设计如图11所示。图11 “简单查询”子页面本例中提供“病人姓名”、“入院时间”、“所属科室”、“主治医生”和

32、“病房 号”等5个字段可做查询关键字。向表单中添加 OptionGroup控件,设置Button Count属性为5。更改相应的 Caption 属性。添加按钮“进入查询”,填写Click事件代码:if thisform.pageframe1.page2.optio ngroup1.optio n1.value=1*选中的是其中组件1时thisform.pageframe1.page2.text1.e nabled=.T thisform.pageframe1.page2.text1.setfocus en difif if thisform.pageframe1.page2.optio ng

33、roup1.optio n2.value=1*选中的时其中组件2时thisform.pageframe1.page2.text2.e nabled=.Tthisform.pageframe1.page2.text2.setfocusen difif thisform.pageframe1.page2.optio ngroup1.optio n3.value=1*选中的是其中组件3时thisform.pageframe1.page2.text3.e nabled=.Tthisform.pageframe1.page2.text3.setfocus en difif thisform.pagefr

34、ame1.page2.optiongroup1.option4.value=1 *选中的是其中组件 4 时 thisform.pageframe1.page2.text4.enabled=.T thisform.pageframe1.page2.text4.setfocus endifif thisform.pageframe1.page2.optiongroup1.option5.value=1 *选中的是其中组件 5 时 thisform.pageframe1.page2.text5.enabled=.T thisform.pageframe1.page2.text5.setfocus e

35、ndifthisform.pageframe1.page2.optiongroup1.option1.enabled=.F.thisform.pageframe1.page2.optiongroup1.option2.enabled=.F.thisform.pageframe1.page2.optiongroup1.option3.enabled=.F. thisform.pageframe1.page2.optiongroup1.option4.enabled=.F.thisform.pageframe1.page2.optiongroup1.option5.enabled=.F. mand

36、1.enabled=.F. mand2.enabled=.T.ma nd3.e nabled=。* 为防止误操作,将不用的控件设为不可用。 这段代码的功能是判断使用者选择的要查询的字段, 将相应的文本框变为可 填写,便于使用者操作。添加直线下各控件 TextlText5及Label控件,各Text的Enabled属性设为 “.E. ” 注意 Text3 的 InputMask 及 Format属性均设为“ 9999/99/99”,即按“年 / 月/日”的 格式输 入和 读出数据 。注意前面 在设置数 据库的表 Patient 的 Patient_date_star字段的 InputMask 及

37、 Fromat属性时也应设为“ 9999/99/99”。这 样设置以后, 使用者就只能在该文本框中输入数字了, 如果输入的不为数字, 则 系统拒绝接受。添加按钮“显示查询结果” ,其 Click 代码为:inn ame=alltrim(thisform.pageframe1.page2.text1.value)indate=alltrim(thisform.pageframe1.page2.text2.value)indept=alltrim(thisform.pageframe1.page2.text3.value) indoct=alltrim(thisform.pageframe1.pa

38、ge2.text4.value) inroom=alltrim(thisform.pageframe1.page2.text5.value)*获取输入的值select patient_name as病人姓名,;patient_gender as性别,;patient_date_start a入院时间,;patient_dept as 科室,;patient_state as病症,;patient_doc as 主治医生,;patient_room as 病房号,;patient_bed as 病床号;from patient;where patient_name=inname;and pati

39、ent_date_start=indate;and patient_dept=indept;and patient_doc=indoc;and patient_room=inroom *根据条件选择出要显示的字段 这段代码的功能时将查询到的符合条件的记录罗列出来。 添加按钮“重新查询” ,Click 代码为: thisform.pageframe1.page2.optiongroup1.option1.value=1 thisform.pageframe1.page2.optiongroup1.option2.value=0 thisform.pageframe1.page2.optiongr

40、oup1.option3.value=0 thisform.pageframe1.page2.optiongroup1.option4.value=0 thisform.pageframe1.page2.optiongroup1.option5.value=0 *使选项组的状态恢复 thisform.pageframe1.page2.optiongroup1.option1.enabled=.T. thisform.pageframe1.page2.optiongroup1.option2. enabled=.T. thisform.pageframe1.page2.optiongroup1.

41、option3. enabled=.T. thisform.pageframe1.page2.optiongroup1.option4. enabled=.T. thisform.pageframe1.page2.optiongroup1.option5. enabled=.T. *使选项组为可用 mand1.enabled=.T. thisform.pageframe1.page2.text1.value=”thisform.pageframe1.page2.text2.value=”thisform.pageframe1.page2.text3.value=”thisform.pagefr

42、ame1.page2.tex4t .value= ” thisform.pageframe1.page2.text5.value=”12 所示*将各文本框清空 thisform.pageframe1.page2.text1.enabled=.F. thisform.pageframe1.page2.text2enabled=.F. thisform.pageframe1.page2.text3.enabled=.F. thisform.pageframe1.page2.text4.enabled=.F. thisform.pageframe1.page2.text5.enabled=.F. *

43、使各文本框为可用 mand2.enabled=.F. mand3.enabled=.F. *将按钮恢复不可用 这段代码的功能时恢复查询前的状态,重新输入要查询的字段。 (3)“高级查询”中大多数内容与“简单查询”页面类似,如图图12 “高级查询”子页面 查询的字段选择改为CheckBox控件,共5个。“进入查询”按钮Click代码为:if thisform.pageframe1.page3.check5.value=1 thisform.pageframe1.page3.text5.e nabled=.T. thisform.pageframe1.page3.text5.serfocus en

44、 difif thisform.pageframe1.page3.check4.value=1 thisform.pageframe1.page3.text4.e nabled=.T. thisform.pageframe1.page3.text4.serfocus en difif thisform.pageframe1.page3.check3.value=1 thisform.pageframe1.page3.text3.e nabled=.T. thisform.pageframe1.page3.text3.serfocus en difif thisform.pageframe1.p

45、age3.check2.value=1 thisform.pageframe1.page3.text2.e nabled=.T. thisform.pageframe1.page3.text2.serfocus en difif thisform.pageframe1.page3.check1.value=1 thisform.pageframe1.page3.text1.e nabled=.T. thisform.pageframe1.page3.text1.serfocus en dif*依次检查各复选框的值thisform.pageframe1.page3.check1.e nabled

46、=.F.thisform.pageframe1.page3.check2.e nabled=.F.thisform.pageframe1.page3.check3.e nabled=.F. thisform.pageframe1.page3.check4.enabled=.F. thisform.pageframe1.page3.check5.enabled=.F. mand1.enabled=.T. mand2.enabled=.F. mand3.enabled=.F.* 为防止误操作,将不用的控件设为不可用注意各 CheckBox 的判断和“简单查询”中的区别。其功能与“简单查询” 子页面

47、中的相应按钮也有所区别。添加“显示查询结果”按钮,其 Click 事件代码为: inname=alltrim(thisform.pageframe1.page3.text1.value) indate=alltrim(thisform.pageframe1.page3.text2.value) indept=alltrim(thisform.pageframe1.page3.text3.value) indoct=alltrim(thisform.pageframe1.page3.text4.value) inroom=alltrim(thisform.pageframe1.page3.tex

48、t5.value) *获得文本框输入的各信息select patient_name as病人姓名,;patient_gender as性别,;patient_date_start a入院时间,; patient_dept as 科室,; patient_state as病症,; patient_doc as 主治医生,; patient_room as 病房号,; patient_bed as 病床号; from patient;where patient_name=inname;and patient_date_start=indate;and patient_dept=indept;and

49、 patient_doc=indoc;and patient_room=inroom *选择出要显示的字段 这个按钮的功能与 “简单查询” 子页面中相应按钮类似, 读者可参阅前面的 内容。添加“重新查询”按钮,其 Click 事件代码如下: thisform.pageframe1.page3.check1.value=0 thisform.pageframe1.page3.check2.value=0 thisform.pageframe1.page3.check3.value=0 thisform.pageframe1.page3.check4.value=0 thisform.pagefr

50、ame1.page3.check5.value=0*将各复选框组件状态恢复为未选状态 thisform.pageframe1.page3.check1.enabled=.T. thisform.pageframe1.page3.check2.enabled=.T. thisform.pageframe1.page3.check3.enabled=.T. thisform.pageframe1.page3.check4.enabled=.T. thisform.pageframe1.page3.check5.enabled=.T.*将各复选框组件变为可用状态 mand1.enabled=.T.t

51、hisform.pageframe1.page3.text1.value=”thisform.pageframe1.page3.text2.value=”thisform.pageframe1.page3.text3.valu=e”thisform.pageframe1.page3.text4.value=”thisform.pageframe1.page3.text5.value=”*将各文本框清空thisform.pageframe1.page3.text1.enabled=.F.thisform.pageframe1.page3.text2enabled=.F.thisform.page

52、frame1.page3.text3.enabled=.F.thisform.pageframe1.page3.text4.enabled=.F.thisform.pageframe1.page3.text5.enabled=.F.mand2.enabled=.F.thisform.pageframe1.page3command3.enabled=.F. *将各控件恢复至初始状态(4)紧接这设计“添加”子页面,界面如图 13 所示图13“添加”子页面各控件如图13所示。注意入院时间Text控件的InputMask及Format属性。其“确定”按钮的Click代码为:inn ame=alltri

53、m(thisform.pageframe1.page4.text1.value)ingen d=alltrim(thisform.pageframe1.page4.text2.value)in date=alltrim(thisform.pageframe1.page4.text3.value)in dept=alltrim(thisform.pageframe1.page4.text4.value)in stat=alltrim(thisform.pageframe1.page4.text5.value)in doct=alltrim(thisform.pageframe1.page4.te

54、xt6.value)inroo m=alltrim(thisform.pageframe1.page4.text7.value)in bedd=alltrim(thisform.pageframe1.page4.text8.value)*从文本框1至8获得输入的信息cMessageTitle=?t理系统?cMessageText=确定要添加吗? ?n DialogType=4+32nAn swer=messagebox(cMessageText, nDialgType,cMessageTitle)*确定添加时给出的提示do casecase nAn swer=6set order to patie nt_naseek inn ame*检查病人名是否重复if ! fou nd()insert into patie nt values(inn ame,i ngen d,i ndate,i ndept,i nstat, in doct,i nro om,i nbedd) messagebox(添加完毕 ” ,48操作成功”)elsemessagebox

温馨提示

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

评论

0/150

提交评论