【正文】
meif eof() go bottom appe blan repl uname with _username ,upassword with _pass , uquanxian with _quanxian for empty(uname) messagebox(添加用戶成功!) else messagebox(對不起,該用戶名已存在,請重新輸入!) = = = returnendif===命令按鈕“取消”的“click”事件的代碼如下: ㈥ 修改口令表單 該表單包括了5個標(biāo)簽、1個組合框、3個文本框、2個按鈕和一個容器 界面設(shè)置好后,對各個控件進(jìn)行修改和編輯: 將兩個按鈕的“caption”屬性分別設(shè)置為“確定”和“取消”,并對它們進(jìn)行編程:對“確定”按鈕的“click”事件編寫代碼: xm1=ALLTRIM()kl1=ALLTRIM()xin=ALLTRIM()que=ALLTRIM()LOCATE FOR ALLTRIM(uname)=xm1 and ALLTRIM(upassword)=kl1IF .NOT. EOF() IF xin==que REPLACE upassword WITH xin messagebox(口令修改成功,你的新口令是:+alltrim()+請確認(rèn),辦公用品管理系統(tǒng)) ELSE = = =MESSAGEBOX(您輸入的新舊口令不一致,請重輸!.48+0+0,“消息窗口!”) ENDIFENDIF㈦ 刪除用戶表單該表單包括了2個標(biāo)簽、1個組合框、1命令按鈕組;把兩個按鈕的“caption”屬性分別改為“確認(rèn)”和“取消”,對“確認(rèn)”命令按鈕的“click”事件編寫代碼:IF NOT USED(usepass) SELECT 0 USE usepass EXCLUSIVEENDIF_user=allt()if empty(_user) messagebox(請選擇要刪除的用戶!) returnendif cMessageTitle=刪除用戶 cMessageText=確認(rèn)要刪除該用戶嗎? nDialogType=4+32 nanswer=MESSAGEBOX(cMessageText,nDialogType,cMessageTitle)if nAnswer=6 dele for upper(alltrim(uname))==upper(_user) messagebox(刪除用戶成功!) endif對“取消”命令按鈕的“click”事件編寫代碼:㈧ 管理系統(tǒng)表單該表單是系統(tǒng)的主界面,它包括了3個標(biāo)簽、5個按鈕、1個頁框、1個表格、7個組合框;將幾個按鈕的“caption”分別設(shè)置為新增類別、物品入庫、領(lǐng)用登記、退出系統(tǒng)和確定;然后對各個命令按鈕進(jìn)行編程: 先對新增類別的“click”事件編寫代碼:DO FORM frm_addleibie對物品入庫的“click”事件編寫代碼:DO FORM frm_addjiku對領(lǐng)用登記的“click”事件編寫代碼:DO FORM frm_addlingqu對退出系統(tǒng)的“click”事件編寫代碼“CLOSE ALLCLEAR EVENTSquit對確定命令按鈕的“click”事件編寫代碼:cqi=ctod(ALLTRIM()+.+ALLTRIM()+.+ALLTRIM())czhi=ctod(ALLTRIM()+.+ALLTRIM()+.+ALLTRIM())IF NOT USED(lingquview) SELECT 0 USE lingquviewENDIFSELECT lingquviewSELECT * from lingquview order by bumen INTO dbf c:\newsoft\myreport WHERE riqi between cqi AND czhireport form c:\newsoft\myreport prev㈨ 年報表生成表單該表單包括了2個標(biāo)簽、1個組合框、2個命令按鈕組;然后對各表單控件進(jìn)行設(shè)置,將2個命令按鈕的“caption”屬性設(shè)置為“確定”和“取消”,對“確認(rèn)”命令按鈕的“click”事件編程:IF NOT USED(lingquview) SELECT 0 USE lingquviewENDIFSELECT lingquviewLOCATE FOR year(riqi)=val(alltrim())IF FOUND() SELECT * from lingquview order by bumen INTO dbf c:\newsoft\myreport WHERE year(riqi)=val(alltrim()) report form c:\newsoft\myreport prevELSE MESSAGEBOX(對不起,沒有此記錄!)ENDIF對“取消”命令按鈕的“click”事件編程:㈩ 季報表生成表單該表單包括了4個標(biāo)簽、1個組合框、2個命令按鈕組;然后對各表單控件進(jìn)行設(shè)置,將2個命令按鈕的“caption”屬性設(shè)置為“確定”和“取消”,對“確認(rèn)”命令按鈕的“click”事件編程:IF NOT USED(lingquview) SELECT 0 USE lingquviewENDIFSELECT lingquviewcjidu=VAL(ALLTRIM())DO CASE CASE cjidu=1 LOCATE FOR year(riqi)=val(alltrim()) AND month(riqi)=3 IF FOUND() SELECT * from lingquview。該表單的設(shè)計界面與新購物品表單差不多,可以根據(jù)上面的步驟進(jìn)行設(shè)計,這里就只介紹一下兩個命令按鈕的“click”事件代碼,其中:命令按鈕“確定”的“click”事件代碼如下:DIMENSION cdanjia[1]cleibie=ALLTRIM()cpinpai=ALLTRIM()cbumen=alltrim()cshuliang=VAL(ALLTRIM())clingquren=ALLTRIM()criqi=CTOD(ALLTRIM()+.+ALLTRIM()+.+ALLTRIM())cbeizhu=ALLTRIM()IF NOT USED(jiku) SELECT 0 USE jikuENDIF*自動計算單價IF NOT USED(jiku) SELECT 0 USE jikuENDIFSELECT danjia FROM jiku。 WHERE ALLTRIM(leibie)==cleibie AND ALLTRIM(pinpai)=cpinpaielse INSERT INTO jiku。,如下圖所示:該表單包括了3個標(biāo)簽、1個組合框、1個文本框、1個按鈕組(包括了“確定”和“取消”兩個命令按鈕),其中:命令按鈕的“caption”屬性分別為確定和取消,文本框的“password”屬性為“*”,命令按鈕“確定”的“click”事件代碼如下:public clevel,cczyclevel=if not used(usepass) sele 0 use usepassendiflocate for alltrim(uname)==alltrim()cczy=alltrim()if upper(alltrim())==upper(alltrim(upassword)) clevel=alltrim(uquanxian) do form faceelse cMessageTitle=辦公用品管理系統(tǒng) cMessageText=口令錯誤,要重新輸入嗎? nDialogType=4+32 nanswer=MESSAGEBOX(cMessageText,nDialogType,cMessageTitle) do case case nAnswer=6 = case nAnswer=7 cMessageText=你不是合法用戶,請離開! MESSAGEBOX(cMessageText,0,cMessageTitle) endcaseendif命令按鈕“取消”的“click”事件代碼如下:clear eventsquit㈡ 新購物品錄入表單辦公用品的添置和更新要有計劃并嚴(yán)格遵守設(shè)備購置和管理的規(guī)程。㈠ 系統(tǒng)登錄表單設(shè)計為了保證系統(tǒng)的保密性,在進(jìn)入系統(tǒng)時應(yīng)輸入用戶名以及密碼。表單有多種屬性和方法,通過對各種屬性和方法的設(shè)置,可以改變表單的外觀和操作行為。創(chuàng)建表單與代碼設(shè)計Visual FoxPro ,它提供靈活方便的界面設(shè)計工具,這就是表單。在“創(chuàng)建”對話框中輸入表名:””,保存表單進(jìn)入表設(shè)計器。具體操作步驟如下: 在項目管理器的“全部頁”或“數(shù)據(jù)頁”中選中“數(shù)據(jù)庫”,再單擊項目管理器右邊的“新建”按鈕,將會彈出“新建數(shù)據(jù)庫”對話框,單擊“新建數(shù)據(jù)庫”按鈕,將會彈出“創(chuàng)建“數(shù)據(jù)庫”對話框。通過數(shù)據(jù)庫,可以創(chuàng)建表與表之間的永久關(guān)聯(lián)和存儲過程、建立字段、記錄和有效性規(guī)則、設(shè)置字段缺省值、建立觸發(fā)器、建立與遠(yuǎn)程數(shù)據(jù)源的連接、創(chuàng)建表和本地表的視圖。建立數(shù)據(jù)庫和表項目管理器建好以后,就可以建立辦公用品管理系統(tǒng)所需的表的數(shù)據(jù)了。(4) 在彈出的“創(chuàng)建”對話框中輸入創(chuàng)建項目文件名和選擇文件保存目錄。Visual ,項目管理器的主要功能是對應(yīng)用程序的所有文件(包括表、表單、數(shù)據(jù)庫、報表、查詢和其他部件)進(jìn)行統(tǒng)一組織和管理。15 退出:退出系統(tǒng)。14 限設(shè)置:本系統(tǒng)可以設(shè)置用戶權(quán)限,根據(jù)權(quán)限可以實(shí)現(xiàn)不同級別的操作;修改超級用戶密碼。注:設(shè)想改為到一定時期(如一個月),自動備份數(shù)據(jù),打印報表,交財務(wù)分?jǐn)傎M(fèi)用。10 物品入庫:采購來的物品應(yīng)及時入庫,若兩次采購相同的物品,系統(tǒng)會自動計算其平均價格,并更新購買日期。⑵ 類別添加:添加所購物品分類,如鋼筆、筆記本等。1 多用戶數(shù)據(jù)安全管理,保證各部門的數(shù)據(jù)安全、完整,對每個使用本系統(tǒng)用戶進(jìn)行權(quán)限的設(shè)置1 簡易操作,不需要計算機(jī)專業(yè)人員1 預(yù)留接口,系統(tǒng)的可擴(kuò)展性功能,保證軟件的永不落后1 支持計算機(jī)網(wǎng)絡(luò),可擴(kuò)展至互聯(lián)網(wǎng)(Internet),也支持單機(jī)獨(dú)立運(yùn)行.二、系統(tǒng)功能(1) 權(quán)限:該系統(tǒng)分為超級戶和一般用戶。一、需求分析 物品資料的數(shù)據(jù)庫建立和管理 物品信息的增加、刪除變化的處理如物品類別的添加、物品類別的修改、新購物品的錄入、領(lǐng)取物品的錄入等等,保證所有物品信息的完整、有效1 按年、季、月或自定義一段時期打印報表。但使用主程序顯得更規(guī)范。在Visual FoxPro 。(2) 在菜單設(shè)計器對話框中分別將主菜單項的名稱輸入到“菜單名稱”文本框中。主菜單用來控制系統(tǒng)中的各項操作,從開始的總體結(jié)構(gòu)圖,我們不難得出應(yīng)用程序的菜單,如下圖: 系統(tǒng)數(shù)據(jù)處理報表生成用戶管理幫助 初始化系統(tǒng)新購物品錄入 年報表修改口令幫助主題 物品類別添加領(lǐng)取物品錄入 季報表用戶添加自述文件物品類別修改 月報表關(guān)于退出系統(tǒng)本系統(tǒng)采用菜單作為初始化界面,并設(shè)置一個主文件來調(diào)用該菜單程序;也可以采用表單作為初始界面,則需要在表單上設(shè)置若干個按鈕來表示各子系統(tǒng)的功能;菜單中的各項功能,要對它進(jìn)行設(shè)計和編碼才能實(shí)現(xiàn)。本系統(tǒng)報表界面如下圖:六、菜單設(shè)計 Visual FoxPro “菜單設(shè)計器”可以簡便、快捷地創(chuàng)建菜單,提高應(yīng)用程序的質(zhì)量。 報表設(shè)計是應(yīng)用程序設(shè)計中非常重要的工作,報表設(shè)計主要分兩個步驟來完成:第一步,用報表設(shè)計器設(shè)計報表;第二步,編程調(diào)用報表。 WHERE year(riqi)=val(alltrim()) AND month(riqi)=val(cyue) report form c:\newsoft\myreport prevELSE MESSAGEBOX(對不起,沒有此記錄!)ENDIF對“取消”命令按鈕的“click”事件編程:五、報表設(shè)計 報表是數(shù)據(jù)庫管理系統(tǒng)中最常使用的查看數(shù)據(jù)的手段之一。)月報表生成表單該表單包括了4個標(biāo)簽、1個組合框、2個命令按鈕組;然后對各表單控件進(jìn)行設(shè)置,將2個命令按鈕的“caption”屬性設(shè)置為“確定”和“取消”,對“確認(rèn)”命令按鈕的“click”事件編程: IF NOT USED(lingquview) SELECT 0 USE lingquviewENDIFSELECT lingquviewcyue=ALLTRIM()LOCATE FOR year(riqi)=val(alltrim()) AND month(riqi)=val(cyue)IF FOUND() SELECT * from lingq