明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

醫(yī)院管理系統(tǒng)(HIS)應(yīng)用設(shè)計(jì)

[摘要]這里我們介紹醫(yī)院管理系統(tǒng)HIS的應(yīng)用設(shè)計(jì),它包括醫(yī)院門(mén)診時(shí)間表線上查詢系統(tǒng)、線上醫(yī)院預(yù)約掛號(hào)系統(tǒng)等應(yīng)用的點(diǎn)子、設(shè)計(jì)實(shí)例、以及詳細(xì)解說(shuō),讓您快速地設(shè)計(jì)出各種醫(yī)院的網(wǎng)站應(yīng)用。醫(yī)院網(wǎng)站資料庫(kù)應(yīng)用醫(yī)院使用網(wǎng)...

這里我們介紹醫(yī)院管理系統(tǒng)HIS的應(yīng)用設(shè)計(jì),它包括醫(yī)院門(mén)診時(shí)間表線上查詢系統(tǒng)、線上醫(yī)院預(yù)約掛號(hào)系統(tǒng)等應(yīng)用的點(diǎn)子、設(shè)計(jì)實(shí)例、以及詳細(xì)解說(shuō),讓您快速地設(shè)計(jì)出各種醫(yī)院的網(wǎng)站應(yīng)用。

醫(yī)院網(wǎng)站資料庫(kù)應(yīng)用
醫(yī)院使用網(wǎng)站資料庫(kù),可以透過(guò)Internet、或Intranet提供以下的應(yīng)用∶
* 線上查詢醫(yī)院門(mén)診時(shí)間表*
* 線上醫(yī)院預(yù)約掛號(hào)*
右上角標(biāo)示*的應(yīng)用,本節(jié)將提供設(shè)計(jì)的范例,并詳加解說(shuō)。
執(zhí)行本章資料庫(kù)的范例,所用的資料庫(kù)可為Microsoft Access、Microsoft SQL Server、或Text檔案(讀者可修改成其他支援ODBC的資料庫(kù),詳見(jiàn)1-5節(jié)),須於NT安裝IIS 3.0,并於「控制臺(tái)」中的「ODBC」,新建一個(gè)名稱為「BookSamp」的資料來(lái)源,驅(qū)動(dòng)程式為「Microsoft Access Driver」、「SQL Server」、或「Microsoft Text 驅(qū)動(dòng)程式」。詳見(jiàn)附錄 范例磁片。

