在做“機房”的過程中,有很多相同功能的窗體,在敲第一次的時候由於是處在學習和練習的階段,對於重復的功能和代碼還是比較待見的。因為初次在很菜的情況下自主建立一個系統,總想著多練練,能熟練些,不能說是背(也背不了),但想將其形成常識。
每次進步一點點。這次再做,雖說換了一種語言,但業務邏輯方面需要思考就少了很多。再加之,在此之前學習了設計模式。說起設計模式,心裡沒底,還好設計模式的講解語言通俗易懂,常以小故事的形式進行引導。設計模式的目的是將程序設計成可復用性強、靈活性好、安全性高、性能穩定的軟件。設計模式很重要的設計手段就是抽象和封裝。重要的工具就是接口,運用接口,大大加強程序內部模塊之間、軟件之間的兼容性。
下面就是在抽象思想的指導下,對“機房”中具有極大相似度的四個組合信息查詢窗體進行抽象合並,用一個窗體進實現。
四窗體“學生基本信息維護、學生上機狀態查詢、學生上機統計信息查詢、操作員工作記錄”對應各種的四功能。
1.信息查詢,首要問題是解決查詢條件的問題。
組合查詢的條件到了確定功能確定以後,條件不再受數據表的影響,因為功能已唯一確定了對應的數據表,所有可以把所要查詢的數據表的判斷提前到窗體選擇的時候。當數據表一確定,接下來的查詢就只與界面信息有關系,而沒有其他顧慮了。
查詢條件既然由界面控制和獲得,那麼將界面信息做成一整套,封裝起來,以便以前面進行銜接。
2.返回ComboBox中選定的項
界面信息,捕獲後能直接使用的,沒什麼可說的,簡單地傳遞就行。
界面信息,捕獲後不能直接用,與數據庫表的列名不符的,顯示的是中文,便於用戶的理解;而數據表中用英文(字母)命名,所以需要轉化。
下面是最值得說的,其他的就“外孫打燈笼”。
Public Function chargefield1database() As String '返回cmbnName1 Dim field1 As String Select Case cmbName1.SelectedIndex Case 0 field1 = "CardID" Return field1 Case 1 field1 = "UserID" Return field1 Case 2 field1 = "UserName" Return field1 Case 3 field1 = "Sex" Return field1 Case 4 field1 = "Department" Return field1 Case 5 field1 = "Grade" Return field1 Case 6 field1 = "stuClass" Return field1 End Select Return Nothing End Function