1. 程式人生 > >PowerBuilder建立登入例項—你的心我終於懂了(二)

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,對其功能不太瞭解,所以操作步驟寫的比較詳細,但是本程式有一個缺點就是在第三步和第四步中,建立了資料視窗物件,到最後卻沒有用到(實際上這塊兒也用不到),感覺有點多餘,本來想去掉那部分,可是不知道資料視窗物件有沒有發揮作用,所以就留下來了,希望在之後的學習過程中會對這部分有更深入的理解。