医院管理系统的开发背景_第1页
医院管理系统的开发背景_第2页
医院管理系统的开发背景_第3页
医院管理系统的开发背景_第4页
医院管理系统的开发背景_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

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 程序编制的特点,得到如图1所示的系统功能模块图。管理系统图1 系统功能模块图2. 2. 数据库设计在数据库应用系统的开发过程中,数据库的结构设计是一个非常重要的问题。数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构会减小数据库的存储量,数据的完整性和一致性比较高,系统具有较快的相应速度,简化基于此数据库的应用程序的实现等。在数据库系统开始设计的时候应该尽量考虑全面,尤其应该仔细考虑用户的各种需求,避免浪费不要的人

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

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

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

7、况表(这里主要针对医生,读者可自行建立护士等的数据表),其中涵盖了常用的字段。表1 PERSONNEL员工基本状况表列 名数据类型可否为空说明EMP_NONUMBERIC(6)NOT NULL员工号(主键)EMP_NAMECHARACTER(10)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_C

8、OUNTRYCHARACTER(10)NULL国籍EMP_NATIONCHARACTER(10)NULL民族EMP_IDNUMBERIC(6)NULL身份证号EMP_MARRIAGECHARACTER(2)NULL婚姻状况EMP_HEALTHCHARACTER(10)NULL健康状况EMP_STARTWORKDATENULL参加工作时间EMP_STATECHARACTER(10)NULL员工状态EMP_HOMEADDRESSCHARACTER(10)NULL家庭住址EMP_TELENONUMBERIC(10)NULL联系电话EMP_EMAILCHARACTER(20)NULL联系E-mail地

