第3章程序設(shè)計ppt課件_第1頁
第3章程序設(shè)計ppt課件_第2頁
第3章程序設(shè)計ppt課件_第3頁
第3章程序設(shè)計ppt課件_第4頁
第3章程序設(shè)計ppt課件_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、上一次課講到VFP中的數(shù)據(jù)查詢命令,SQL查詢語句,在表單中定位記錄,過濾記錄以及數(shù)據(jù)統(tǒng)計。請同窗們回想這樣兩個問題: 記錄過濾命令格式及功能是什么? 2. VFP提供了哪4個常用統(tǒng)計命令?命令格式:SET FILTER TO 表達式 IN 區(qū)號 | 別名功能:指定訪問當前表中記錄時必需滿足的條件。VFP提供了常用的4個統(tǒng)計命令:Count、Sum、Average、Total。上一次課主要學習的內(nèi)容本章主要引見在Visual FoxPro 中設(shè)計用戶登錄界面以及為用戶密碼加密。第第3 3章章. .登錄處置登錄處置用戶認證界面是需求進展用戶認證系統(tǒng)必備界面。以下圖是金蝶K/3ERP登錄界面部分。

2、3.13.1用戶登錄界面用戶登錄界面用戶登錄界面可以包括程序稱號、用戶名和密碼輸入的文本框、確定和退出按鈕。如以下圖:向該表單添加如下控件:圖標:People.ico背景圖片:login.jpg2個文本框用戶名、密碼2個標簽用戶名、密碼提示2個按鈕確定、取消3.1.13.1.1創(chuàng)建表單界面創(chuàng)建表單界面表單常用屬性闡明:表單常用屬性闡明:BorderStyle-BorderStyle-用于設(shè)置窗口是用于設(shè)置窗口是否允許拖動邊框改動大小。否允許拖動邊框改動大小。Closable-Closable-指定能否經(jīng)過雙擊窗口菜單圖標來封鎖指定能否經(jīng)過雙擊窗口菜單圖標來封鎖表單表單MaxButtonMaxB

3、utton、MinButtonMinButton、ControlBox-ControlBox-設(shè)置能否可設(shè)置能否可用最大化、最小化、封鎖按鈕用最大化、最小化、封鎖按鈕ShowTips-ShowTips-鼠標指針懸停在控件區(qū)域時,能否顯示鼠標指針懸停在控件區(qū)域時,能否顯示ToolTipTextToolTipText的值。的值。ShowWindow-ShowWindow-設(shè)置表單類型設(shè)置表單類型1.1.表單屬性闡明表單屬性闡明常用標簽屬性:常用標簽屬性:AutoSize-AutoSize-根據(jù)內(nèi)容自動調(diào)整控件區(qū)域大小根據(jù)內(nèi)容自動調(diào)整控件區(qū)域大小BackStyle-BackStyle-背景能否透明背

4、景能否透明Caption-Caption-標簽內(nèi)容標簽內(nèi)容FontFont* * * *- -字體設(shè)置字體設(shè)置,FontBold,FontBold粗體粗體, FontItalic, FontItalic斜體斜體,FontName,FontName字體稱號字體稱號,FontSize,FontSize字體大小字體大小, , FontStrikethruFontStrikethru刪除線刪除線,FontUnderLine,FontUnderLine下劃線下劃線ForeColor-ForeColor-標簽標題文字顏色標簽標題文字顏色WordWrap-WordWrap-標題文字能否自動折行顯示標題文字能

5、否自動折行顯示2.2.標簽屬性闡明標簽屬性闡明常用文本框控件屬性:常用文本框控件屬性:ControlSource-ControlSource-文本框的數(shù)據(jù)源,普通為字段,運文本框的數(shù)據(jù)源,普通為字段,運轉(zhuǎn)時顯示該字段的值,所作修正自動保管轉(zhuǎn)時顯示該字段的值,所作修正自動保管Height-Height-文本框高度點文本框高度點Width-Width-文本框?qū)挾赛c文本框?qū)挾赛cIMEMode-IMEMode-得到焦點時輸入法形狀得到焦點時輸入法形狀PassWordChar-PassWordChar-加密顯示字符加密顯示字符SelectOnEntry-SelectOnEntry-得以焦點時能否選中文本

6、內(nèi)容得以焦點時能否選中文本內(nèi)容3.3.文本框?qū)傩躁U明文本框?qū)傩躁U明常用按鈕控件屬性:Caption-按鈕標題Cancel-設(shè)置為.T.時,按鍵盤ESC鍵等于單擊該鈕。Default-設(shè)置為.T.時,按鍵盤Enter鍵等于單擊該鈕。一個表單上只能有一個按鈕的Cancel或Default為.T.4.4.按鈕控件屬性闡明按鈕控件屬性闡明Name=Logon &表單稱號AutoCenter=.T. &自動居中BorderStyle=2 &固定邊框Caption=系統(tǒng)登錄 &表單標題Closable=.F. &雙擊窗口菜單圖標無效Icon=Imageprople.

