freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)社區(qū)醫(yī)院藥品管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁(yè)

2024-12-03 17:57本頁(yè)面

【導(dǎo)讀】醫(yī)院藥品管理系統(tǒng)是專(zhuān)為醫(yī)院倉(cāng)庫(kù)的藥品進(jìn)銷(xiāo)存管理而設(shè)計(jì)的。此藥品管理系統(tǒng)能夠?yàn)橛脩?hù)提供充足的。信息和快捷的數(shù)據(jù)處理手段。使用計(jì)算機(jī)對(duì)藥品信息進(jìn)行管理,極大地提高醫(yī)院藥品流動(dòng)及庫(kù)。存管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理與世界接軌的體現(xiàn)。系統(tǒng)采用SQLServer2021和Delphi進(jìn)行設(shè)計(jì)。首先要進(jìn)行詳細(xì)的數(shù)據(jù)庫(kù)設(shè)計(jì),使每個(gè)數(shù)據(jù)表都有嚴(yán)格的規(guī)范,這樣在系統(tǒng)的設(shè)計(jì)。過(guò)程中可以根據(jù)不同的表進(jìn)行相應(yīng)的設(shè)計(jì)。然后進(jìn)行詳細(xì)的需求分析,畫(huà)系統(tǒng)的流程圖,把整。后,就可以對(duì)每個(gè)功能模塊進(jìn)行相應(yīng)的編程,直到整個(gè)系統(tǒng)設(shè)計(jì)完畢。本文所敘述的內(nèi)容以及程序代碼都是醫(yī)院藥品管理中的常見(jiàn)問(wèn)題。后臺(tái)使用大型關(guān)系數(shù)據(jù)庫(kù)SQLServer2021。此系統(tǒng)的設(shè)計(jì)特點(diǎn)是人機(jī)交互界面友好,

  

