• 沒有找到結果。

前端之應用程式製作 前端

在文檔中 醫療門診資訊系統 (頁 65-75)

第六章 系統製作

6.2 前端之應用程式製作 前端

7.mno 預存程序

CREATE PROCEDURE mno

@num datetime, @num1 varchar(10), @num2 varchar(10), @num3 integer

AS

select m_no from painting

where( @num = see_date ) and (@num1 = dep_name) and (@num2 = doctor_name) and (@num3 = paint_no)

GO

此預存程序從 painting 資了表中找出某一病人的藥單編號。

8.register 預存程序

CREATE PROCEDURE register

@num datetime, @num1 varchar(6), @num2 varchar(10), @num3 integer output

AS

select @num3 = max(see_no) from take

where (see_date = @num) and (block_time = @num1) and (dep_name =

@num2)

建立新專案

圖 6-3 建立新專案

如上圖所示,首先我們先要建立一個新專案,順序為開始→程式 集→Microsoft Visual Basic 6.0→Microsoft Visual Basic 6.0→選擇 Data Environment 專案。

建立主選單

圖 6-4 系統功能階層圖

圖 6-4 為系統功能階層圖,根據此圖來建立主選單,在專案視窗中→

選擇工具→選擇功能表編輯器,結果如圖 6-5:

圖 6-5 功能編輯器

標題鍵入掛號作業,名稱隨自己命名的方式,在此取名為 cust,按照 此原則依序建立診斷治療作業、員工管理、報表列印、系統維護,所 的結果如圖 6-6:

圖 6-6 編輯結果 建立 Form

根據系統功能階層圖,有掛號作業(病患資料管理、掛號)、診

斷治療作業(診斷資料維護)、員工管理(門診時間表管理、員工資 料維護)、報表列印(病患名冊、掛號清單)、系統維護,每一個功 能就是一個 Form,也就是一個視窗。

在系統設計階段提過使用者介面控制項,現在建立 Form 時正好 派上用場,使用的控制項有 textbox、 label、 combobox、datagrid 、 listbox、command button、option button。

1.門診時間表管理 Form,如圖 6-7:

圖 6-7 門診時間表管理 Form 2.員工資料維護 Form,如圖 6-8:

圖 6-8 員工資料維護 Form 3.掛號 Form,如圖 6-9:

圖 6-9 掛號 Form 4. 診斷治療 Form,如圖 6-10:

圖 6-10 診斷治療 Form 與資料庫中各資料表相連

在專案總管視窗中,點選設計師→點選 DataEnvironment1

圖 6-11 專案總管視窗

圖 6-12 點選 DataEnvironment1 之後畫面

圖 6-12 為點選之後出現的畫面,游標停在 connection1 按下滑屬右鍵

→屬性,如圖 6-13 所示:

圖 6-13 選擇資料庫引擎

提供者選擇 Microsoft OLE DB Provider for SQL Server,因為資料庫系 統是用 SQL Server,按下一步,出現如圖 6-14:

圖 6-14 選擇資料庫

此時鍵入資料庫伺服器名稱,再選擇所要連線的資料庫,按下測試連 線,沒問題則會顯示連線成功。

接 著 在 connection1 按下滑鼠右鍵→ 新增指令,此時會出現 command1,游標移至 command1 按下滑屬右鍵→屬性,出現如圖 6-15

所示:

Dim cn As New ADODB.Connection Dim rs1 As New ADODB.Recordset

Set cn = DataEnvironment1.Connection1 Set rs1 = DataEnvironment1.rsCommand1

rs1.Open "select * from take" , cn, adOpenDynamic, adLockOptimistic 第一行宣告 cn 是一個 connection 物件,第二行宣告 rs1 為 recordset

一個資料集。

第三行把 connection 物件指定為 cn,第四行 rsCommand1 即整個 take 資料表集指定為 rs1。

第五行使用 open 方法來開啟 recordset 資料表,其中 select * from take 是 SQL 語法,用" "包住這就是前面所說把 SQL 語法嵌入到應用程式 中。

adOpenDynamic 這是設定游標的型態(cursor type),可使 recordset 新增、修改、移動,cursor 是指向第幾筆資料。adLockOptimistic 主 要是預防多人同時做相同的動作如新增、修改、刪除時,必須要鎖定,

cn.BeginTrans

DataEnvironment1.rsCommand1.AddNew :

:

DataEnvironment1.rsCommand1.Update cn.CommitTrans

rs1.AddNew 表示新增一筆資料,BeginTrans 表示異動開始但暫不寫 入資料庫,直到 CommitTrans 才更新資料庫。

rs1.Update 表示修改資料表 cn.BeginTrans

DataEnvironment1.rsCommand1.Delete :

:

cn.CommitTrans

rs.Delete 表示刪除一筆記錄。

如何呼叫預存程序

在前端的應用程式中要如何呼叫後端的預存程序,這點滿重要 的,下面為 register 預存程序:

CREATE PROCEDURE register

@num datetime, @num1 varchar(6), @num2 varchar(10), @num3 integer output

AS

select @num3 = max(see_no) from take

where (see_date = @num) and (block_time = @num1) and (dep_name =

@num2) GO

前端應用程式呼叫預存程序 register 程式碼:

Dim cn As New ADODB.Connection

Dim cmd1 As ADODB.Command Dim param1 As ADODB.Parameter Set cmd1 = New ADODB.Command With cmd1

cmd1.CommandText = "register"

cmd1.CommandType = adCmdStoredProc

cmd1.ActiveConnection = DataEnvironment2.Connection1 Set param1 = New ADODB.Parameter

param1.Name = "@num"

param1.Type = adDate

param1.Value = DateSerial(Year(Date), Text1(3), Text1(4)) param1.Direction = adParamInput

cmd1.Parameters.Append param1 Set param1 = New ADODB.Parameter param1.Name = "@num1"

param1.Type = adVarChar param1.Size = 6

param1.Value = DataCombo1(1).Text param1.Direction = adParamInput cmd1.Parameters.Append param1 Set param1 = New ADODB.Parameter param1.Name = "@num2"

param1.Type = adVarChar param1.Size = 10

param1.Value = DataCombo1(0).Text param1.Direction = adParamInput cmd1.Parameters.Append param1 Set param1 = New ADODB.Parameter param1.Name = "@num3"

param1.Type = adInteger

param1.Direction = adParamOutput cmd1.Parameters.Append param1

cmd1.Execute

最前面三行宣告 cn為 connection物件,cmd1 為 command 物件,param1 是一個參數。

第四行把 command 物件指定給 cmd1

第 六 行 cmd1.CommandText = "register" 呼 叫 預 存 程 序 的 名 稱 為 register , 第 七 行 cmd1.CommandType = adCmdStoredProc 說 明 command 物件型態為一預存程序,第八行 cmd1.ActiveConnection = DataEnvironment2.Connection1 只連線的方式。

第九行 Set param1 = New ADODB.Parameter 把參數指定為 param1 第 十 行 param1.Name = "@num" 第 一 個 參 數 的 名 稱 , 第 十 一 行 param1.Type = adDate 只 參 數 的 資 料 型 態 為 一 日 期 , 第 十 二 行 param1.Value = DateSerial(Year(Date), Text1(3), Text1(4))所要傳入的 參數值,第十三行 param1.Direction = adParamInput 只這個參數為輸 入值。以此方式,後面幾個參數的寫法也是按照這種格式依樣畫葫蘆。

在文檔中 醫療門診資訊系統 (頁 65-75)

相關文件