7、ico &表單圖標MDIForm=.F. &不是MDI窗口MaxButton=.F. &沒有最大化鈕MinButton=.F. &沒有最小化鈕ShowTips=.T. &顯示工具提示ShowWindow=2 &作為頂層表單WindowState=0 &普通方式顯示窗口WindowType=1 &方式表單5.5.表單屬性設(shè)置表單屬性設(shè)置標簽.autosize=.t. backstyle=0 &透明 FontName=宋體 FontSize=16 WordWrap=.F.txt密碼.PassWordChar=*cmdok.Ca

8、ption=確定cmdok.Default=.T.cmdok.ToolTipText=登錄系統(tǒng)cmdexit.cancel=.F.cmdexit.Caption=取消cmdexit.ToolTipText=取消登錄6.6.控件屬性設(shè)置控件屬性設(shè)置步驟:步驟:菜單:顯示菜單:顯示-Tab-Tab鍵次序鍵次序依次單擊藍色矩形框,設(shè)置完成后單擊表單確認。依次單擊藍色矩形框,設(shè)置完成后單擊表單確認。7.7.設(shè)置設(shè)置TabTab次序次序在VFP中,可將用戶信息保管到文本文件、二進制文件或者數(shù)據(jù)庫中。將信息存儲在數(shù)據(jù)庫中對數(shù)據(jù)的存取、查詢更方便。1.建立新的數(shù)據(jù)庫翻開工程管理器-數(shù)據(jù)選項卡-數(shù)據(jù)庫-新建-

9、新建數(shù)據(jù)庫-文件名:Hrmdata,位置:個人文件夾-保管2.新建表users在工程管理器中翻開新建的數(shù)據(jù)庫-表-新建-文件名:users,位置:個人文件夾-保管-編輯表構(gòu)造。3.1.23.1.2用戶信息存儲方式用戶信息存儲方式字段名字段名 類型類型 寬度寬度 可否為空可否為空 默許值默許值 闡明闡明用戶名用戶名 字符字符 20 20 否否 主索引主索引密碼密碼 字符字符 20 20 否否闡明:闡明:建立表構(gòu)造后,需求將表添加到表單的數(shù)據(jù)環(huán)境中,建立表構(gòu)造后,需求將表添加到表單的數(shù)據(jù)環(huán)境中,以方便操作。步驟:以方便操作。步驟:激活表單,菜單:顯示激活表單,菜單:顯示/ /數(shù)據(jù)環(huán)境數(shù)據(jù)環(huán)境/ /

10、右擊菜單中選擇右擊菜單中選擇“添加添加/選擇數(shù)據(jù)庫:選擇數(shù)據(jù)庫:Hrmdata,Hrmdata,選擇表:選擇表:users/users/添加添加/ /封鎖封鎖. .用戶信息表構(gòu)造用戶信息表構(gòu)造二個按鈕對象的二個按鈕對象的MouseMoveMouseMove事件過程事件過程: :This.MousePointer=99 &This.MousePointer=99 &運用自定義的鼠標指針運用自定義的鼠標指針This.MouseIcon=h_point.cur&This.MouseIcon=h_point.cur&鼠標指針文件鼠標指針文件新建表單屬性新建表單屬性: :

11、為了計數(shù)的需求為了計數(shù)的需求, ,新建一個表單屬性新建一個表單屬性:trytime,:trytime,修正修正默許值為默許值為0,0,操作操作: :激活表單激活表單/ /菜單菜單: :表單表單/ /新建屬性新建屬性/ /屬性名屬性名:trytime,:trytime,添加添加/ /在屬性窗口修正其值為在屬性窗口修正其值為0 03.1.33.1.3添加代碼添加代碼設(shè)計闡明設(shè)計闡明: :單擊確定按鈕時單擊確定按鈕時, ,首先檢測能否輸入用戶名首先檢測能否輸入用戶名, ,密碼密碼, ,假設(shè)輸入那么核對與表中事先保管的能否一致假設(shè)輸入那么核對與表中事先保管的能否一致, ,假假設(shè)一致那么調(diào)系統(tǒng)主表單設(shè)一

12、致那么調(diào)系統(tǒng)主表單, ,否那么檢測出錯次數(shù)否那么檢測出錯次數(shù), ,假假設(shè)到達設(shè)到達3 3次次, ,退出系統(tǒng)退出系統(tǒng), ,否那么清空用戶名和密碼否那么清空用戶名和密碼, ,等等待重新輸入。待重新輸入。dok.clickdok.click過程闡明過程闡明*準確比較SET EXACT ON*嘗試登錄詞數(shù)+1THISFORM.trytime = THISFORM.trytime + 1*判別能否輸入了用戶名IF ALLTRIM(THISFORM.txt用戶名.VALUE)=MESSAGEBOX(請輸入用戶名,48,人力資源管理系統(tǒng))THISFORM.txt用戶名.SetFocusReturnENDIF

