PowerBuilder建立登入例項—你的心我終於懂了(二)
三、登入例子後期實踐
1、 建立應用物件
(1)選擇file\new,或者快捷鍵Ctrl+N,新建Workspace工作空間,如下圖,點選OK,然後命名為testSpace.
(2)同以上方法一樣, 新建Traget\Application應用程式庫,點選Ok
得到下圖後,填寫庫名testapplication和相應的路徑,然後點選Finish完成。
2、 建立第一個視窗(登入視窗)
(1)選擇file\new,或者快捷鍵Ctrl+N,新建PB Object\Window窗體,然後點選ok.即建立好窗體,然後新增控制元件
(2)按下圖操作擺放相應控制元件
設定好之後,儲存,輸入窗體的名稱frm_log,最終得到登入窗體的樣子
3、 建立資料視窗物件(該步可跳過
(1)選擇file\new,或者快捷鍵Ctrl+N,新建DataWindow\Grid項
(2)得到下圖後,選擇Sql select 資料來源型別
(3)然後得到下圖,選擇已經建立的表,然後點選open
(4)然後按下圖選中後,右擊選擇Select All
(5)最後選擇儲存,命名為testdw.完成
4、建立一個數據視窗控制元件(該步可跳過
(1)選擇file\new,或者快捷鍵Ctrl+N,新建DataWindow\Grid項【同第3步的(1)】 (2)這次選擇Quick Select項
(3)如下圖,選擇user_info,然後單擊AddAll,然後單擊OK
(3)得到後邊的窗體之後,直接點Next,然後Finish。完成後儲存,命名為testdatawindow.
5、 建立應用程式
(1)編寫open事件程式碼,如下圖,在建好的專案中雙擊testapplication
得到下圖,後選擇open事件,編寫程式碼
(2)尋找需要編寫的程式碼。選擇選單欄中的Tools\DataBasePainter,或者直接單擊下圖中的DataBase按鈕
得到下圖後,選擇ODBC\Testdatabase,然後右擊,選擇Properties
得到下圖,選擇Preview選擇框,單擊Copy,然後Ok
最後再次開啟open事件,將拷貝的程式碼貼上到上面,並補充一些程式碼,最後程式碼如下
// Profile Testdatabase
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "Connectstring='DSN=testDataBase'"
//新增以下程式碼,注意分號是英文狀態,否則報錯
connect;
open(frm_log)
(2)編寫登入程式碼。在窗體上雙擊登入按鈕,或直接選擇下圖中的itemchanged(此項在窗體最下方)
然後選擇登入按鈕的單擊事件
(3)編寫登入按鈕的程式碼,如下
//登入
string userName,userPwd //宣告使用者名稱和密碼變數
userName=trim(sle_name.text) //得到使用者名稱
userPwd=trim(sle_pwd.text) //得到密碼
if userName ="" then //判斷使用者名稱是否為空
messagebox("提示","使用者名稱不能為空")
else
//判斷該使用者是否存在
//sql語句進行查詢
SELECT name
into :userName
from "User_Info"
where "User_Info"."name"=:userName;
//SQLCode=100證明沒有找到記錄,此使用者不存在
if SQLCA.SQLCode=100 then
messagebox("提示","使用者不存在")
else
//該使用者存在查詢密碼是否正確
SELECT name
into :userName
from "User_Info"
where "User_Info"."name"=:userName and "User_Info"."password"=:userPwd;
if SQLCA.SQLCode=100 then
messagebox("提示","密碼不正確")
else
messagebox("提示","登入成功")
end if
end if
end if
(4)編寫退出按鈕的程式碼,如下
//關閉該窗體
close(parent)
6、執行應用程式
儲存所有操作,然後按快捷鍵Ctrl+R。這裡就不給大家展示效果圖了,由於我們在資料表中儲存的使用者名稱和密碼都是“1”,所以只有使用者名稱和密碼都為“1”才會會成功。
小編寄語:
我們的這個簡單的登入功能終於寫完了,由於第一次使用PB,對其功能不太瞭解,所以操作步驟寫的比較詳細,但是本程式有一個缺點就是在第三步和第四步中,建立了資料視窗物件,到最後卻沒有用到(實際上這塊兒也用不到),感覺有點多餘,本來想去掉那部分,可是不知道資料視窗物件有沒有發揮作用,所以就留下來了,希望在之後的學習過程中會對這部分有更深入的理解。