1
醫(yī)院門(mén)診時(shí)間表線上查詢系統(tǒng)
「醫(yī)院門(mén)診時(shí)間表線上查詢系統(tǒng)」,可以透過(guò)Internet,查詢醫(yī)院門(mén)診時(shí)間表。
一般的醫(yī)院,每月會(huì)提供一張新的醫(yī)院門(mén)診時(shí)間表?床〉娜丝梢酝高^(guò)Internet,連線上醫(yī)院的「醫(yī)院門(mén)診時(shí)間表線上查詢系統(tǒng)」,即可線上查詢新的醫(yī)院門(mén)診時(shí)間表。
設(shè)計(jì)實(shí)例
讓我們執(zhí)行一個(gè)實(shí)例。
( 范例 data7.asp 醫(yī)院門(mén)診時(shí)間表線上查詢
若要查詢門(mén)診時(shí)間表,於用戶端使用瀏覽器,瀏覽本書(shū)所附安裝於網(wǎng)站伺服器的data7.asp,即可顯示查詢的結(jié)果如下,包括科別、星期一~星期六的門(mén)診醫(yī)師姓名∶ 

設(shè)計(jì)實(shí)例詳細(xì)解說(shuō)
建立資料表
首先使用Microsoft Access、Microsoft SQL Server 、Text檔案、或任何一種支援ODBC的資料庫(kù),建立一個(gè)資料表HospitalSchedule。
於欄名CLASS、A1~A6分別輸入科別、星期一~星期六的門(mén)診醫(yī)師姓名。
使用Microsoft Access建立一個(gè)資料表HospitalSchedule,如下∶ 
或使用Microsoft SQL Server建立一個(gè)資料表HospitalSchedule,如下∶ 
或使用Text檔案建立一個(gè)資料表HospitalSchedule,如下∶ 

查詢資料庫(kù)
接著,網(wǎng)站伺服器執(zhí)行data7.asp檔案,使用「Server.CreateObject」建立連線的物件,并使用「Open」開(kāi)啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,設(shè)定SQL指令,查詢HospitalSchedule的資料,下個(gè)「Execute」指令,即可開(kāi)始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
程式碼如下∶
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM HospitalSchedule"
Set RS = Conn.Execute(SQL)
接著,要顯示查詢的結(jié)果了。首先,由「 IF RS.EOF THEN ...」判斷是否找到HospitalSchedule的資料,若RS.EOF為T(mén)RUE,則顯示「本月無(wú)門(mén)診」。
程式碼,如下∶
查詢結(jié)果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#FF0000">本月無(wú)門(mén)診</FONT>
若找到HospitalSchedule的資料,則顯示科別、星期一~星期六的門(mén)診醫(yī)師姓名,分別由RecordSets物件的RS(0)、RS(1) ~RS(6) 取得。
RS.Fields.Count表示RecordSets物件的欄位數(shù),由「For i = 0 to RS.Fields.Count - 1」取得RS(i) 各欄位的資料。配合<TABLE>表格的HTML語(yǔ)法,將結(jié)果填入表格的各欄位當(dāng)中。
若還有下一筆資料,使用RS.MoveNext移到下一筆的位置。
程式碼,如下∶
<% ELSE %>
<FONT COLOR="#0000ff">本月份 門(mén)診時(shí)間表如下:</FONT> 
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期一</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期二</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期三</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期四</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期五</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期六</FONT></TD> 
</TR>
<% Do While Not RS.EOF %>
<TR> 
<% For i = 0 to RS.Fields.Count - 1 %>
<% If LEFT(RS(i).Name,1) = "W" Then %>
<TD BGCOLOR="f7efde" ALIGN=CENTER>
<FONT COLOR="#0000"><%= RS(i) %></FONT></TD> 
<% Else %>
<TD ALIGN=CENTER BGCOLOR="#800000">
<FONT><%= RS(i) %></FONT></TD>
<% END IF %>
<% Next %>
</TR> 
<%
RS.MoveNext
Loop
RS.Close
Conn.Close
%>
</TABLE> 
<% END IF %>
最後,使用RS.Close關(guān)閉RecordSet,使用Conn.Close關(guān)閉資料庫(kù)。
全部的程式碼,如下∶
<HTML>
<HEAD>
<TITLE>醫(yī)院門(mén)診時(shí)間表 線上查詢系統(tǒng)</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=big5">
</HEAD>
<CENTER>
<BODY BGCOLOR=#FFFFFF>
<FONT SIZE=+2 COLOR="#0000FF">醫(yī)院門(mén)診時(shí)間表 線上查詢系統(tǒng)</FONT> 
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM HospitalSchedule"
Set RS = Conn.Execute(SQL)
%>
<HR> 
查詢結(jié)果:<br>
<% IF RS.EOF THEN %>
<FONT COLOR="#FF0000">本月無(wú)門(mén)診</FONT> 
<% ELSE %>
<FONT COLOR="#0000ff">本月份 門(mén)診時(shí)間表如下:</FONT> 
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期一</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期二</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期三</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期四</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期五</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>星期六</FONT></TD> 
</TR>
<% Do While Not RS.EOF %>
<TR> 
<% For i = 0 to RS.Fields.Count - 1 %>
<% If LEFT(RS(i).Name,1) = "W" Then %>
<TD BGCOLOR="f7efde" ALIGN=CENTER>
<FONT COLOR="#0000"><%= RS(i) %></FONT></TD> 
<% Else %>
<TD ALIGN=CENTER BGCOLOR="#800000">
<FONT><%= RS(i) %></FONT></TD>
<% END IF %> 
<% Next %>
</TR>
<%
RS.MoveNext
Loop
RS.Close
Conn.Close
%>
</TABLE> 
<% END IF %> 
<HR>
</CENTER>
</BODY>
</HTML>

2
線上醫(yī)院預(yù)約掛號(hào)系統(tǒng)
「線上醫(yī)院預(yù)約掛號(hào)系統(tǒng)」,可以透過(guò)Internet,完成醫(yī)院預(yù)約掛號(hào)的手續(xù)。
一般的醫(yī)院,提供排隊(duì)、人工接聽(tīng)電話、或語(yǔ)音系統(tǒng)等多種預(yù)約掛號(hào)的方式。透過(guò)Internet,現(xiàn)在可以提供比較豐富、生動(dòng)的預(yù)約掛號(hào)方式。
看病的人可以透過(guò)Internet,連線上醫(yī)院的「線上醫(yī)院預(yù)約掛號(hào)系統(tǒng)」,在電腦上輸入病歷號(hào)碼(或身分證號(hào)碼),再輸入要預(yù)約的科別、醫(yī)師、預(yù)約日期、和上下午夜間,即可完成預(yù)約掛號(hào)的手續(xù)。
掛號(hào)系統(tǒng)將告訴您掛幾號(hào)的看診順序,并自動(dòng)統(tǒng)計(jì)每一個(gè)門(mén)診的預(yù)約人數(shù),若超過(guò)名額,將自動(dòng)告之,要求預(yù)約其他的時(shí)間。
預(yù)約時(shí),預(yù)約系統(tǒng)提供可以增加、取消、查詢預(yù)約的功能。
看病的人并可線上查詢醫(yī)院門(mén)診時(shí)間表、醫(yī)師簡(jiǎn)介、用藥須知、健康新知、醫(yī)院活動(dòng)、醫(yī)院地址等資訊。
掛號(hào)系統(tǒng)將自動(dòng)印出所預(yù)約的每日掛號(hào)表,以供醫(yī)院相關(guān)部門(mén)準(zhǔn)備病歷表。
設(shè)計(jì)實(shí)例
讓我們執(zhí)行一個(gè)實(shí)例。
( 范例 data12.asp 線上醫(yī)院預(yù)約掛號(hào)
若要線上預(yù)約醫(yī)院掛號(hào),於用戶端使用瀏覽器,瀏覽本書(shū)所附安裝於網(wǎng)站伺服器的data12.asp,於「科別」處選擇科別如內(nèi)科,於「病歷號(hào)碼」處輸入病歷號(hào)碼如123456後,於「看診日期」處輸入看診日期如870701後,按下「預(yù)約掛號(hào)」按鈕,即可顯示預(yù)約掛號(hào)的結(jié)果如下,包括病歷號(hào)碼、看診日期、科別、看診順序∶ 
預(yù)約醫(yī)院掛號(hào)時(shí),若預(yù)約的診次已經(jīng)預(yù)約過(guò),則重覆預(yù)約相同的診次將顯示「已經(jīng)預(yù)約掛號(hào)」如下∶ 
預(yù)約醫(yī)院掛號(hào)時(shí),若超過(guò)診次的100個(gè)名額時(shí),則顯示「預(yù)約掛號(hào)已滿」如下∶ 
取消預(yù)約掛號(hào)
預(yù)約醫(yī)院掛號(hào)後,可以取消所預(yù)約的掛號(hào),於「選修課程」處選擇待取消選修課程如婚姻學(xué),於「科別」處選擇科別如神經(jīng)科,於「病歷號(hào)碼」處輸入病歷號(hào)碼如123456後,於「看診日期」處輸入看診日期如870701後,按下「取消預(yù)約掛號(hào)」按鈕,即可顯示取消預(yù)約掛號(hào)的結(jié)果如下∶ 
若待取消的診次尚未預(yù)約過(guò),則取消預(yù)約掛號(hào)時(shí)顯示「尚未預(yù)約掛號(hào)」如下∶ 
查詢預(yù)約掛號(hào)
預(yù)約醫(yī)院掛號(hào)後,可以查詢所有預(yù)約的診次,僅須於「病歷號(hào)碼」處輸入病歷號(hào)碼如123456後,按下「查詢預(yù)約掛號(hào)」按鈕,即可顯示查詢預(yù)約掛號(hào)的結(jié)果如下∶ 
查詢預(yù)約掛號(hào)時(shí),若尚未預(yù)約掛號(hào),則查詢預(yù)約掛號(hào)時(shí)將顯示「尚未預(yù)約掛號(hào)」如下∶ 
門(mén)診時(shí)間表
按下「門(mén)診時(shí)間表」按鈕,即可顯示門(mén)診時(shí)間表如下∶ 

設(shè)計(jì)實(shí)例詳細(xì)解說(shuō)
建立資料表
首先使用Microsoft Access、Microsoft SQL Server 、Text檔案、或任何一種支援ODBC的資料庫(kù),建立一個(gè)資料表HospitalCount,儲(chǔ)存一個(gè)診次的預(yù)約掛號(hào)人數(shù)、和最後看診順序。
這個(gè)資料表系供預(yù)約掛號(hào)和取消預(yù)約掛號(hào)時(shí),記錄預(yù)約掛號(hào)人數(shù)、和最後看診順序號(hào)碼之用。建立欄位TOTAL、COUNT0、DATE0、CLASS,分別代表一個(gè)診次的預(yù)約掛號(hào)人數(shù)、最後看診順序號(hào)碼、預(yù)約日期、科別名稱。建立資料表時(shí)不必輸入資料。
使用Microsoft Access建立一個(gè)資料表HospitalCount,如下∶ 
或使用Microsoft SQL Server建立一個(gè)資料表HospitalCount,如下∶ 
或使用Text檔案建立一個(gè)資料表HospitalCount,如下∶ 
尚需要建立另一個(gè)資料表HospitalReserve,儲(chǔ)存預(yù)約掛號(hào)的記錄,建立欄位ID、COUNT0、DATE0、CLASS,分別代表一筆預(yù)約掛號(hào)記錄的病歷號(hào)碼、看診順序號(hào)碼、預(yù)約日期、科別名稱。
這個(gè)資料表系供預(yù)約掛號(hào)、查詢預(yù)約掛號(hào)、和取消預(yù)約掛號(hào)時(shí),記錄預(yù)約診次、和看診順序之用。
建立資料表時(shí)不必輸入資料。
使用Microsoft Access建立一個(gè)資料表HospitalReserve,如下∶ 
或使用Microsoft SQL Server建立一個(gè)資料表HospitalReserve,如下∶ 
或使用Text檔案建立一個(gè)資料表HospitalReserve,如下∶ 

設(shè)計(jì)輸入的表單
接著,設(shè)計(jì)輸入的表單form,當(dāng)病患選擇科別CLASS1,輸入病歷號(hào)碼ID1,看診日期DATE1,按下「預(yù)約掛號(hào)」等按鈕submit時(shí),即使用POST的方式將輸入資料傳送到網(wǎng)站伺服器,并執(zhí)行於「form action=...」所設(shè)定的data12.asp檔案(與form為同一個(gè)ASP檔案),程式碼如下∶
預(yù)約掛號(hào), 請(qǐng)輸入以下資料 (初診者以身分證字號(hào)代替病歷號(hào)碼):<br>
<form action="data12.asp" method="post">
<FONT COLOR="#FF8080">■ </FONT>科別:
<select name="CLASS1">
<OPTION SELECTED>內(nèi)科
<OPTION>神經(jīng)科
<OPTION>小兒科
<OPTION>外科
<OPTION>婦產(chǎn)科
<OPTION>耳鼻喉科
<OPTION>眼科
<OPTION>皮膚科
</select>
<br>
<FONT COLOR="#FF8080">■ </FONT>病歷號(hào)碼 (如123456): 
<INPUT TYPE=TEXT VALUE="123456" NAME="ID1" SIZE=10><BR>
<FONT COLOR="#FF8080">■ </FONT>看診日期 (如87年7月1日請(qǐng)輸入870701): 
<INPUT TYPE=TEXT VALUE="870701" NAME="DATE1" SIZE=6><BR> 
<INPUT TYPE=submit VALUE="預(yù)約掛號(hào)" name="Action">
<INPUT TYPE=submit VALUE="取消預(yù)約掛號(hào)" name="Action"><br>
<INPUT TYPE=submit VALUE="查詢預(yù)約掛號(hào)" name="Action"> 僅須填入病歷號(hào)碼<br>
</form> 
<form>
<INPUT TYPE=button VALUE="門(mén)診時(shí)間表" OnClick="location.href='data7.asp'">
</form>
若按了「門(mén)診時(shí)間表」按鈕時(shí),將執(zhí)行data7.asp,以顯示門(mén)診時(shí)間表。
網(wǎng)站伺服器執(zhí)行data12.asp檔案,首先經(jīng)由Request.Form("Action")取得所按submit按鈕上的顯示文字VALUE,Left(Request.Form("Action"),2)系只取前兩個(gè)中文字,若Request.Form("Action")非空白時(shí),表示為表單輸入所呼叫執(zhí)行。
由「SELECT CASE Left(Request.Form("Action"),2) 」判斷是按了那個(gè)按鈕。若按鈕上前兩個(gè)字為「預(yù)約」時(shí),則執(zhí)行AddReserve() 副程式;若為「取消」時(shí),則執(zhí)行DeleteReserve() 副程式;若為「查詢」時(shí),則執(zhí)行CheckReserve() 副程式。
<%
SELECT CASE Left(Request.Form("Action"),2)
CASE "預(yù)約"
AddReserve()
CASE "取消"
DeleteReserve()
CASE "查詢"
CheckReserve()
END SELECT
%>
預(yù)約掛號(hào)
按了「預(yù)約掛號(hào)」按鈕時(shí),將執(zhí)行AddReserve() 副程式。
首先,使用「Server.CreateObject」建立連線的物件,并使用「Open」開(kāi)啟待存取查詢資料庫(kù)BookSamp。
再尋找所待新增的預(yù)約掛號(hào)記錄,以檢查是否已經(jīng)預(yù)約過(guò),使用SELECT的SQL指令查詢資料庫(kù)的資料,於HospitalReserve資料表,設(shè)定SQL指令,查詢病歷號(hào)碼欄位ID符合所輸入Request.Form("ID1"),看診日期欄位DATE0符合所輸入Request.Form("DATE1"),和科別欄位CLASS符合所選擇Request.Form("CLASS1")的資料,下個(gè)「Execute」指令,即可開(kāi)始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
程式碼如下∶
Sub AddReserve()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa","" 
SQL = "SELECT * FROM HospitalReserve WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'" 
Set RS = Conn.Execute(SQL)
接著,要顯示執(zhí)行的結(jié)果了。
首先於HospitalReserve資料表,尋找預(yù)約掛號(hào)的記錄,由「IF RS.EOF THEN ...」判斷是否找到病歷號(hào)碼欄位ID符合所輸入Request.Form("ID1"),看診日期欄位DATE0符合所輸入Request.Form("DATE1"),和科別欄位CLASS符合所選擇Request.Form("CLASS1")的資料。
若RS.EOF為T(mén)RUE,表示尚未預(yù)約掛號(hào),再尋找所待預(yù)約掛號(hào)的診次是否已經(jīng)有人預(yù)約掛號(hào)過(guò)。於HospitalCount資料表,設(shè)定SQL指令,查詢看診日期欄位DATE0符合所輸入Request.Form("DATE1"),和科別欄位CLASS符合所選擇Request.Form("CLASS1")的資料。若RS.EOF為T(mén)RUE,表示此診次尚未有人預(yù)約掛號(hào)過(guò),則於HospitalCount資料表,使用「INSERT INTO...」指令新增一筆資料。此筆新增資料的預(yù)約掛號(hào)人數(shù)欄位TOTAL、和最後看診順序號(hào)碼欄位COUNT0都設(shè)定為1,科別欄位CLASS設(shè)定為Request.Form("CLASS1"),日期欄位DATE0設(shè)定為Request.Form("DATE1")。
然後再於HospitalReserve資料表,使用「INSERT INTO...」指令新增一筆資料。此筆新增資料的看診順序號(hào)碼欄位COUNT0為1,病歷號(hào)碼欄位ID為Request.Form("ID1"),科別欄位CLASS設(shè)定為Request.Form("CLASS1"),日期欄位DATE0設(shè)定為Request.Form("DATE1")。
顯示執(zhí)行的結(jié)果時(shí),配合<TABLE>表格的HTML語(yǔ)法,將結(jié)果填入表格的各欄位當(dāng)中。程式碼,如下∶
<FONT COLOR="#0000FF">預(yù)約掛號(hào)結(jié)果:</FONT><br>
<% 
IF RS.EOF THEN 
RS.Close 
SQL = "SELECT * FROM HospitalCount WHERE DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'"
Set RS = Conn.Execute(SQL) 
IF RS.EOF THEN
'此科次尚未有人預(yù)約掛號(hào) ! 於HospitalCount新增一筆
SQL = "INSERT INTO HospitalCount(COUNT0, TOTAL, DATE0, CLASS) VALUES(1,1,'" & Request.Form("DATE1") & "','" & LEFT(Request.Form("CLASS1"),2) & "')"
Set RS = Conn.Execute(SQL) 
'HospitalReserve新增一筆
SQL = "INSERT INTO HospitalReserve(COUNT0, ID, DATE0, CLASS) VALUES(1,'" & Request.Form("ID1") & "','" & Request.Form("DATE1") & "','" & LEFT(Request.Form("CLASS1"),2) & "')" 
Set RS = Conn.Execute(SQL)
%> 
<FONT COLOR="#0000FF">預(yù)約掛號(hào) OK ! 看診順序?yàn)榈?nbsp;1 號(hào)</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病歷號(hào)碼</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診順序</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000">1</FONT></TD>
</TR> 
</TABLE>
若RS.EOF為FALSE,表示此診次已有人預(yù)約掛號(hào)。
由「IF RS(0) < 100 THEN...」判斷RS(0) 預(yù)約掛號(hào)人數(shù)TOTAL是否超過(guò)100個(gè)名額。
若未超過(guò),則於HospitalCount資料表,使用「UPDATE...」指令,將此筆資料的預(yù)約掛號(hào)人數(shù)TOTAL、和最後看診順序號(hào)碼COUNT0都加一。
然後,再於HospitalReserve資料表,使用「INSERT INTO...」指令新增一筆資料。此筆新增資料的看診順序號(hào)碼欄位COUNT0為HospitalCount資料表的加一後之COUNT0新值,病歷號(hào)碼欄位ID為Request.Form("ID1"),科別欄位CLASS設(shè)定為Request.Form("CLASS1"),日期欄位DATE0設(shè)定為Request.Form("DATE1")。
接著,顯示執(zhí)行的結(jié)果時(shí),配合<TABLE>表格的HTML語(yǔ)法,將於HospitalReserve資料表新增的資料,填入表格的各欄位當(dāng)中顯示出來(lái)。
程式碼,如下∶
<% ELSE 
IF RS(0) < 100 THEN 
'此診次已有人預(yù)約掛號(hào) ! HospitalCount的COUNT,TOTAL增一 
TotalNo = RS(0)+1
CountNo = RS(1)+1
SQL = "UPDATE HospitalCount SET TOTAL = " & TotalNo & ",COUNT0 = " & CountNo & " WHERE DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'" 
Set RS = Conn.Execute(SQL) 
'HospitalReserve新增一筆 
SQL = "INSERT INTO HospitalReserve(COUNT0, ID, DATE0, CLASS) VALUES(" & CountNo & ",'" & Request.Form("ID1") & "','" & Request.Form("DATE1") & "','" & LEFT(Request.Form("CLASS1"),2) & "')"
Set RS = Conn.Execute(SQL)
%>
<FONT COLOR="#0000FF">預(yù)約掛號(hào) OK ! 看診順序?yàn)榈?nbsp;<% =CountNo %> 號(hào)</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病歷號(hào)碼</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診順序</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =CountNo %></FONT></TD>
</TR> 
</TABLE>
若此課程的預(yù)約掛號(hào)人數(shù)TOTAL超過(guò)100個(gè)名額,則顯示「預(yù)約掛號(hào)已滿 ! 請(qǐng)預(yù)約其他診次 !」。
接著,顯示執(zhí)行的結(jié)果,配合<TABLE>表格的HTML語(yǔ)法,將病歷號(hào)碼和看診日期等資料,填入表格的各欄位當(dāng)中顯示出來(lái)。
程式碼,如下∶
<% ELSE %>
<% '100預(yù)約掛號(hào)已滿 %>
<FONT COLOR="#FF0000">報(bào)歉 !</FONT><br>
<FONT COLOR="#FF0000">預(yù)約掛號(hào)已滿 ! 請(qǐng)預(yù)約其他診次 !</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病歷號(hào)碼</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
</TR> 
</TABLE>
<% END IF %> 
<% END IF %>
當(dāng)於HospitalReserve資料表,由「IF RS.EOF THEN ...」判斷是否已經(jīng)預(yù)約掛號(hào)時(shí),若RS.EOF為FALSE,表示此診次已經(jīng)預(yù)約掛號(hào)過(guò),則顯示「報(bào)歉! 已經(jīng)預(yù)約掛號(hào)! 看診順序?yàn)榈?..號(hào)」。
接著,顯示執(zhí)行的結(jié)果,配合<TABLE>表格的HTML語(yǔ)法,將病歷號(hào)碼、看診日期、和看診順序等資料,填入表格的各欄位當(dāng)中顯示出來(lái)。
程式碼,如下∶
<% ELSE %>
<% '已經(jīng)預(yù)約掛號(hào) %>
<FONT COLOR="#FF0000">報(bào)歉 !</FONT><br>
<FONT COLOR="#FF0000">已經(jīng)預(yù)約掛號(hào) !</FONT> 看診順序?yàn)榈?nbsp;<% =RS(1) %> 號(hào)</FONT> 
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病歷號(hào)碼</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診順序</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(1) %></FONT></TD>
</TR> 
</TABLE>
<% END IF 
Conn.Close
End Sub %>
最後,使用Conn.Close關(guān)閉資料庫(kù)。
取消預(yù)約掛號(hào)
按了「取消預(yù)約掛號(hào)」按鈕時(shí),將執(zhí)行DeleteReserve() 副程式。
首先,先尋找到所待取消的預(yù)約掛號(hào)記錄,使用「Server.CreateObject」建立連線的物件,并使用「Open」開(kāi)啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,於HospitalReserve資料表,設(shè)定SQL指令,查詢病歷號(hào)碼欄位ID符合所輸入Request.Form("ID1"),查詢看診日期欄位DATE0符合所輸入Request.Form("DATE1"),和科別欄位CLASS符合所選擇Request.Form("CLASS1")的資料,,下個(gè)「Execute」指令,即可開(kāi)始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
由「IF RS.EOF THEN ...」判斷是否找到所待取消的預(yù)約掛號(hào)記錄,若RS.EOF為T(mén)RUE,表示此診次尚未預(yù)約掛號(hào),則顯示「找不到 ! 尚未預(yù)約掛號(hào) !」。
程式碼如下∶
<%
Sub DeleteReserve()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa","" 
SQL = "SELECT * FROM HospitalReserve WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'" 
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">取消預(yù)約掛號(hào)結(jié)果:</FONT><br>
<% 
IF RS.EOF THEN 
'找不到 ! 尚未預(yù)約掛號(hào) ! 
%>
<FONT COLOR="#FF0000">找不到 ! 尚未預(yù)約掛號(hào) !</FONT>
若找到所待取消的預(yù)約掛號(hào)記錄,則於HospitalReserve資料表,使用「DELETE FROM...」指令刪除此筆資料。
然後,再於HospitalCount資料表,使用「UPDATE...」指令,將此筆課程的預(yù)約掛號(hào)人數(shù)TOTAL減一。
接著,顯示執(zhí)行的結(jié)果,配合<TABLE>表格的HTML語(yǔ)法,將於HospitalReserve資料表刪除的資料,填入表格的各欄位當(dāng)中,以顯示出來(lái)。
程式碼,如下∶
<% ELSE 
'取消預(yù)約掛號(hào) ! 
'HospitalReserve刪除一筆 
SQL = "DELETE FROM HospitalReserve WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'" 
Set RS = Conn.Execute(SQL) 
'HospitalCount的TOTAL減一
'RS.Close 
SQL = "SELECT * FROM HospitalCount WHERE DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'"
Set RS = Conn.Execute(SQL)
IF RS.EOF THEN
%>
<FONT COLOR="#FF0000">找不到預(yù)約掛號(hào)資料 !</FONT>
<% 
ELSE
TotalNo = RS(0)-1
SQL = "UPDATE HospitalCount SET TOTAL = " & TotalNo & " WHERE DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'" 
Set RS = Conn.Execute(SQL)
%>
<FONT COLOR="#FF0000">預(yù)約掛號(hào)已經(jīng)取消 !</FONT> 
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病歷號(hào)碼</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
</TR> 
</TABLE>
<% END IF 
END IF
Conn.Close
End Sub %>
最後,使用Conn.Close關(guān)閉資料庫(kù)。
查詢預(yù)約掛號(hào)
按了「查詢預(yù)約掛號(hào)」按鈕時(shí),執(zhí)行CheckReserve() 副程式。
首先,先尋找到所待查詢的預(yù)約掛號(hào)記錄,使用「Server.CreateObject」建立連線的物件,并使用「Open」開(kāi)啟待存取查詢資料庫(kù)BookSamp。
再使用SELECT的SQL指令查詢資料庫(kù)的資料,於HospitalReserve資料表,設(shè)定SQL指令,查詢病歷號(hào)碼欄位ID符合所輸入Request.Form("ID1")的資料,下個(gè)「Execute」指令,即可開(kāi)始執(zhí)行存取查詢資料庫(kù)的動(dòng)作,并將查詢結(jié)果儲(chǔ)存到RecordSets物件RS。
由「IF RS.EOF THEN ...」判斷是否找到所待查詢病歷號(hào)碼的所有預(yù)約掛號(hào)記錄,若RS.EOF為T(mén)RUE,表示此病歷號(hào)碼尚未預(yù)約掛號(hào),則顯示「找不到 ! 尚未預(yù)約掛號(hào) !」。
程式碼如下∶
<%
Sub CheckReserve()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT ID,DATE0,CLASS,COUNT0 FROM HospitalReserve WHERE ID = '" & Request.Form("ID1") & "'"
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">查詢預(yù)約掛號(hào)結(jié)果:</FONT><br>
<% 
IF RS.EOF THEN 
'找不到 ! 尚未預(yù)約掛號(hào) ! 
%>
<FONT COLOR="#FF0000">找不到 ! 尚未預(yù)約掛號(hào) !</FONT>
若找到ID為病歷號(hào)碼Request.Form("ID1")的資料,則顯示查詢的結(jié)果,包括病歷號(hào)碼、看診日期、科別、看診順序,分別由RecordSets物件的RS(0)、RS(1)、RS(2)、RS(3)取得。
RS.Fields.Count表示RecordSets物件的欄位數(shù),由「For i = 0 to RS.Fields.Count - 1」取得RS(i) 各欄位的資料。配合<TABLE>表格的HTML語(yǔ)法,將結(jié)果填入表格的各欄位當(dāng)中。
由「If INT(j/2)*2 <> j Then... 」判斷顯示奇偶筆的預(yù)約掛號(hào)資料,奇偶列顯示不同的顏色。
若還有下一筆資料,使用RS.MoveNext移到下一筆的位置。
程式碼,如下∶
<% ELSE %>
<% '有預(yù)約掛號(hào) ! %>
<FONT COLOR="#0000ff">預(yù)約掛號(hào)如下:</FONT> 
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病歷號(hào)碼</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診順序</FONT></TD>
</TR> 
<% j = 1 %> 
<% Do While Not RS.EOF %>
<TR> 
<% For i = 0 to RS.Fields.Count - 1 %>
<% If INT(j/2)*2 <> j Then %>
<TD BGCOLOR="E8FFFF" ALIGN=CENTER>
<FONT COLOR="#000000"><%= RS(i) %></FONT></TD> 
<% Else %>
<TD ALIGN=CENTER BGCOLOR="#C0FFFF">
<FONT COLOR="#000000"><%= RS(i) %></FONT></TD>
<% END IF %> 
<% Next %>
</TR>
<%
RS.MoveNext
j = j + 1
Loop
%>
</TABLE> 
<% END IF 
RS.Close
Conn.Close
End Sub %>
最後,使用RS.Close關(guān)閉RecordSet,使用Conn.Close關(guān)閉資料庫(kù)。
全部的程式碼,如下∶
<HTML>
<HEAD>
<TITLE>線上醫(yī)院預(yù)約掛號(hào)系統(tǒng)</TITLE>
<META HTTP-EQUIV="content-type" CONTENT="text/html;charset=big5">
</HEAD> 
<BODY BGCOLOR=#FFFFFF>
<FONT SIZE=+2 COLOR="#0000FF">線上醫(yī)院預(yù)約掛號(hào)系統(tǒng)</FONT>
<%
SELECT CASE Left(Request.Form("Action"),2) 
CASE "預(yù)約"
AddReserve() 
CASE "取消"
DeleteReserve() 
CASE "查詢"
CheckReserve() 
END SELECT 
Sub AddReserve()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa","" 
SQL = "SELECT * FROM HospitalReserve WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'" 
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">預(yù)約掛號(hào)結(jié)果:</FONT><br>
<% 
IF RS.EOF THEN 
RS.Close 
SQL = "SELECT * FROM HospitalCount WHERE DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'"
Set RS = Conn.Execute(SQL) 
IF RS.EOF THEN
'此科次尚未有人預(yù)約掛號(hào) ! 於HospitalCount新增一筆
SQL = "INSERT INTO HospitalCount(COUNT0, TOTAL, DATE0, CLASS) VALUES(1,1,'" & Request.Form("DATE1") & "','" & LEFT(Request.Form("CLASS1"),2) & "')" 
Set RS = Conn.Execute(SQL) 
'HospitalReserve新增一筆
SQL = "INSERT INTO HospitalReserve(COUNT0, ID, DATE0, CLASS) VALUES(1,'" & Request.Form("ID1") & "','" & Request.Form("DATE1") & "','" & LEFT(Request.Form("CLASS1"),2) & "')"
Set RS = Conn.Execute(SQL)
%> 
<FONT COLOR="#0000FF">預(yù)約掛號(hào) OK ! 看診順序?yàn)榈?nbsp;1 號(hào)</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病歷號(hào)碼</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診順序</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000">1</FONT></TD>
</TR> 
</TABLE> 
<% ELSE 
IF RS(0) < 100 THEN 
'此診次已有人預(yù)約掛號(hào) ! HospitalCount的COUNT0,TOTAL增一 
TotalNo = RS(0)+1
CountNo = RS(1)+1 
SQL = "UPDATE HospitalCount SET TOTAL = " & TotalNo & ",COUNT0 = " & CountNo & " WHERE DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'" 
Set RS = Conn.Execute(SQL) 
'HospitalReserve新增一筆
SQL = "INSERT INTO HospitalReserve(COUNT0, ID, DATE0, CLASS) VALUES(" & CountNo & ",'" & Request.Form("ID1") & "','" & Request.Form("DATE1") & "','" & LEFT(Request.Form("CLASS1"),2) & "')"
Set RS = Conn.Execute(SQL)
%>
<FONT COLOR="#0000FF">預(yù)約掛號(hào) OK ! 看診順序?yàn)榈?nbsp;<% =CountNo %> 號(hào)</FONT> 
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病歷號(hào)碼</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診順序</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =CountNo %></FONT></TD>
</TR> 
</TABLE> 
<% ELSE %>
<% '100預(yù)約掛號(hào)已滿 %>
<FONT COLOR="#FF0000">報(bào)歉 !</FONT><br>
<FONT COLOR="#FF0000">預(yù)約掛號(hào)已滿 ! 請(qǐng)預(yù)約其他診次 !</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病歷號(hào)碼</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
</TR> 
</TABLE>
<% END IF %> 
<% END IF %> 
<% ELSE %>
<% '已經(jīng)預(yù)約掛號(hào) %>
<FONT COLOR="#FF0000">報(bào)歉 !</FONT><br>
<FONT COLOR="#FF0000">已經(jīng)預(yù)約掛號(hào) !</FONT> 看診順序?yàn)榈?nbsp;<% =RS(1) %> 號(hào)</FONT>
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病歷號(hào)碼</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診順序</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =RS(1) %></FONT></TD>
</TR> 
</TABLE> 
<% END IF 
Conn.Close
End Sub %> 
<%
Sub DeleteReserve()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT * FROM HospitalReserve WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'" 
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">取消預(yù)約掛號(hào)結(jié)果:</FONT><br>
<% 
IF RS.EOF THEN 
'找不到 ! 尚未預(yù)約掛號(hào) ! 
%>
<FONT COLOR="#FF0000">找不到 ! 尚未預(yù)約掛號(hào) !</FONT> 
<% ELSE 
'取消預(yù)約掛號(hào) ! 
'HospitalReserve刪除一筆
SQL = "DELETE FROM HospitalReserve WHERE ID = '" & Request.Form("ID1") & "' AND DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'"
Set RS = Conn.Execute(SQL) 
'HospitalCount的TOTAL減一
'RS.Close 
SQL = "SELECT * FROM HospitalCount WHERE DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'"
Set RS = Conn.Execute(SQL) 
IF RS.EOF THEN
%>
<FONT COLOR="#FF0000">找不到預(yù)約掛號(hào)資料 !</FONT>
<% 
ELSE
TotalNo = RS(0)-1
SQL = "UPDATE HospitalCount SET TOTAL = " & TotalNo & " WHERE DATE0 = '" & Request.Form("DATE1") & "' AND CLASS = '" & LEFT(Request.Form("CLASS1"),2) & "'" 
Set RS = Conn.Execute(SQL)
%>
<FONT COLOR="#FF0000">預(yù)約掛號(hào)已經(jīng)取消 !</FONT> 
<TABLE COLSPAN=8 CELLPADDING=1 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病歷號(hào)碼</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
</TR> 
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("ID1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =Request.Form("DATE1") %></FONT></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><FONT COLOR="#0000"><% =LEFT(Request.Form("CLASS1"),2) %></FONT></TD>
</TR> 
</TABLE>
<% END IF 
END IF
Conn.Close
End Sub %> 
<%
Sub CheckReserve()
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "BookSamp","sa",""
SQL = "SELECT ID,DATE0,CLASS,COUNT0 FROM HospitalReserve WHERE ID = '" & Request.Form("ID1") & "'"
Set RS = Conn.Execute(SQL)
%>
<HR>
<FONT COLOR="#0000FF">查詢預(yù)約掛號(hào)結(jié)果:</FONT><br> 
<% 
IF RS.EOF THEN 
'找不到 ! 尚未預(yù)約掛號(hào) ! 
%>
<FONT COLOR="#FF0000">找不到 ! 尚未預(yù)約掛號(hào) !</FONT> 
<% ELSE %>
<% '有預(yù)約掛號(hào) ! %>
<FONT COLOR="#0000ff">預(yù)約掛號(hào)如下:</FONT> 
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=1>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>病歷號(hào)碼</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診日期</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>科別</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT>看診順序</FONT></TD>
</TR>
<% j = 1 %> 
<% Do While Not RS.EOF %>
<TR> 
<% For i = 0 to RS.Fields.Count - 1 %>
<% If INT(j/2)*2 <> j Then %>
<TD BGCOLOR="E8FFFF" ALIGN=CENTER>
<FONT COLOR="#000000"><%= RS(i) %></FONT></TD> 
<% Else %>
<TD ALIGN=CENTER BGCOLOR="#C0FFFF">
<FONT COLOR="#000000"><%= RS(i) %></FONT></TD>
<% END IF %> 
<% Next %>
</TR>
<%
RS.MoveNext
j = j + 1
Loop
%>
</TABLE> 
<% END IF 
RS.Close
Conn.Close
End Sub %>
<HR>
預(yù)約掛號(hào), 請(qǐng)輸入以下資料 (初診者以身分證字號(hào)代替病歷號(hào)碼):<br>
<form action="data12.asp" method="post">
<FONT COLOR="#FF8080">■ </FONT>科別:
<select name="CLASS1">
<OPTION SELECTED>內(nèi)科
<OPTION>神經(jīng)科
<OPTION>小兒科
<OPTION>外科
<OPTION>婦產(chǎn)科
<OPTION>耳鼻喉科
<OPTION>眼科
<OPTION>皮膚科
</select> 
<br>
<FONT COLOR="#FF8080">■ </FONT>病歷號(hào)碼 (如123456): 
<INPUT TYPE=TEXT VALUE="123456" NAME="ID1" SIZE=10><BR>
<FONT COLOR="#FF8080">■ </FONT>看診日期 (如87年7月1日請(qǐng)輸入870701): 
<INPUT TYPE=TEXT VALUE="870701" NAME="DATE1" SIZE=6><BR> 
<INPUT TYPE=submit VALUE="預(yù)約掛號(hào)" name="Action">
<INPUT TYPE=submit VALUE="取消預(yù)約掛號(hào)" name="Action"><br>
<INPUT TYPE=submit VALUE="查詢預(yù)約掛號(hào)" name="Action"> 僅須填入病歷號(hào)碼<br>
</form> 
<form>
<INPUT TYPE=button VALUE="門(mén)診時(shí)間表" OnClick="location.href='data7.asp'">
</form> 
<HR> 
</BODY>
</HTML>
本實(shí)例未考慮到上下午和晚間門(mén)診的部份,留給讀者自行發(fā)揮。