13、*獲取輸入的信息USER_N=ALLTRIM(THISFORM.txt用戶名.VALUE)USER_P=ALLTRIM(THISFORM.txt密碼.VALUE)*定義邏輯變量is_user,用于判別能否為合法用戶. cmdok.click. cmdok.click代碼代碼-1/4-1/4LOCAL Is_UserIs_User=.F.*遍歷用戶表中中一切的記錄*判別輸入的用戶稱號和用戶密碼能否存在SELECT usersGO TOPDO WHILE .NOT. EOF()*尋覓與輸入的用戶名和密碼匹配的記錄Is_User=(USER_N=users.用戶名).AND.(USER_P=user

14、s.密碼)*假設(shè)找到IF IS_USEREXITELSESKIPENDIFENDDO. cmdok.click. cmdok.click代碼代碼-2/4-2/4*假設(shè)正確IF IS_USER*保管登錄用戶*cCurUser=ALLTRIM(THISFORM.txt用戶名.Value)*調(diào)用主界面*DO FORM MainForm*退出當前表單THISFORM.RELEASE*假設(shè)登錄不正確ELSE*假設(shè)嘗試次數(shù)到達3次IF THISFORM.trytime = 3MESSAGEBOX(曾經(jīng)延續(xù)錯誤,請重啟程序!, 0+16, 人力資源管理系統(tǒng)). cmdok.click. cmdok.clic

15、k代碼代碼-3/4-3/4THISFORM.RELEASECLEAR EVENTSQUITENDIF*假設(shè)還沒有到3次MESSAGEBOX(用戶名或用戶密碼不正確!,0+16,人力資源管理系統(tǒng))THISFORM.txt用戶名.Value=THISFORM.txt密碼.Value=THISFORM.txt用戶名.SetFocusENDIF*模糊比較SET EXACT OFF. cmdok.click. cmdok.click代碼代碼-4/4-4/4用戶單擊時彈出確認對話框,假設(shè)用戶確認那么。退出系統(tǒng)。代碼:*確認對話框YN = MESSAGEBOX(確定退出,4+32,人力資源管理系統(tǒng))IF Y

16、N = 6*退出登錄表單THISFORM.RELEASE*去除事件循環(huán)Clear EVENTS*退出Visual FoxProQUITENDIF. .退出按鈕設(shè)計闡明退出按鈕設(shè)計闡明users表中存放的用戶名和密碼都是非加密的。進展必要的加密處置后才干保證系統(tǒng)平安。加密操作中可以運用Bitxor函數(shù),該函數(shù)的格式如下:BITXOR(n1, n2)功能:前往n1, n2兩個數(shù)值型數(shù)值按位進展異或運算的結(jié)果。假設(shè) n1 和 n2 不是整數(shù),那么它們在位操作之前,將轉(zhuǎn)換成整數(shù)。函數(shù)比較 n1 和 n2 的每個對應位。假設(shè)一個數(shù)的某一位為 0,并且另一個數(shù)相應位為 1,那么操作結(jié)果的對應位等于 1;否

17、那么等于 0。經(jīng)過建立含有Bitxor自定義函數(shù)encode.prg,實現(xiàn)對用戶名和密碼的加密處置。3.23.2密碼處置密碼處置 函數(shù)格式:函數(shù)格式:encode(nStr,nCode)encode(nStr,nCode)nStr-nStr-待加密的字符串待加密的字符串nCode-nCode-加密的密鑰加密的密鑰前往值:前往值:nCodenCode對對nStrnStr每一字符位異或運算后結(jié)果。每一字符位異或運算后結(jié)果。建立步驟:建立步驟:工程工程/ /代碼代碼/ /程序程序/ /新建新建/編輯代碼,保管,文件名:編輯代碼,保管,文件名:encode.prg,encode.prg,位置:個人文件

18、夾位置:個人文件夾 運用方法:密鑰是一個運用方法:密鑰是一個255255以內(nèi)的整數(shù)以內(nèi)的整數(shù)加密:加密串加密:加密串=Encode(=Encode(源串,密鑰源串,密鑰解密:源串解密:源串=Encode(=Encode(加密串,密鑰加密串,密鑰) ). .加密函數(shù)闡明加密函數(shù)闡明FUNCTION Encode(sStr,nCode)*聲明需求運用的本地變量LOCAL sTmpStr,cTempChr,i*sTempStr:用來保管昨時的編碼或者解碼后的字符串*cTempChr:用來保管編碼或者解碼后的字符*i:循環(huán)計數(shù)*對變量賦初值sTempStr=cTempChr=*假設(shè)未指定密鑰. .加密函數(shù)代碼加密函數(shù)代碼-1/2-1/2IF nCode=0nCode=184ENDIF*對字符串的每個字符進展編碼FOR i=1 TO LEN(ALLTRIM(sStr)cTempChr=BITXOR(ASC(SUBSTR(sStr,i,1),nCode)sTempS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論