最近公司為了充分利用圖書資源,方便員工查詢,決定在公司內部網路上建立一個圖書查詢系統。考慮到公司圖書不多,只有1千多冊,且專業書居多的特點,我決定做兩個查詢條件:一個是根據圖書類別來查詢, 用戶只要選擇相應的類別就可以顯示出該類別的所有圖書,這主要是面對對公司圖書不熟悉的人;第二個是根據圖書名稱來查詢,用戶只要輸入圖書名,就可以快速的搜索到符合條件的所有圖書。
方案已定,接下來就是用什麼軟體做及如何做的問題了。在這裡,我選用了網頁的形式,這樣同事們只要打開瀏覽器,輸入對應的地址就可以查詢了。因此,我使用網頁製作利器dreamweaver 軟體(下面簡稱dw),資料庫用acess,環境為win98,pws(編者註:關於PWS的使用教學可以查閱《深入了解微軟個人伺服器PWS之一》《深入了解微軟個人伺服器PWS之二》《深入了解微軟個人伺服器PWS之三》《深入了解微軟個人伺服器PWS之四》)。下面就正式開工鑼。
點擊這裡下載本教學的源代碼
首先,建立資料庫:
一、在我的文件下方新建一個資料夾,起名為「研究所」。當然你也可以在其他地方新建,取其他名字。
二、開啟acess,新建一資料庫db1,建立兩張表leibie 和tushu ,表與表之間的聯繫欄位為「類別名稱」。
表leibie結構為兩個欄位:
(1)類別號,文字類型,字段長度為6位,必填字段,不允許輸入空白字串;
(2)類別名稱,文字類型,字段長度為20位,必填字段,不允許輸入空白字串。
表tushu結構為九個字段:
(1)編號,文字類型,欄位長度為6位元;
(2)書名,文字類型,字段長度為60位,必填字段,不允許輸入空白字串。
(3)作者,文本類型,字段長度為50位元;
(4)出版者,文本類型,字段長度為60位;
(5)版次,文字類型,欄位長度為15位元;
(6)單價,貨幣類型,允許小數位數2位,預設值為0元;
(7)類別名稱,文字類型,字段長度為20位,必填字段,不允許輸入空白字串。
(8)是否借出,文字類型,字段長度為4位,必填字段,不允許輸入空白字串,預設值為No 。
(9)備註,備註類型。
三、依表結構輸入各項資料。
其次,設定站點及連接資料庫:
(1)設置站點。開啟dw ,選擇site 選單下的new site ,彈出設定站點面板,站點名稱輸入研究所,目錄就是我們剛才建立的目錄,如圖1,Testing Server選項中的Server Model選擇Asp VBScript,Access選擇Local/Network 。
圖1
(2)新建一網頁,因為查詢是動態頁面,因此在彈出的面板中選擇Dynamic page和Asp VBScript,如圖2。按create按鈕回到頁面。
圖2
(3)連接資料庫。展開右邊的Application 面板,選擇Databases標籤,按下"+"按鈕,選擇Data Source Name (DSN),如圖3。
圖3
(4)在彈出的Data Source Name (DSN)面板上(如圖4)選擇define...按鈕進入ODBC資料來源管理器,選擇系統DSN標籤,點選新增按鈕,選擇"Driver do Microsoft Access(*. mdb)"資料驅動程序,點擊完成按鈕。
圖4
(5)在隨後的面板上選擇資料庫路徑(就是我們剛剛建立的目錄),選取db1,資料來源名稱輸入db1,如圖5。
圖5 (6)點選確定按鈕,返回ODBC資料來源管理器面板。再點選確定按鈕,返回Data Source Name (DSN)面板。點選test按鈕,如果彈出如圖6的成功面板,就表示一切ok,資料庫已經連接好了,右邊Application面板的Databases標籤就會對應的出現我們新建的資料來源db1。
圖6
現在準備工作一切就緒,可以建立動態查詢網頁了。
一、建立主頁。主頁很簡單,就是建立兩個查詢鏈接,「按圖書類別查詢」鏈接到chaxun.asp,「按圖書名稱查詢」鏈接到chaxun1.asp,這兩個網頁就是我們下面要建立的查詢網頁。首頁因不需要動態編程,可存為htm格式,文件保存到研究所目錄下,取名為index,具體如圖7。
圖7
二、建立按圖書類別查詢網頁。
1.新建一動態網頁,取名chaxun.asp。
2、建立記錄集。選擇右邊的Application面板中的Bindings標籤,按加號按鈕,選擇Recordset(Query),如圖8,彈出Recordset對話框,裡面的設定如圖9,Name就取預設值Recordset1,Connection選擇我們剛剛建立的連接db1,因為顯示的是圖書類別,因此Table選擇表leibie。
圖8
圖9 3、設定完畢後,點選test按鈕,大家可以看到leibie表的內容全顯示出來了。點擊OK回到頁面,這時我們可以看到Binding標籤下方顯示我們剛剛建立的名為Recordset1的查詢。
4.輸入網頁上靜態顯示的內容,如圖10,其中「返回」連結至首頁index.htm 。
圖10
5.點擊Binding標籤下方Recordset1旁邊的"+"號,展開字段,用滑鼠按住「類別名稱」字段不放,直接拖到頁面上的單元格中,鬆開滑鼠, 這樣單元格就包含了一個動態文本,頁面效果如圖11。
圖11
只是現在這個單元格還只能顯示一行(大家可以先在瀏覽器裡看一看是不是這樣的顯示效果),那麼如何才能將所有的字段內容顯示出來呢?
6.選取表格,再選擇右邊的Application面板中的Server Behaviors標籤,按加號按鈕,選擇Repeat Region(循環區域),這樣就可以控制一頁顯示多少記錄了。在這裡,因為圖書類別不多,因此在對話方塊中選擇All Records(顯示所有記錄),不分頁顯示了,具體如圖12。
圖12
7.運行pws,設定好路徑,用瀏覽器打開此網頁,看看螢幕上是不是將資料庫裡的類別名稱都顯示出來了,只是現在還不能點擊進去。好,下面我們就來做對應的顯示圖書的頁面。
三、製作按類別查詢顯示的頁面
1.新建一動態網頁,取名xianshi.asp。
2、建立記錄集。選擇Application面板中的Bindings標籤,按加號按鈕,選擇Recordset(Query),彈出Recordset對話框,裡面的設定如圖13,名字為Recordset2,資料庫表選擇tushu,因為網頁顯示的圖書資訊是根據前面查詢條件來顯示的,因此就需要設定一個限制條件來選擇符合條件的圖書,那麼這個條件是透過什麼來實現傳遞和接受的呢?這就需要用到URL Parameter(URL參數)了,利用這個參數可以從查詢網頁傳遞查詢條件,然後在顯示網頁中接受這個參數來顯示符合的記錄。具體使用方法如下:
圖13 (1)先讓我們回到查詢頁chaxun.asp。用滑鼠選取表格中的字段,再選擇Application面板上Server Behaviors標籤,按加號按鈕,選擇Go To Detail Page(到細節頁),彈出Go To Detail Page對話框,具體設定如圖14。 Detail Page就是我們的顯示網頁xianshi.asp,Pass URL Parameter文本框裡輸入的就是要通過URL傳遞到細節頁中的參數名,為便於理解,我們輸入“類別名稱”,這個名字可要和後面顯示網頁裡設定的參數名一樣。 Recordset意為從哪個記錄集裡傳遞出去的,我們選擇Recorset1,Column意思為URL參數值的來源,要與查詢網頁上的查詢條件一致,因此選擇“類別名稱”,Pass Existing Parameters這兩個選項於表單有關,而在這個查詢網頁上並沒有用到表單,因此可以不選。點選ok按鈕,大家可以看到表格中的欄位已變成一個包含動態內容的超文本連結了。
圖14 (2)好,URL Parameter已設置,現在再回到顯示網頁xianshi.asp來接受這個參數。選擇Recordset(Query),彈出Recordset對話框,在Filter中設定如上圖13,意思是:查詢條件為表tushu中的字段“類別名稱”要等於傳遞過來的URL Parameter參數“類別名稱”,這樣查詢網頁和顯示網頁就聯絡起來了。
(3)點選test按鈕來測試。大家可以輸入某一個類別名稱,dw 就會顯示出對應的圖書記錄。
(4)點選ok按鈕回到頁面,至此記錄集建立好了。
3.輸入網頁中的靜態內容,如圖15,其中「返回」連結到查詢網頁chaxun.asp,因為有的類別圖書比較多,因此將顯示設為分頁顯示。
圖15 4.用上面介紹的方法,將記錄集的欄位分別拖曳到頁面上對應的位置中,如圖16。
圖16 5、選取表格中的第二行,點擊Application面板中的Server Behaviors標籤,按加號按鈕,選擇Repeat Region,彈出Repeat Region對話框,因為要分頁顯示,所以選擇每次顯示幾條,在這裡我輸入的是10,意思是每頁顯示10筆記錄,大家可以依照狀況自由輸入,如圖17。點擊ok鍵回到頁面。
圖17 6.因為是分頁顯示,需要翻頁,那麼在dw裡要如何實現呢?很簡單,大家先選取“首頁”,然後點擊Application面板中的Server Behaviors標籤,按加號按鈕,可以看到有一個Recordset Paging選項,將滑鼠滑到這個選項,顯示出下拉式選單,這些選單的含義我想大家應該要明白了吧,如圖18。選擇第一個“Move To First Record”,彈出對話框,如圖19,點擊ok按鈕回到頁面,這樣“首頁”的動態鏈接就做好了,其他的“上一頁”、“下一頁」、「末頁」依序類推,做好與其相對應的動態連結。
圖18圖19 7.那麼用戶如何知道記錄已經到最後一條,而不該再往下翻了?在這裡,我是這樣解決的,如果記錄已到最後一條,則“下一頁”、“末頁”在頁面上自動隱藏,同理,記錄已到第一條,則“首頁”、“上一頁”自動隱藏。以下是具體實作方法:
(1)大家先選取“首頁”,然後點選Application面板中的Server Behaviors標籤,按加號按鈕,將滑鼠滑到Show Region選項,顯示出下拉式選單,如圖20。
圖20 (2)選擇“Show Region If Not First Record”,意思是如果不是第一筆記錄則顯示,反過來就是如果是第一筆記錄則不顯示,隱藏起來。
(3)在彈出的對話框上直接點選ok按鈕回到頁面,這樣「首頁」的自動隱藏功能就做好了。
(4)同理,做好其他幾個的自動隱藏功能。 「上一頁」與「首頁」一樣,選擇「Show Region If Not First Record」;「下一頁」與「末頁」一樣,選擇「Show Region If Not Last Record」。
至此,按類別查詢顯示的頁面終於製作完成了,我們來看看具體效果。運行pws,用IE打開chaxun.asp,點擊某一個類別名稱,如“新藥藥品”,IE就會自動顯示出該類別的圖書,點擊“下一頁”,“上一頁”等等鏈接,看看IE會不會自動翻頁,具體效果如圖21、22。
圖21圖22四、製作根據圖書名稱查詢的網頁
1.新建一動態網頁,取名chaxun1.asp。
2.輸入網頁上靜態顯示的內容,如圖23,其中「返回」連結到首頁index.htm ,紅色虛線表示這是個表單,表單的屬性設定如圖24,意思是post(傳遞)一個表單變數名到xianshi1.asp網頁,並執行這個網頁,這樣查詢網頁和顯示網頁就通過變量名聯繫起來了;文本框取名ts,這個名字請記住,因為這就是要通過表單傳遞的變量名,後面的顯示網頁還要用。
圖23圖24五、製作按圖書名稱顯示的網頁
1.新建一動態網頁,取名xianshi1.asp。
2.輸入網頁上靜態顯示的內容,如圖25,其中「返回」連結到查詢頁chaxun1.htm ,紅色虛線同樣顯示這是個表單。
圖25 3、建立記錄集。選擇Application面板中的Bindings標籤,按加號按鈕,選擇Recordset(Query),彈出Recordset對話框,裡面的設定如圖26,名字為Recordset1,資料庫表選擇tushu,Filter過濾條件設定為表tushu中的字段「書名」要contains(包含)傳遞過來的Form Variable(表單變數)ts,這個ts變數就是查詢網頁chaxun1.asp里文框的名字。點擊ok按鈕回到頁面。
圖26 4.將記錄集的欄位分別拖曳到頁面上對應的位置。
5.選取表格的第二行,點選Application面板中的Server Behaviors標籤,按加號按鈕,選擇Repeat Region,彈出Repeat Region對話框,設定為全部顯示。
最終頁面效果如圖27。
圖27至此,按圖書名稱查詢顯示的頁面終於製作完成了,我們來看看具體效果。執行pws,用IE開啟chaxun1.asp,輸入某個名稱,如“品質管理”,IE就會自動顯示所有書名含有“品質管理”的圖書,具體效果如圖28、29。
圖28圖29網頁終於全部製作完了,現在大家可以完整的運行了。將自己電腦的IP位址告訴同事,開啟pws,這樣同事就可以隨時透過查詢系統來查詢圖書了。
點這裡下載本教學的源代碼