【正文】 立系統(tǒng)主窗體 系統(tǒng)主 窗體的設(shè)計(jì)界面如圖 41 所示。 圖 41 藥品進(jìn)銷(xiāo)存管理系統(tǒng)主界面 (1) 添加主窗體的 MainMenu 菜單和快捷按鈕對(duì)應(yīng)的事件,這些事件分別發(fā)打不同的模塊窗體。 (2) 添加主窗體的 GetADOConnStr 方法,此方法的功能適當(dāng)數(shù)據(jù)庫(kù)連接不存在時(shí)自動(dòng)彈出“數(shù)據(jù)庫(kù)連接屬性”對(duì)話框,用于設(shè)置數(shù)據(jù)庫(kù)連接字符串,并將連接信息保存在 INI 文件中。其代碼如下: procedure (FileName: string)。 var ADOConnStr: string。 begin ADOConnStr := 39。39。 try //動(dòng)態(tài)加載 DLL,DLL中包含了讀取 INI 文件的函數(shù) if ReadIni(FileName,39。BDConn39。,39。DBConFileName39。) = 39。39。 then begin 19 //彈出 UDL 連接數(shù)據(jù)窗體 ADOConnStr := PromptDataSource(, )。 WriteIni(FileName,39。BDConn39。,39。DBConFileName39。,ADOConnStr)。 end else ADOConnStr := ReadIni(FileName,39。BDConn39。,39。DBConFileName39。)。 finally try 。 := ADOConnStr。 。 except (39。連接數(shù)據(jù)庫(kù)失敗 !39。,39。提示 39。,16)。 WriteIni(FileName,39。BDConn39。,39。DBConFileName39。,39。39。)。 end。 end。 end。 (3) 添加主窗體的 OnShow 事件,此事件的功能是啟動(dòng)主程序時(shí)調(diào)用數(shù)據(jù)庫(kù)連接方法,然后顯示登陸窗體。其代碼如下: procedure (Sender: TObject)。 begin //連接數(shù)據(jù)庫(kù) GetADOConnStr(FileName)。 //登錄窗體的現(xiàn)實(shí) frmLogin := (Self)。 。 procedure (FileName: string)。 var ADOConnStr: string。 begin ADOConnStr := 39。39。 try //動(dòng)態(tài)加載 DLL,DLL中包含了讀取 INI 文件的函數(shù) if ReadIni(FileName,39。BDConn39。,39。DBConFileName39。) = 39。39。 then 20 begin //彈出 UDL 連接數(shù)據(jù)窗體 ADOConnStr := PromptDataSource(, )。 WriteIni(FileName,39。BDConn39。,39。DBConFileName39。,ADOConnStr)。 end else ADOConnStr := ReadIni(FileName,39。BDConn39。,39。DBConFileName39。)。 finally try 。 := ADOConnStr。 。 except (39。連接數(shù)據(jù)庫(kù)失敗 !39。,39。提示 39。,16)。 WriteIni(FileName,39。BDConn39。,39。DBConFileName39。,39。39。)。 end。 end。 end。 創(chuàng)建公用單元 通過(guò)公用單元來(lái)調(diào)用存儲(chǔ)過(guò)程,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。公用單元主要實(shí)現(xiàn)調(diào)用存儲(chǔ)過(guò)程打開(kāi)數(shù)據(jù)集,執(zhí)行 SQL 語(yǔ)句更新數(shù)據(jù)庫(kù)信息和通過(guò) SQL 語(yǔ)句查詢(xún)信息等。公用單元中函數(shù)和方法的功能描述如下所示。 (1) WriteIni 方法:將數(shù)據(jù)字符串保存在初始化 INI 文件中。 (2) ReadIni 函數(shù):初始化數(shù)據(jù)庫(kù)連接并保存連接。 (3) FileName 函數(shù):用于獲取 初始化文件路徑。 (4) OpenDataSQL 方法:通過(guò)傳入指定的 SQL 語(yǔ)句打開(kāi)數(shù)據(jù)集。 (5) FindSQL 函數(shù):執(zhí)行 SQL 語(yǔ)句,查詢(xún)數(shù)據(jù)。 (6) ExecSQL 方法:用于執(zhí)行插入、更新或刪除等數(shù)據(jù)庫(kù)操作。 用戶(hù)登錄 此模塊通過(guò)驗(yàn)證用戶(hù)的編號(hào)和密碼來(lái)實(shí)現(xiàn)用戶(hù)登錄功能。 “用戶(hù)登錄”窗體,主要用于驗(yàn)證用戶(hù)編號(hào)和密碼的合法性并登錄主系統(tǒng)。 21 為了實(shí)現(xiàn)這些功能,需要如下控件: 1 個(gè) TImage 控件,顯示登錄畫(huà)面; 2 個(gè) TBitBtn 控件,裝載按鈕圖片,分別執(zhí)行登錄和放棄功能; 2 個(gè) TEdit 控件, 分別顯示用戶(hù)輸入的用戶(hù)編碼和密碼; 2 個(gè) TLabel 控件,顯示用戶(hù)提示信息; 1 個(gè) TADOQuery 控件 , 獲取用戶(hù)登陸權(quán)限。 窗體的設(shè)計(jì)界面如圖 42 所示。 圖 42 用戶(hù)登錄界面 (1) 在“ proc_Base”存儲(chǔ)過(guò)程中添加判斷用戶(hù)登錄和用戶(hù)權(quán)限的 SQL 語(yǔ)句。 (2) 添加“登錄”按鈕的單擊事件,此事件的功能首先是調(diào)用 proc Base 存儲(chǔ)過(guò)程中的判斷用戶(hù)登錄方法,當(dāng)用戶(hù)登錄成功后判斷用戶(hù)所擁有的模塊權(quán)限,通過(guò)權(quán)限來(lái)控制菜單模塊是否可以使用。 (3) 添加“放棄”按鈕的單擊事件,此事件的功能是放棄登 錄并關(guān)閉應(yīng)用程序。 (4) 添加 edtUserID 控件的 OnKeyPress 事件,使用回車(chē)鍵控制光標(biāo)的焦點(diǎn)。 用戶(hù)設(shè)置 用戶(hù)設(shè)置模塊實(shí)現(xiàn)了系統(tǒng)用戶(hù)維護(hù)功能。 “用戶(hù)設(shè)定”窗體主要實(shí)現(xiàn)對(duì)“藥品進(jìn)銷(xiāo)存管理系統(tǒng)”中的使用者進(jìn)行管理,其中包含了用戶(hù)編號(hào)、用戶(hù)姓名和初始密碼以及備注等基本信息。 為了實(shí)現(xiàn)這些功能,需要如下控件: 1 個(gè) TDBGrid 控件,顯示用戶(hù)信息; 4 個(gè) TBitBtn 控件,裝載按鈕圖片,分別執(zhí)行添加、修改、刪除和保存功能; 2 個(gè) TDBEdit 控件,分別顯示用戶(hù)輸入的用戶(hù)名稱(chēng)和密碼; 1 個(gè) TADOQuery 控件,數(shù)據(jù)查詢(xún)控件,用來(lái)執(zhí)行 SQL 語(yǔ)句,查詢(xún)用戶(hù)數(shù)據(jù); 1 個(gè) TDBText 控件,用于顯示登陸編號(hào)信息; 1 個(gè) TDataSource 控件,數(shù)據(jù)源控件。 窗體的設(shè)計(jì)界面如圖 43 所示。 22 圖 43 “用戶(hù)設(shè)定”窗體 (1) 向存儲(chǔ)過(guò)程 proc_Base 中添加一段用于檢查用戶(hù)編號(hào)是否存在的 SQL 語(yǔ)句。其代碼如下: if @Flag=39。Select_LoginID_Max39。 藥商的最大編號(hào) begin Select ISNULL(Max(LoginID), @LoginID) + 1 as LoginID From [User] end (2) 依次添加“添加”、“修改”、“刪除”和“保存”按鈕的單擊事件,這些事件的功能主要是對(duì)數(shù)據(jù)庫(kù)執(zhí)行添加、刪除、修改、保存等基本的數(shù)據(jù)庫(kù)操作。其代碼如下: procedure (Sender: TObject)。 var SQLMaxID, MaxID, LoginID: string。 begin 。 LoginID := 39。100039。 SQLMaxID := 39。Exec proc_Base @Flag=39。39。Select_LoginID_Max39。39。39。 + 39。,@LoginID=39。 + Quotedstr(LoginID)。 //調(diào)用存儲(chǔ)過(guò)程 OpenDataSQL(, SQLMaxID)。 //執(zhí)行 SQL 語(yǔ)句的過(guò)程 MaxID := (39。LoginID39。).AsString。 23 := MaxID。 (39。LoginID39。).AsString := MaxID。 end。 procedure (Sender: TObject)。 begin 。 end。 procedure (Sender: TObject)。 begin if (39。確定要?jiǎng)h除此條記錄嗎 ?39。,39。提示 39。,68) = IDNo then Exit。 。 。 end。 procedure (Sender: TObject)。 begin if in [dsInsert,dsEdit] then 。 end。 (3)在窗體的 OnShow 事件中調(diào)用公用單元的 OpenDataSQL 方法打開(kāi)用戶(hù)信息表數(shù)據(jù)集。其代 碼如下所示。 procedure (Sender: TObject)。 begin OpenDataSQL(qryUser, 39。Select * From [User]39。)。 end。 (4)在窗體的 OnClose 事件中釋放窗體實(shí)例。 權(quán)限設(shè)置 此模塊實(shí)現(xiàn)了設(shè)置系統(tǒng)使用者權(quán)限的功能。 “權(quán)限設(shè)定”窗體主要實(shí)現(xiàn)對(duì)用戶(hù)進(jìn)行權(quán)限管理,控制用戶(hù)在藥品進(jìn)銷(xiāo)存管理系統(tǒng)中擁有的權(quán)限。 24 為了實(shí)現(xiàn)這些功能,需要如下控件: 1 個(gè) TTreeView 控件,用來(lái)顯示用戶(hù)信息的樹(shù)形 列表; 2 個(gè) TBitBtn 控件,確定和取消權(quán)限操作按鈕; 1 個(gè) TCheckListBox 控件,權(quán)限列表框; 1 個(gè) TADOQuery 控件,用于獲取數(shù)據(jù)集。 窗體的設(shè)計(jì)界面如圖 44 所示。 圖 44 權(quán)限設(shè)定 (1) 添加窗體的 OnShow 事件,此事件的功能主要是當(dāng)窗體打開(kāi)時(shí)初始化TCheckListBox 控件和 TTreeView 控件,分別顯示權(quán)限列表和當(dāng)前系統(tǒng)中的用戶(hù)信息。 (2) 添加“權(quán)限列表”的單擊事件,此事件的功能主要是當(dāng)選擇某一用戶(hù)是調(diào)用存儲(chǔ)過(guò)程,查詢(xún)處當(dāng)前用戶(hù)所擁有的權(quán)限并顯示在列表框中。 更改密碼 “更改密碼”窗體主要實(shí)現(xiàn)對(duì)當(dāng)前已經(jīng)登錄了的用戶(hù)修改密碼。用戶(hù)通過(guò)輸入原密碼,再通過(guò)一次輸入新密碼,之后再一次確認(rèn)輸入新密碼,來(lái)更改之前所使用的密碼。 為了實(shí)現(xiàn)這些功能,需要如下控件: 2 個(gè) TBitBtn 控件,分別用來(lái)保存數(shù)據(jù)和關(guān)閉模塊窗體; 3 個(gè) TEdit 控件,分別用來(lái)輸入“原密碼”、“新密碼”和“確認(rèn)新密碼”; 5 個(gè) TLabel 控件,顯示信息描述簡(jiǎn)介; 1 個(gè) TADOQuery 控件,用于獲取數(shù)據(jù)集。 窗體的設(shè)計(jì)界面如圖 45 所示。 25 圖 45 更改密碼 (1) 向“ proc_Base”存 儲(chǔ)過(guò)程中添加更新密碼的 SQL 語(yǔ)句。其實(shí)現(xiàn)代碼如下: (2) 添加“確定”按鈕的單擊事件,此事件的功能主要是調(diào)用“ proc_Base”存儲(chǔ)過(guò)程中修改密碼的 SQL 語(yǔ)句,通過(guò)傳入制定的用戶(hù)編號(hào)和密碼來(lái)實(shí)現(xiàn)密碼修改。其實(shí)現(xiàn)代碼如下: if @Flag1 =39。Password39。 修改密碼的時(shí)候 begin update [User] set [Password] = @Pass where LoginID=@LoginID end end (3) 添加窗體的 OnShow 事件,此事件的功能主要是 顯示當(dāng)前登錄的用戶(hù)的編號(hào)信息。添加窗體的 OnClose 事件和“取消”按鈕的單擊事件,這兩個(gè)事件分別用來(lái)釋放窗體實(shí)例和關(guān)閉窗體。 藥品字典 “藥品字典維護(hù)”窗體主要用于藥品基本信息的建立和維護(hù)。 為了實(shí)現(xiàn)這些功能,需要如下控件: 1 個(gè) TDBGrid 控件,用來(lái)顯示數(shù)據(jù)表格; 5 個(gè) TBitBtn 控件,分別用來(lái)實(shí)現(xiàn)添加、修改、刪除、保存和取消操作; 3 個(gè) TDBEdit 控件,用來(lái)輸入或顯示數(shù)據(jù)字段值; 1 個(gè) TDBText 控件,用于顯示編號(hào)信息; 2 個(gè) TComboBox 控件,用來(lái)選擇藥品單位和藥品類(lèi)型; 9 個(gè) TLabel 控件,顯示信息描述簡(jiǎn)介; 3 個(gè) TDBMemo 控件,用來(lái)輸入或顯示 藥品描述,用法, 備注信息 ; 1 個(gè) TDataSource 控件,數(shù)據(jù)源控件; 26 1 個(gè) TADOQuery 控件,用于獲取數(shù)據(jù)集。 窗體的設(shè)計(jì)界面如圖 46 所示。 圖 46 藥品字典維護(hù) (1) 添加窗體的 OnShow 事件,在此事件中調(diào)用公用單元的 OpenDataSQL 方法,通過(guò)傳入指定的 SQL 語(yǔ)句打開(kāi)藥品字典數(shù)據(jù)集。添加窗體的 OnClose 事件,其主要功能是釋放窗體實(shí)例。 (2) 依次添加“添加”、“修改”、“刪除”、“保存”和“取消”按 鈕的單擊事件,這些事件的功能主要是對(duì)數(shù)據(jù)庫(kù)執(zhí)行添加、刪除、修改、保存等基本的數(shù)據(jù)庫(kù)操作。 (3) 添加 edtChangeRate 控件的 OnKeyPress 事件,此事件限制了在 edtChangeRat
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1