5 關鍵問題的解決
(1) 安全機制問題
在進入系統之前,要進行身份確認,只有用戶名和用戶密碼都相符的用戶方可進入本系統。為了防止不合法用戶對數據的察看和修改,本系統把用戶分為三個級別:超級、可修改和只讀用戶,即一二三級用戶。超級(一級)用戶不僅擁有對數據的查詢、修改權限,還對用戶的使用權限進行控制,可以設定用戶名、密碼和其權限,還可以對紀錄進行增加、刪除、修改等操作。可修改(二級)用戶對數據可以查詢、打印,還可以對紀錄進行增加、刪除、修改等操作。只讀(三級)用戶只擁有對紀錄的瀏覽、查詢和打印權限。當用戶要進入系統是必須先輸入用戶名和密碼,按quot;確認quot;按鈕后,系統辨別用戶身份,對合法用戶根據用戶的權限級別賦予相應的使用功能。
(2) 對任一數據列進行排序的問題。
熟悉Windows的用戶一定對資源管理器不陌生,當目錄或文件很多時,當然會想到使用排序來盡快定位目標,你只要用鼠標在資源管理器上端的name、size、type或modified中的任意一項點擊,它就會將此項按升序或降序排列。同樣地,在PowerBuilder中,如果數據比較多,我們也可以采用這種辦法來排序以盡快查找記錄。
本系統以窗口w_rsh為例,要實現這樣的排序功能,首先定義兩個實例變量String pre_col=quot;quot;和Int click_time=0,它們分別記錄上次點擊的列和點擊同一列的奇偶數。然后在dw_1的Clicked事件中添加如下腳本:
String clicked_pos,col,format
Long il_pos
clicked_pos = dwo.Name //取點擊的對象
il_pos = Pos(clicked_pos,#39;_t#39;) //對于列標題,
//取得的對象是列名+quot;_tquot;
If il_pos >0 Then
col = Left(clicked_pos,il_pos -1)
If col=pre_col Then
If click_time=0 Then
click_time = 1
format = col+quot; Aquot;
Else
click_time=0
format = col+quot; Dquot;
End If
Else
click_time = 0
format = col+quot; Aquot;
End If
pre_col = col
dw_1.SetSort(format)
dw_1.Sort()
End If
采用上面的方法可實現象Windows中資源管理器靈活排序的功能,從而使所要瀏覽的數據更加一目了然。
(3) 數據窗口控件的編輯風格的使用
本系統對日期型、需漸變量等數據的輸入采用了編輯掩碼控件editmask,這樣就可以大大方便用戶的操作。對于象性別這樣只有男、女兩個值的,則采用單選鈕radiobutton形式,用戶在錄入時只需要鼠標點擊選鈕即可。在設置條件時的值段名和有固定職供用戶選擇的數據使用了下拉列表框(droplistbox),用戶只需選擇所要輸入的值即可。