9、址EMP_JOB_IDNUMBERIC(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

10、部门副主任代号表4 为病人信息表。表4 病人信息表PATIENT列 名数据类型可否为空说明PATIENT_NAMECHARACTER(10)NULL病人姓名(主键)PATIENT_GENDERCHARACTER(2)NOT NULL病人性别PATIENT_DATE_STARTCHARACTER(10)NULL入院时间PATIENT_DEPTCHARACTER(10)NOT NULL病人所属科室PATIENT_STATECHARACTER(10)NULL病人状况PATIENT_DOCCHARACTER(10)NOT NULL病人主治医生PATIENT_ROOMCHARACTER(3)NOT NU

11、LL病人房间号PATIENT_BEDCHARACTER(2)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列 名数据类型可否为空说 明APPARAT

12、US_IDNUMBERIC(3)NOT NULL仪器代号(主键)APPARATUS _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用户名(主键)T

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

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

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

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

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

18、ipublic ji=0j=0设计两个全局变量以控制事件发生条件。在表单的KeyPress Event事件中填入如下的代码:LPARAMETERS nKeyCode, nShiftAltCtrlthisform.release*释放本表单do form hospitalformmain*执行表单在表单的Click Event事件中填入如下代码:thisform.release*释放本表单do form hospitalformmain*执行表单main在表单中添加一个Timer控件,设置其Interval属性为1000(单位是毫秒),表单中Timer的Timer Event事件的代码如下:if

19、 i=0thisform.label1.fontsize=22*将表单中label1控件的字体大小设为22thisform.label2.fontsize=24*将表单中label2控件的字体大小设为24thisform.label1.forecolor=thisform.label2.forecolor=65535*控制显示字体的颜色和大小i=1j=j+1else thisform.label1.fontsize=24 thisform.label2.fontsize=22 thisform.label1.forecolor= thisform.label2.forecolor=65535

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

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

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

23、环境,不至于出现一个病房挤满而另一个病房一个病人也没有的状况,利用计算机来管理是非常有必要的。1.住院部管理模块主界面 图5-8 系统主界面本表单主要功能是引导使用者进入分级表单,因此力求简单明了。本表单的目标设计如图5-9所示,表单的名称为zyb。图5-9 住院部管理主界面清楚了本表单要设计的功能后,下面就是具体的操作步骤:新建一个表单,存储为“zyb”。设置表单的各外观参数,如表5-9所示。住院部主界面参数属 性 名值说 明CAPTION医院管理系统表单标题WIDTH389表单宽HELGHT203表单高ICON图标文件位置向表单中合适的位置添加Lable控件,填入“住院部数据管理”,为了是

24、字体美观,将Lable控件的Alignment属性设置为“2-center”(居中),Font(字体)属性设置为“隶书”,FontSize(字体大小)设置为20。在表单中加入Option Group(选项按钮组)组件。本表单只用到了两个管理项目,故其Button Count属性设置为2。在控件上单击鼠标右键选Edit(编辑),将两个Button的Caption设置为需要的“病床管理”和“病人管理”并调整好位置和大小。“确定”按钮的功能是根据选择者所选的Option Group的选项进入不同的分级表单,其代码如下“selename=thisform.optiongroup.value*判断所选的

25、内容if selename=1do form hospitalformbcg1*打开下级表单“病床管理”else do form hospitalformbrg1*打开下级表单“病人管理”ednif添加一个“退出”按钮,功能为释放本表单,激活系统主界面。其代码如下:thisform.releasemain.enabled=.T.2.病人管理模块设计 该表单主要是为使用者提供对住院部病人的一览,查询,添加等具体功能。其设计思路如下:因功能较多,为了使一个表大怒中能够显示大量的信息。本表单使用PageFrame(页框)控件,具体目标如图5-10所示。表单中页框共分为6个子页面,分别为“一览”,“简

26、单查询”,“高级查询”,以及“添加”,“编辑”,“删除”,使用者单击各页面标题就可以进入各个子页面,从而实现相应的功能。(1)“一览”子页面用来显示整个住院部的病人资料。缺省以记录输入顺序排序。表格内显示病人资料,当使用者单击列头时,会根据该表中此列的顺序重新排列一个表格中的记录。图10 病人管理界面(2)“简单查询”为使用者提供一个简单的病人查询方式由一个字段检索病人记录。如“病人姓名”、“入院时间”、“所属科室”、“主治医生”和“病房号”。(3)“高级查询”实际上就是可集合简单查询中提供的字段的内容,可精简简单查询的结果,从而更快地得到病人信息。(4)使用者可通过“添加”页面提供的功能向病

27、人的数据库中添加新的记录。(5)“编辑”页面中使用者可以编辑已经存在的记录。(6)在“删除”页面中,提供了通过输入病人姓名来删除记录的方式,同时还可以删除数据库中空白的记录。通过如下的步骤来实现上述功能:新建一个表单,存储名为“brg1”.设置表单的各外观参数,如表10所示。表10 病人管理界面参数属性名值说明CAPTION病人管理表单标题WIDTH604表单宽HEIGHT454表单高ICON图标文件位置向表单中添加PageFrame控件,将其PageCount(页面数)属性设为6,即共6个子页面。各页面的Caption属性分别设为“一览”、“简单查询”、“高级查询”、“添加”、“编辑”、“删

28、除”。在适当位置添加Label控件,命名为“病人管理”。单击鼠标右键,在Date Environment(数据环境)中添加表Patient。(1)“一览”子页面的设计步骤如下:拖动表Patient至表单中。将其加入到子页面1中,结果如图10所示。改动表格中名列名称,分别为“病人姓名”、“性别”、“入院时间”、“科室”、“病症”、“主治医生”、“病房号”、“病床号”。调整各列宽至合适宽度,Alignment属性为“2-Middle Center”(居中)。填写各列头的Click代码。Column1 Header(病人姓名)Click代码:Set order to patient_na*以“病人姓

29、名”为索引排列go topthisform.pageframe1.page1.grdpatient.refreshColumn2 Header(性别)Click代码:Set order to patient_ge*以“病人性别”为索引排序go topthisform.pageframe1.page1.grdpatient.refreshColumn3 Header(入院时间)Click代码:Set order to patient_da*以“入院时间”为索引排序go topthisform.pageframe1.page1.grdpatient.refreshColumn4 Header(科室

30、)Click代码:Set order to patient_de*以“所属科室”为索引排序go topthisform.pageframe1.page1.grdpatient.refreshColumn6 Header(主治医生)Click代码:Set order to patient_do*以“主治医生”为索引排序go topthisform.pageframe1.page1.grdpatient.refreshColumn7 Header(病房号)Click代码:Set order to patient_ro*以“病房号”为索引排序go topthisform.pageframe1.pag

31、e1.grdpatient.refresh因不需要对“病症”和“病床号”进行排序,因此其Column Header的Click代码不要填。另外,为防止对表格内容进行误操作修改或删除,将表格各Column的Text的Enabled属性设为“E”。(2)“简单查询”页面的设计如图11所示。图11“简单查询”子页面本例中提供“病人姓名”、“入院时间”、“所属科室”、“主治医生”和“病房号”等5个字段可做查询关键字。向表单中添加OptionGroup控件,设置Button Count属性为5。更改相应的Caption属性。添加按钮“进入查询”,填写Click事件代码:if thisform.pagef

32、rame1.page2.optiongroup1.option1.value=1*选中的是其中组件1时thisform.pageframe1.page2.text1.enabled=.Tthisform.pageframe1.page2.text1.setfocusendifif if thisform.pageframe1.page2.optiongroup1.option2.value=1*选中的时其中组件2时thisform.pageframe1.page2.text2.enabled=.Tthisform.pageframe1.page2.text2.setfocusendifif t

33、hisform.pageframe1.page2.optiongroup1.option3.value=1*选中的是其中组件3时thisform.pageframe1.page2.text3.enabled=.Tthisform.pageframe1.page2.text3.setfocusendifif thisform.pageframe1.page2.optiongroup1.option4.value=1*选中的是其中组件4时thisform.pageframe1.page2.text4.enabled=.Tthisform.pageframe1.page2.text4.setfocu

34、sendifif thisform.pageframe1.page2.optiongroup1.option5.value=1*选中的是其中组件5时thisform.pageframe1.page2.text5.enabled=.Tthisform.pageframe1.page2.text5.setfocusendifthisform.pageframe1.page2.optiongroup1.option1.enabled=.F.thisform.pageframe1.page2.optiongroup1.option2.enabled=.F.thisform.pageframe1.pag

35、e2.optiongroup1.option3.enabled=.F.thisform.pageframe1.page2.optiongroup1.option4.enabled=.F.thisform.pageframe1.page2.optiongroup1.option5.enabled=.F.mand1.enabled=.F.mand2.enabled=.T.mand3.enabled=.T。*为防止误操作,将不用

36、的控件设为不可用。这段代码的功能是判断使用者选择的要查询的字段,将相应的文本框变为可填写,便于使用者操作。添加直线下各控件Text1Text5及Label控件,各Text的Enabled属性设为“.E.”。注意Text3的InputMask及Format属性均设为“9999/99/99”,即按“年/月/日”的格式输入和读出数据。注意前面在设置数据库的表Patient的Patient_date_start字段的InputMask及Fromat属性时也应设为“9999/99/99”。这样设置以后,使用者就只能在该文本框中输入数字了,如果输入的不为数字,则系统拒绝接受。添加按钮“显示查询结果”,其C

37、lick代码为:inname=alltrim(thisform.pageframe1.page2.text1.value)indate=alltrim(thisform.pageframe1.page2.text2.value)indept=alltrim(thisform.pageframe1.page2.text3.value)indoct=alltrim(thisform.pageframe1.page2.text4.value)inroom=alltrim(thisform.pageframe1.page2.text5.value)*获取输入的值select patient_name

38、as 病人姓名,;patient_gender as 性别,;patient_date_start as入院时间,;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 patient_doc=indoc;and patient_room=inroom*根

39、据条件选择出要显示的字段这段代码的功能时将查询到的符合条件的记录罗列出来。添加按钮“重新查询”,Click代码为:thisform.pageframe1.page2.optiongroup1.option1.value=1thisform.pageframe1.page2.optiongroup1.option2.value=0thisform.pageframe1.page2.optiongroup1.option3.value=0thisform.pageframe1.page2.optiongroup1.option4.value=0thisform.pageframe1.page2.o

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

41、tiongroup1.option5. enabled=.T.*使选项组为可用mand1.enabled=.T.thisform.pageframe1.page2.text1.value=”thisform.pageframe1.page2.text2.value=”thisform.pageframe1.page2.text3.value=”thisform.pageframe1.page2.text4.value=”thisform.pageframe1.page2.text5.value=”*将各文本框清空thisform.pag

42、eframe1.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.*使各文本框为可用mand2.enabled=.F.mand3.enabled=

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

44、e=1thisform.pageframe1.page3.text4.enabled=.T.thisform.pageframe1.page3.text4.serfocusendifif thisform.pageframe1.page3.check3.value=1thisform.pageframe1.page3.text3.enabled=.T.thisform.pageframe1.page3.text3.serfocusendifif thisform.pageframe1.page3.check2.value=1thisform.pageframe1.page3.text2.ena

45、bled=.T.thisform.pageframe1.page3.text2.serfocusendifif thisform.pageframe1.page3.check1.value=1thisform.pageframe1.page3.text1.enabled=.T.thisform.pageframe1.page3.text1.serfocusendif*依次检查各复选框的值thisform.pageframe1.page3.check1.enabled=.F.thisform.pageframe1.page3.check2.enabled=.F.thisform.pagefram

46、e1.page3.check3.enabled=.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

48、.text5.value)*获得文本框输入的各信息select patient_name as 病人姓名,;patient_gender as 性别,;patient_date_start as入院时间,;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;an

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

50、heck5.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.e

51、nabled=.T.thisform.pageframe1.page3.text1.value=”thisform.pageframe1.page3.text2.value=”thisform.pageframe1.page3.text3.value=”thisform.pageframe1.page3.text4.value=”thisform.pageframe1.page3.text5.value=”*将各文本框清空thisform.pageframe1.page3.text1.enabled=.F.thisform.pageframe1.page3.text2enabled=.F.th

52、isform.pageframe1.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

53、及Format属性。其“确定”按钮的Click代码为:inname=alltrim(thisform.pageframe1.page4.text1.value)ingend=alltrim(thisform.pageframe1.page4.text2.value)indate=alltrim(thisform.pageframe1.page4.text3.value)indept=alltrim(thisform.pageframe1.page4.text4.value)instat=alltrim(thisform.pageframe1.page4.text5.value)indoct=alltrim(thisform.pageframe1.page4.text6.value)inroom=alltrim(thisform.pageframe1.page4.text7.value)inbedd=alltrim(th

温馨提示

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

评论

0/150

提交评论