版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、醫(yī)院管理系統(tǒng)現(xiàn)代化的醫(yī)院也應(yīng)該有現(xiàn)代化的管理系統(tǒng)。在科技日益發(fā)達(dá)的今天,人們的身體健康也在不斷受到重視。因此,醫(yī)院進(jìn)行現(xiàn)代化管理就變得尤為重要。這里, 我們以一個典型的醫(yī)院管理系統(tǒng)為例子, 來講述如何建立一個使用的醫(yī)院管理系 統(tǒng)。1. 1.系統(tǒng)設(shè)計(jì)1.1系統(tǒng)目標(biāo)設(shè)計(jì)通過一個醫(yī)院管理系統(tǒng),使醫(yī)院的管理工作系統(tǒng)化、規(guī)范化、自動化,從 而達(dá)到提高醫(yī)院管理效率的目的。1.2開發(fā)設(shè)計(jì)思想本系統(tǒng)開發(fā)設(shè)計(jì)思想:盡量采用公司現(xiàn)有軟硬件環(huán)境,及先進(jìn)的管理系統(tǒng)開發(fā)方案,從而 達(dá)到充分利用公司現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的;系統(tǒng)應(yīng)符合醫(yī)院員工管理的規(guī)定,滿足醫(yī)院日常管理的需要,并達(dá) 到操作過程中的直觀、
2、方便、實(shí)用、安全等要求;系統(tǒng)采用模塊化程序設(shè)計(jì)方法,這樣既便于系統(tǒng)功能的各種組合, 又便于未參與開發(fā)的技術(shù)維護(hù)人員補(bǔ)充、維護(hù)。系統(tǒng)應(yīng)具備數(shù)據(jù)維護(hù)功能,及時根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加、刪 除、修改、備份等操作。1.3開發(fā)和運(yùn)行環(huán)境選擇開發(fā)工具:Visual FoxPro 6.0;運(yùn)行環(huán)境:Window9.x 或 Windows20001.4系統(tǒng)功能分析系統(tǒng)功能分析事在系統(tǒng)開發(fā)的總體任務(wù)的基礎(chǔ)上完成的。本例子中的醫(yī)院管理系統(tǒng)需要完成功能主要有:員工各種信息的輸入,包括員工基本細(xì)細(xì)、職稱、崗位。 員工各種的查詢、修改,包括員工基本信息、職稱、崗位、工資等。 員工的人事調(diào)動管理。病人信息的管理。病院病
3、床的管理。藥劑資源管理。 儀器資源管理。 系統(tǒng)用戶管理、權(quán)限管理。1.5系統(tǒng)功能模塊設(shè)計(jì)在系統(tǒng)功能分析的基礎(chǔ)上,考慮Visual FoxPro 6.0程序編制的特點(diǎn),得至U 如圖1所示的系統(tǒng)功能模塊圖。管理系統(tǒng)員工管誼藥品狠圖1系統(tǒng)功能模塊圖2. 2.數(shù)據(jù)庫設(shè)計(jì)在數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)過程中,數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計(jì)是一個非常重要的問 題。數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的好壞將直接對應(yīng)用系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響, 好的數(shù)據(jù)庫結(jié)構(gòu)會減小數(shù)據(jù)庫的存儲量, 數(shù)據(jù)的完整性和一致性比較高,系統(tǒng)具 有較快的相應(yīng)速度,簡化基于此數(shù)據(jù)庫的應(yīng)用程序的實(shí)現(xiàn)等。在數(shù)據(jù)庫系統(tǒng)開始設(shè)計(jì)的時候應(yīng)該盡量考慮全面,尤其應(yīng)該仔細(xì)考慮用戶的各種需
4、求,避免浪費(fèi)不要的人力和物力。2.1數(shù)據(jù)庫需求分析數(shù)據(jù)庫需求分析是數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的第一階段,是非常重要的一個階段。在這 個階段主要是收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及確定數(shù)據(jù)處理的流程,組成一份詳盡 的數(shù)據(jù)字典,為以后進(jìn)一步設(shè)計(jì)打下基礎(chǔ)。在仔細(xì)調(diào)查醫(yī)院管理過程的基礎(chǔ)上,我們得到本系統(tǒng)所處理的數(shù)據(jù)關(guān)系如圖 2所示。病床病人資料IH 醫(yī)生圖2數(shù)據(jù)關(guān)系圖針對本實(shí)例,通過對醫(yī)院管理的內(nèi)容和數(shù)據(jù)關(guān)系分析,我們設(shè)計(jì)的數(shù)據(jù)項(xiàng)和 數(shù)據(jù)結(jié)構(gòu)如下:員工基本狀況包括的數(shù)據(jù)項(xiàng)有員工號、 員工姓名、性別、所在部門、 身份證號、生日、籍貫、國籍、民族、婚姻狀況、健康狀況、參加工作 時間、員工狀態(tài)、家庭住址、聯(lián)系電話等。 員工工資狀
5、況包括的數(shù)據(jù)項(xiàng)有員工號、工資項(xiàng)別、工資金額等。 醫(yī)院工作崗位信息包括的數(shù)據(jù)項(xiàng)有工作崗位代號、工作崗位名稱 等。醫(yī)院部門信息包括的數(shù)據(jù)項(xiàng)有部門代號、 部門名稱、部門負(fù)責(zé)人等。 病人信息包括的數(shù)據(jù)項(xiàng)有病人姓名、病人性別、入院時間、病人所 屬科室、病人狀況、病人主治醫(yī)生、房間號、病床號等。藥劑資源管理信息包括的數(shù)據(jù)項(xiàng)有藥劑代號、藥劑名稱、藥劑價格、 藥劑庫存數(shù)量、備注等。醫(yī)療儀器管理包括的數(shù)據(jù)項(xiàng)有儀器代號、儀器名稱、儀器價格、儀 器數(shù)量、備注等。有了上面的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)項(xiàng)和數(shù)據(jù)關(guān)系,我們就進(jìn)行下面的數(shù)據(jù)庫設(shè)計(jì)。 2.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)這一設(shè)計(jì)階段是在需求分析的基礎(chǔ)上,設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)
6、體, 以及確定他們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。本實(shí)例根據(jù)上面的 設(shè)計(jì)規(guī)劃出的實(shí)體有員工實(shí)體、部門實(shí)體、崗位實(shí)體、病人實(shí)體、藥劑實(shí)體、儀 器實(shí)體。實(shí)體和實(shí)體之間的關(guān)系E-R圖如圖3所示。2.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)我們需要將上面的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為 Visual FoxPro 6.0數(shù)據(jù)庫系統(tǒng)所支 持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。在上面的實(shí)體以及實(shí)體之間關(guān)系的基礎(chǔ)上,我們就可以形成數(shù)據(jù)庫中的表格 以及各個表格之間的關(guān)系。醫(yī)院管理系統(tǒng)數(shù)據(jù)庫中各個表格的設(shè)計(jì)結(jié)果如表1到表7所示。每個表格對應(yīng)在數(shù)據(jù)庫中的一個表。1n圖3實(shí)體之間關(guān)系E-R圖表1為員工基本狀況表(這里主要針對醫(yī)生,
7、讀者可自行建立護(hù)士等的數(shù)據(jù) 表),其中涵蓋了常用的字段。表1 PERSONNEL員工基本狀況表列名數(shù)據(jù)類型可否為空說明EMP_NONUMBERIC(6)NOT NULL員工號(主鍵)EMP_NAMECHARACTER。)NULL員工姓名EMP_DEPT_IDNUMBERIC(3)NULL所在部門號EMP_DUTYCHARACTER(10)NULL:職務(wù)EMP_XLCHARACTER(10)NULL學(xué)歷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員工狀態(tài)EMP HOMEADDRESSCHARACTER(10)NULL家庭住址EMP TELENONUMBERIC(IO)NULL聯(lián)系電話EMP EMAILCHARACTER(20)NULL聯(lián)系E-mail地址EMP JOB I
9、DNUMBERIC(3)NULL工作崗位代號表2為工作崗位情況表表2 JOB工作崗位情況表列名數(shù)據(jù)類型可否為空說明JOB IDNUMBERIC(3)NTO NULL工作崗位代號(主鍵)JOB NAMECHARACTER(10)NULL工作崗位名稱表3為部門信息表表3 DEPT部門信息表列名數(shù)據(jù)類型可否為空說明DEPT IDNUMBERIC(3)NOT NULL部門代號(主鍵)DEPT NAMECHARACTER(10)NULL部門名稱DEPT MANAGERNUMBERIC(6)NULL部門主任代號DEPT_VICEMANAGENUMBERIC(6)NULL部門副主任代號表4為病人信息表。表4
10、病人信息表 PATIENT列名數(shù)據(jù)類型可否為空說明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病人主治醫(yī)生PATIENT ROOMCHARACTERS)NOT NULL病人房間號PATIENT BEDCHARACT
11、ER)NOT NULL病人病床號表5為藥劑信息表。表5藥劑信息表POTION列名數(shù)據(jù)類型可否為空說明POTION IDNUMBERIC(3)NOT NULL藥劑代號(主鍵)POTION NAMECHARACTER(10)NULL藥劑名稱POTION PRICENUMBERIC(5,2)NULL藥劑價格POTION QUANTITYNUMBERIC(3)NULL藥劑庫存數(shù)量POTION REMCHARACTER(40)NULL備注表6為醫(yī)療儀器信息表。表6醫(yī)療儀器信息表 APPARATUS列名數(shù)據(jù)類型可否為空說明APPARATUS IDNUMBERIC(3)NOT NULL儀器代號(主鍵)APP
12、ARATUS NAMECHARACTER(10)NULL儀器名稱APPARATUS PRICENUMBERIC(5,2)NULL儀器價格APPARATUS QUANTITYNUMBERIC(3)NULL儀器數(shù)量APPARATUS REMCHARACTER(40)NULL備注一個企業(yè)可以有多個用戶管理該系統(tǒng),因此就需要為不同的用戶設(shè)置不同的 口令。表7為管理TMS系統(tǒng)的用戶口令表。表7管理TMS系統(tǒng)的用戶口令表 TMS列名數(shù)據(jù)類型可否為空說明TMS USERCHARACTER(20)NOT NULL用戶名(主鍵)TMS PSWDCHARACTER(10)NOT NULL口令3數(shù)據(jù)庫結(jié)構(gòu)的實(shí)現(xiàn)在需
13、求分析、概念結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上得到數(shù)據(jù)的邏輯結(jié)構(gòu)之后,我們就可以在Visual FoxPro6.0數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)該邏輯結(jié)構(gòu)。在Visual FoxPro6.0的主菜單中單擊一丨,在彈出的“ New(新建)”對話框中 選中“ Project(項(xiàng)目)”,單擊“新建文件”按鈕。此時彈出“ Create創(chuàng)建)”對話 框,這是為該項(xiàng)目設(shè)置存儲路徑,請將項(xiàng)目名設(shè)為 Hospital(醫(yī)院)的項(xiàng)目,保存 在磁盤中。例如“ D:hospital”文件夾。項(xiàng)目建立好后,就可以實(shí)現(xiàn)數(shù)據(jù)庫結(jié)構(gòu)了。注意,Visual FoxPro6.0的數(shù)據(jù)庫結(jié)構(gòu)試依靠項(xiàng)目存在的。在如圖4所示Project Manager(項(xiàng)目管理
14、器)中展開Data(數(shù)據(jù))文件夾,鼠標(biāo) 選中Database數(shù)據(jù)庫),單擊右側(cè)的New(新建)按鈕。在彈出的“ New Database新建數(shù)據(jù)庫)”對話框中單擊“ New Database新建數(shù)據(jù)庫)”選項(xiàng),然后將文件存儲為 D:hospitaldatabasehospital.dbc現(xiàn)在就可以為數(shù)據(jù)庫添加數(shù)據(jù)表了,表的具體內(nèi)容如表1至7所示。項(xiàng)目以表4為例講解數(shù)據(jù)表的創(chuàng)建過程。豆頂目管理醫(yī)-Hospital圖4新建數(shù)據(jù)庫在彈出的Database Designer(數(shù)據(jù)庫設(shè)計(jì)器)中單擊鼠標(biāo)右鍵,選擇“ New Table(新建表)”,如圖 5 所示。將其存儲為“ D: hospitaldat
15、abasepatient.dbC。所 有的表均放在“ D:”目錄下,以便使用和管理。圖5新建數(shù)據(jù)表現(xiàn)在可以為表填寫內(nèi)容了,設(shè)計(jì)表的內(nèi)容主要試設(shè)計(jì)表中的字段的 Name名 稱)、Type(類型)、Width(寬度)以及表的DecimalIndex(索引)。表中的字段如圖6 所示,具體內(nèi)容參見前面的表4。表的結(jié)構(gòu)設(shè)計(jì)好后,單擊“ 0K ”按鈕存儲,關(guān)閉設(shè)計(jì)欄,系統(tǒng)會提示為剛兇完成的表輸入數(shù)據(jù)。輸入數(shù)據(jù)后一個數(shù)據(jù)表的創(chuàng)建就完成了圖6設(shè)置表的字段4各個功能模塊的創(chuàng)建4.1系統(tǒng)歡迎界面及主界面模塊設(shè)計(jì)當(dāng)軟件運(yùn)行出現(xiàn)歡迎界面后一段時間內(nèi)按下空格鍵后就進(jìn)入系統(tǒng)主界面。1. 1.歡迎界面設(shè)計(jì)這個部分的設(shè)計(jì)思路
16、試為整個系統(tǒng)設(shè)計(jì)一個“歡迎使用”的畫面,為防止 單調(diào),加入字體閃爍的效果。其步驟如下:為表單加上背景畫面,設(shè)定表單的Picture屬性為希望加入的圖畫路徑及名 稱,在圖片上面有顏色和大小隨時間改變的文字“歡迎使用醫(yī)院管理系統(tǒng)”。設(shè)置表單的Icon屬性為一圖標(biāo)文件(.ico),可以代表表單左上角的VISUAL FOXPRO 圖標(biāo)。為表單添加一個標(biāo)簽控件,注明軟件設(shè)計(jì)者等信息,表單的界面如圖17所示。為表單添加一個記時器(Timer)控件,他的屬性Interval表明間隔時間。在 記時器的Timer事件中編程使該表單釋放并調(diào)用主界面表單。 Timer事件是從表 單運(yùn)行到Interval屬性規(guī)定的時
17、間間隔過后被觸發(fā)的。在表單的KeyPress Eve nt事件中編寫代碼,使當(dāng)空格鍵按下時將該表單釋 放并執(zhí)行主界面表單。KeyPress Eve nt事件是當(dāng)有鍵按下時被觸發(fā)的。在表單的Click Eve nt事件中編寫代碼,使當(dāng)鼠標(biāo)單擊時將該表單釋放并執(zhí) 行主界面表單。該表單如圖7所示。圖7歡迎界面根據(jù)前面的設(shè)計(jì)思路,為了實(shí)現(xiàn)表單中的字體顏色何大小隨事件變化(本例為每秒變化一次),擬定了如下的步驟:新建一個表單,存儲為“ ksjm”。在表單適當(dāng)位置添加Label控件,填入所 續(xù)顯示的文字。在表單的Init Eve nt事件中填入如下代碼:public ipublic ji=0j=0設(shè)計(jì)兩個
18、全局變量以控制事件發(fā)生條件。在表單的KeyPress Eve nt事件中填入如下的代碼:LPARAMETERS n KeyCode, n ShiftAltCtrl thisform.release*釋放本表單do form hospitalformma in*執(zhí)行表單在表單的Click Eve nt事件中填入如下代碼:thisform.release*釋放本表單do form hospitalformma in*執(zhí)行表單main在表單中添加一個Timer控件,設(shè)置其Interval屬性為1000(單位是毫秒), 表單中Timer的Timer Eve nt事件的代碼如下:if i=0thisfo
19、r m.l abel1.fo ntsize=22*將表單中l(wèi)abel1控件的字體大小設(shè)為22thisfor m.l abel2.fo ntsize=24*將表單中l(wèi)abel2控件的字體大小設(shè)為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*打開系統(tǒng)主界面en dif這段代碼的功能在于實(shí)現(xiàn)了界面上的字體隨時間變化顏色和大小。以上為歡迎界面的設(shè)計(jì),接下來是主界面的設(shè)計(jì)。主界面的主要功能是引 導(dǎo)使用者進(jìn)入各個下級表單。2. 2.系統(tǒng)主界面設(shè)計(jì) 本表單的設(shè)計(jì)思路如下:為表單設(shè)計(jì)背景和ico圖標(biāo)。設(shè)置各個按鈕引導(dǎo)使用者進(jìn)入下一級表單。 設(shè)置“退出”按鈕以便退出主程序。具體的操作步驟如下:新建一個表單,存儲為“ main”。設(shè)置表單
21、各外觀參數(shù)。如表8所示。表8醫(yī)院管理系統(tǒng)表單參數(shù)屬性名值說明CAPTION醫(yī)院管理系統(tǒng)表單標(biāo)題WIDTH397表單寬HELGHT269表單高ICON圖標(biāo)文件位置為了使主界面功能清晰,首先加入兩個容器控件(容器1和容器2)。在容器1中加入3個按鈕,分別為“門診部”,“住院部”,“藥品儀器”;容 器2中加入1個按鈕,為“員工管理”。右下角加入按鈕“退出”。為各個按鈕添加Click事件代碼?!伴T診部”按鈕代碼如下:do form hospitalformmzb*打開“門診部管理”界面,實(shí)例中本部分程序未編寫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*關(guān)閉整個系統(tǒng)主界面表單如圖5-8所示。5.4.2住院部模塊的設(shè)計(jì)醫(yī)院的住院部的病人管理及病床管理是本模塊需要解決的問題。合理安排 病床
23、,使得病人在住院期有一個寬松的環(huán)境,不至于出現(xiàn)一個病房擠滿而另一個病房一個病人也沒有的狀況,利用計(jì)算機(jī)來管理是非常有必要的。1.住院部管理模塊主界面圖5-8系統(tǒng)主界面本表單主要功能是引導(dǎo)使用者進(jìn)入分級表單,因此力求簡單明了。本表單的目標(biāo)設(shè)計(jì)如圖5-9所示,表單的名稱為zyb。1:/注咲部|-! x|住院部數(shù)據(jù)管理a I病床管理匚確定廣焉兀管理退出圖5-9住院部管理主界面清楚了本表單要設(shè)計(jì)的功能后,下面就是具體的操作步驟: 新建一個表單,存儲為“ zyb”。設(shè)置表單的各外觀參數(shù),如表5-9所示住院部主界面參數(shù)屬性名值說明CAPTION醫(yī)院管理系統(tǒng)表單標(biāo)題WIDTH389表單寬HELGHT203表
24、單高ICON圖標(biāo)文件位置向表單中合適的位置添加 Lable控件,填入“住院部數(shù)據(jù)管理”,為了是字 體美觀,將Lable控件的Alignment屬性設(shè)置為“ 2-centeF'(居中),F(xiàn)ont (字體) 屬性設(shè)置為“隸書” ,F(xiàn)ontSize (字體大?。┰O(shè)置為20。在表單中加入Option Group (選項(xiàng)按鈕組)組件。本表單只用到了兩個管理項(xiàng)目,故其 Button Count屬性設(shè)置為2。在控件上 單擊鼠標(biāo)右鍵選Edit (編輯),將兩個Butt on的Cap tio n設(shè)置為需要的“病床管 理”和“病人管理”并調(diào)整好位置和大小?!按_定”按鈕的功能是根據(jù)選擇者所選的 Option
25、 Group的選項(xiàng)進(jìn)入不同的分 級表單,其代碼如下“sele name=thisform.optio ngroup.value*判斷所選的內(nèi)容if sele name=1do form hospitalformbcg1*打開下級表單“病床管理”else do form hospitalformbrg1*打開下級表單“病人管理”ednif添加一個“退出”按鈕,功能為釋放本表單,激活系統(tǒng)主界面。其代碼如下:thisform.releasemain.en abled=.T.2.病人管理模塊設(shè)計(jì)該表單主要是為使用者提供對住院部病人的一覽,查詢,添加等具體功能。其設(shè)計(jì)思路如下:因功能較多,為了使一個表大
26、怒中能夠顯示大量的信息。本表單使用 PageFrame(頁框)控件,具體目標(biāo)如圖 5-10所示。表單中頁框共分為6個子頁面,分別為“一覽”,“簡單查詢”,“高級查詢”, 以及“添加”,“編輯”,“刪除”,使用者單擊各頁面標(biāo)題就可以進(jìn)入各個子頁面, 從而實(shí)現(xiàn)相應(yīng)的功能。(1) “一覽”子頁面用來顯示整個住院部的病人資料。缺省以記錄輸入順序 排序。表格內(nèi)顯示病人資料,當(dāng)使用者單擊列頭時,會根據(jù)該表中此列的順序重 新排列一個表格中的記錄。圖10病人管理界面(2) “簡單查詢”為使用者提供一個簡單的病人查詢方式一一由一個字段檢 索病人記錄。如“病人姓名”、“入院時間”、“所屬科室”、“主治醫(yī)生”和“病
27、房(3) “高級查詢”實(shí)際上就是可集合簡單查詢中提供的字段的內(nèi)容,可精簡 簡單查詢的結(jié)果,從而更快地得到病人信息。(4) 使用者可通過“添加”頁面提供的功能向病人的數(shù)據(jù)庫中添加新的記 錄。(5) “編輯”頁面中使用者可以編輯已經(jīng)存在的記錄。(6) 在“刪除”頁面中,提供了通過輸入病人姓名來刪除記錄的方式,同 時還可以刪除數(shù)據(jù)庫中空白的記錄。通過如下的步驟來實(shí)現(xiàn)上述功能:新建一個表單,存儲名為“ brgl” . 設(shè)置表單的各外觀參數(shù),如表10所示。表10病人管理界面參數(shù)屬性名值1說明CAPTION病人管理表單標(biāo)題WIDTH604表單寬HEIGHT454表單高ICON圖標(biāo)文件位置向表單中添加Pag
28、eFrame控件,將其PageCount (頁面數(shù))屬性設(shè)為6,即 共6個子頁面。各頁面的Caption屬性分別設(shè)為“一覽”、“簡單查詢”、“高級查 詢”、“添加”、“編輯”、“刪除”。在適當(dāng)位置添加Label控件,命名為“病人管 理”。單擊鼠標(biāo)右鍵,在Date Environment (數(shù)據(jù)環(huán)境)中添加表Patient。(1) “一覽”子頁面的設(shè)計(jì)步驟如下:拖動表Patient至表單中。將其加入到子頁面1中,結(jié)果如圖10所示。改動 表格中名列名稱,分別為“病人姓名”、“性別”、“入院時間”、“科室”、“病癥”、 “主治醫(yī)生”、“病房號”、“病床號”。調(diào)整各列寬至合適寬度,Alignment屬
29、性為 “2-Middle Center” (居中)。填寫各列頭的Click代碼。Column1 Header(病人姓名)Click 代碼:Set order to patie nt_na*以“病人姓名”為索引排列g(shù)o 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主治醫(yī)生)Click 代碼:Set order to patie nt_do*以“主治醫(yī)生”為索引排序go topthisform.pageframe1.page1.gr
31、dpatie nt.refreshColumn7 Header病房號)Click 代碼:Set order to patie nt_ro*以“病房號”為索引排序go topthisform.pageframe1.page1.grdpatie nt.refresh因不需要對“病癥”和“病床號”進(jìn)行排序,因此其Column Header的Click代碼不要填。另外,為防止對表格內(nèi)容進(jìn)行誤操作修改或刪除,將表格各Column的Text的Enabled屬性設(shè)為“ E”。(2)“簡單查詢”頁面的設(shè)計(jì)如圖11所示。圖11 “簡單查詢”子頁面本例中提供“病人姓名”、“入院時間”、“所屬科室”、“主治醫(yī)生”和
32、“病房 號”等5個字段可做查詢關(guān)鍵字。向表單中添加 OptionGroup控件,設(shè)置Button Count屬性為5。更改相應(yīng)的 Caption 屬性。添加按鈕“進(jìn)入查詢”,填寫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=。* 為防止誤操作,將不用的控件設(shè)為不可用。 這段代碼的功能是判斷使用者選擇的要查詢的字段, 將相應(yīng)的文本框變?yōu)榭?填寫,便于使用者操作。添加直線下各控件 TextlText5及Label控件,各Text的Enabled屬性設(shè)為 “.E. ” 注意 Text3 的 InputMask 及 Format屬性均設(shè)為“ 9999/99/99”,即按“年 / 月/日”的 格式輸 入和 讀出數(shù)據(jù) 。注意前面 在設(shè)置數(shù) 據(jù)庫的表 Patient 的 Patient_date_star字段的 InputMask 及
37、 Fromat屬性時也應(yīng)設(shè)為“ 9999/99/99”。這 樣設(shè)置以后, 使用者就只能在該文本框中輸入數(shù)字了, 如果輸入的不為數(shù)字, 則 系統(tǒng)拒絕接受。添加按鈕“顯示查詢結(jié)果” ,其 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 主治醫(yī)生,;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 *根據(jù)條件選擇出要顯示的字段 這段代碼的功能時將查詢到的符合條件的記錄羅列出來。 添加按鈕“重新查詢” ,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 *使選項(xiàng)組的狀態(tài)恢復(fù) 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. *使選項(xiàng)組為可用 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、使各文本框?yàn)榭捎?mand2.enabled=.F. mand3.enabled=.F. *將按鈕恢復(fù)不可用 這段代碼的功能時恢復(fù)查詢前的狀態(tài),重新輸入要查詢的字段。 (3)“高級查詢”中大多數(shù)內(nèi)容與“簡單查詢”頁面類似,如圖圖12 “高級查詢”子頁面 查詢的字段選擇改為CheckBox控件,共5個?!斑M(jìn)入查詢”按鈕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*依次檢查各復(fù)選框的值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.* 為防止誤操作,將不用的控件設(shè)為不可用注意各 CheckBox 的判斷和“簡單查詢”中的區(qū)別。其功能與“簡單查詢” 子頁面
47、中的相應(yīng)按鈕也有所區(qū)別。添加“顯示查詢結(jié)果”按鈕,其 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 主治醫(yī)生,; 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 *選擇出要顯示的字段 這個按鈕的功能與 “簡單查詢” 子頁面中相應(yīng)按鈕類似, 讀者可參閱前面的 內(nèi)容。添加“重新查詢”按鈕,其 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*將各復(fù)選框組件狀態(tài)恢復(fù)為未選狀態(tài) 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.*將各復(fù)選框組件變?yōu)榭捎脿顟B(tài) 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. *將各控件恢復(fù)至初始狀態(tài)(4)緊接這設(shè)計(jì)“添加”子頁面,界面如圖 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理系統(tǒng)?cMessageText=確定要添加嗎? ?n DialogType=4+32nAn swer=messagebox(cMessageText, nDialgType,cMessageTitle)*確定添加時給出的提示do casecase nAn swer=6set order to patie nt_naseek inn ame*檢查病人名是否重復(fù)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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版跨境股權(quán)轉(zhuǎn)讓委托代理合同范本3篇
- 二零二五版木模板工程保修服務(wù)合同4篇
- 二零二五年度新能源項(xiàng)目臨時駕駛員勞動合同4篇
- 2025年度汽車品牌推廣活動策劃合同
- 2025年度出租車行業(yè)特許經(jīng)營合同3篇
- 二零二五年度品牌形象策劃與品牌授權(quán)合同3篇
- 2025年生態(tài)園林人工草皮種植養(yǎng)護(hù)合作協(xié)議2篇
- 2025年度網(wǎng)絡(luò)安全防護(hù)服務(wù)合同范本-@-3
- 二零二五年度商業(yè)廣場盆景植物租賃與活動策劃協(xié)議3篇
- 2025年度互聯(lián)網(wǎng)企業(yè)三方合伙人投資協(xié)議書3篇
- 慈溪高一期末數(shù)學(xué)試卷
- 天津市武清區(qū)2024-2025學(xué)年八年級(上)期末物理試卷(含解析)
- 《徐霞客傳正版》課件
- 江西硅博化工有限公司年產(chǎn)5000噸硅樹脂項(xiàng)目環(huán)境影響評價
- 高端民用航空復(fù)材智能制造交付中心項(xiàng)目環(huán)評資料環(huán)境影響
- 量子醫(yī)學(xué)成像學(xué)行業(yè)研究報(bào)告
- DB22T 3268-2021 糧食收儲企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化評定規(guī)范
- 辦事居間協(xié)議合同范例
- 正念減壓療法詳解課件
- GB 30254-2024高壓三相籠型異步電動機(jī)能效限定值及能效等級
- 重大事故隱患判定標(biāo)準(zhǔn)與相關(guān)事故案例培訓(xùn)課件
評論
0/150
提交評論