數(shù)據(jù)庫(kù)設(shè)計(jì)完整流程_第1頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)完整流程_第2頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)完整流程_第3頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)完整流程_第4頁(yè)
數(shù)據(jù)庫(kù)設(shè)計(jì)完整流程_第5頁(yè)
已閱讀5頁(yè),還剩51頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、目錄實(shí)驗(yàn)一軟件分析3一、功能說(shuō)明3二、E-R圖3三、邏輯表格5四、任務(wù)6實(shí)驗(yàn)二創(chuàng)建項(xiàng)目及數(shù)據(jù)庫(kù)6一、創(chuàng)建項(xiàng)目6二、創(chuàng)建數(shù)據(jù)庫(kù)6三、創(chuàng)建表并設(shè)定索引6四、建立表之間的關(guān)系8五、任務(wù)9實(shí)驗(yàn)三數(shù)據(jù)可視化操作9一、添加記錄9二、修改記錄12三、刪除記錄12四、任務(wù)12實(shí)驗(yàn)四使用命令操作數(shù)據(jù)庫(kù)12一、數(shù)據(jù)庫(kù)及表操作12二、任務(wù)15實(shí)驗(yàn)五表單設(shè)計(jì)15一、表單分析15二、使用向?qū)?chuàng)建表單16三、使用表單設(shè)計(jì)器修改表單19四、完成其他表單23實(shí)驗(yàn)六編寫代碼28一、創(chuàng)建系統(tǒng)主程序28二、編寫登錄表單的代碼29三、編寫主表單程序代碼30四、編寫管理員管理代碼34五、提示信息添加代碼36六、編寫管理信息代碼37七、

2、今日提醒代碼編寫39八、編寫部門管理代碼41九、員工管理代碼編寫45十、使菜單和工具欄與表單關(guān)聯(lián)45十一、任務(wù)46實(shí)驗(yàn)七設(shè)計(jì)報(bào)表46一、為報(bào)表準(zhǔn)備數(shù)據(jù)46二、設(shè)計(jì)報(bào)表47三、操作注意51四、運(yùn)行表單51五、任務(wù)51實(shí)驗(yàn)八編譯發(fā)布52一、軟件的編譯52二、制作安裝盤52三、任務(wù)56實(shí)驗(yàn)九分析及優(yōu)化56實(shí)驗(yàn)一 軟件分析請(qǐng)從網(wǎng)站下載示例程序,分析軟件的功能并列出,并從中抽象出實(shí)體,畫(huà)出軟件的ER圖并進(jìn)行數(shù)據(jù)庫(kù)邏輯設(shè)計(jì),畫(huà)出數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)表格。參考如下:一、 功能說(shuō)明1) 系統(tǒng)登錄控制:要求填寫用戶名及密碼,并進(jìn)行了3次連續(xù)錯(cuò)誤后系統(tǒng)退出功能.2) 部門編碼設(shè)置:主要是用來(lái)設(shè)置部門的層級(jí)關(guān)系。3) 部

3、門信息設(shè)置:部分的基本信息,如地址、電話等。4) 員工信息管理:管理企業(yè)內(nèi)部員工的信息,還可以設(shè)置生日提醒.5) 提醒設(shè)置功能:可以通過(guò)設(shè)置信息及接收用戶及時(shí)間,當(dāng)被設(shè)置的用戶登錄時(shí)顯示給用戶。6) 今日提醒功能:根據(jù)提醒設(shè)置,顯示相應(yīng)信息。7) 系統(tǒng)設(shè)置:修改使用軟件的單位信息。8) 密碼修改功能:修改用戶的密碼。二、 ER圖首先是進(jìn)行實(shí)體的抽象,通過(guò)系統(tǒng)登錄功能及用戶密碼修改功能,我們可以抽象出“用戶”實(shí)體,通過(guò)部門編碼及部門信息管理功能,可以抽象出“部門”實(shí)體,通過(guò)員工信息管理可得到“員工”實(shí)體,通過(guò)提醒功能及今日提醒功能可以抽象出“提醒"實(shí)體,最后就是系統(tǒng)基本信息,可以得到“

4、系統(tǒng)”實(shí)體.部門信息員工信息提醒信息包含提醒1nn1實(shí)體之間關(guān)系有ER圖提醒信息編碼員工編號(hào)提醒類別提醒內(nèi)容提醒日期提醒實(shí)體用戶信息用戶名密碼姓名用戶信息實(shí)體的ER圖部門信息編號(hào)上層編號(hào)單位名稱單位地址。部門信息實(shí)體的ER圖員工信息編號(hào)姓名生日電話。員工信息實(shí)體的ER圖系統(tǒng)信息企業(yè)名稱顯示提醒系統(tǒng)信息實(shí)體的ER圖三、 邏輯表格通過(guò)上面的ER圖,我們已經(jīng)確立了實(shí)體,現(xiàn)在我們要進(jìn)一步把實(shí)體及屬性更完善,進(jìn)行數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)提醒信息字段名字段類型寬度可否為空默認(rèn)值說(shuō)明Warnid自動(dòng)編號(hào)4主索引emplyid整型4否0普通索引當(dāng)為0時(shí)代表發(fā)給所有用戶Wtype整型4不同的數(shù)值代表不同類型showda

5、te日期型8顯示日期msg字符型200顯示的信息用戶信息字段名字段類型寬度可否為空默認(rèn)值說(shuō)明uname字符型20否主索引,用戶名upwd字符型20否0密碼truename字符型8真實(shí)姓名部門信息字段名字段類型寬度可否為空默認(rèn)值說(shuō)明ID自動(dòng)4主索引,編號(hào)TopID整型4上層編號(hào)DPName字符50單位名稱DPAddr字符100單位地址DPPhone字符30單位電話DPPerson字符8單位聯(lián)系人員工信息字段名字段類型寬度可否為空默認(rèn)值說(shuō)明ID自動(dòng)4編號(hào),主索引uname字符8姓名usex字符2性別birthday日期8生日DPID整型4所屬部門ISMsg邏輯1是否生日提醒上面的字符可以進(jìn)行相應(yīng)的

6、增加或刪減,關(guān)鍵在于想實(shí)現(xiàn)的功能。四、 任務(wù)仔細(xì)分析軟件本身,并可以進(jìn)行相應(yīng)改進(jìn),完成軟件分析任務(wù).把個(gè)人設(shè)計(jì)的軟件也進(jìn)行上述的過(guò)程,完成數(shù)據(jù)庫(kù)概念設(shè)計(jì)及邏輯設(shè)計(jì)。實(shí)驗(yàn)二 創(chuàng)建項(xiàng)目及數(shù)據(jù)庫(kù)一、 創(chuàng)建項(xiàng)目1) 在硬盤的相應(yīng)目錄下建立自己的項(xiàng)目文件夾,并在文件夾下建立data和doc兩個(gè)文件夾分別用來(lái)存放數(shù)據(jù)文件及開(kāi)發(fā)文檔。2) 打開(kāi)VFP8。0,建立項(xiàng)目文件,命名為EPUser(可任意,為了后面方便表達(dá))。二、 創(chuàng)建數(shù)據(jù)庫(kù)在項(xiàng)目管理器中新建一個(gè)數(shù)據(jù)庫(kù)EPData,并保存在Data文件夾中。三、 創(chuàng)建表并設(shè)定索引1) 在EPData數(shù)據(jù)庫(kù)下創(chuàng)建新表warning。表設(shè)計(jì)器如下:2) 在warnid

7、上建立主索引,在emplyid上建立普通索引。3) 依照上邊的方法建立其他數(shù)據(jù)表。最終如下:四、 建立表之間的關(guān)系1) 選中Epdata數(shù)據(jù)庫(kù),單擊修改打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器2) 把主表的主索引拖至從表的普通索引上建立關(guān)系五、 任務(wù)a) 完成企業(yè)員工管理軟件的項(xiàng)目創(chuàng)建及數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)表的創(chuàng)建,并建立相應(yīng)關(guān)系.b) 完成自主設(shè)計(jì)的軟件的數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)表的創(chuàng)建工作.實(shí)驗(yàn)三 數(shù)據(jù)可視化操作一、 添加記錄a) 打開(kāi)實(shí)驗(yàn)二創(chuàng)建的項(xiàng)目,并打開(kāi)epdata數(shù)據(jù)庫(kù)的設(shè)計(jì)器。b) 雙擊Depart和employ表之間的關(guān)系線,打開(kāi)關(guān)系設(shè)定窗口.c) 選擇“referential integrity”選項(xiàng),并選擇插入規(guī)

8、則,選擇級(jí)連項(xiàng),實(shí)現(xiàn)兩表之間的“相對(duì)完整性",確定退出窗體。d) 在項(xiàng)目管理器中選擇depart表,并選擇“瀏覽”,打開(kāi)瀏覽窗口,在“顯示”菜單中選擇“追加模式”,在表中添加兩條數(shù)據(jù),如下圖,在這里我們可以看到“聊城大學(xué)”這個(gè)部門的topid為0而“教育傳播技術(shù)學(xué)院”的topid為“聊城大學(xué)"的id,通過(guò)這種方式實(shí)現(xiàn)部門間的級(jí)別管理,這種方式在開(kāi)發(fā)中經(jīng)常使用。e) 關(guān)閉depart表,再打開(kāi)employ表,使用上述方式添加數(shù)據(jù),當(dāng)我們?cè)贒pid中添加了一個(gè)depart表中未出現(xiàn)的ID值時(shí),會(huì)出現(xiàn)如下錯(cuò)誤,而輸入的值為正確的,則會(huì)被確認(rèn),從這里我們可以看到完整性檢查的作用.f

9、) 建立一個(gè)與employ結(jié)構(gòu)相同的表employ1,在表中添加一些數(shù)據(jù)。g) 在打開(kāi)employ表,選擇“表”菜單中的追加記錄,如下圖,點(diǎn)擊來(lái)源后面的瀏覽按鈕,找到employ1表,并設(shè)置選項(xiàng),選中除自動(dòng)編號(hào)以外的所有字段,確定后,查看employ表中是否添加了employ1中的數(shù)據(jù).二、 修改記錄打開(kāi)一個(gè)添加了數(shù)據(jù)的表格,然后使用“顯示”菜單中的“編輯"實(shí)現(xiàn)對(duì)數(shù)據(jù)的修改,不再演示,大家也可以設(shè)置表之間的關(guān)系,看一下更新規(guī)則的作用。三、 刪除記錄a) 打開(kāi)一個(gè)有數(shù)據(jù)的表格,點(diǎn)擊記錄左側(cè)的小矩形,這樣記錄便被邏輯刪除b) 進(jìn)行物理刪除,打開(kāi)“表"菜單,選擇徹底刪除,便可以實(shí)

10、現(xiàn)“物理刪除"四、 任務(wù)在我們建立的表中添加適量數(shù)據(jù),以方便后續(xù)操作.實(shí)驗(yàn)四 使用命令操作數(shù)據(jù)庫(kù)一、 數(shù)據(jù)庫(kù)及表操作1) 創(chuàng)建數(shù)據(jù)庫(kù):Create DataBase stumanage2) 創(chuàng)建表:Create table classes(cid I AutoInc primarykey,classname c(20))Create Table student(stuid c(10) primary key,stuname c(10),sex c(2) check sex='男 or sex=女 error “此數(shù)據(jù)只能為男或女” default 男,classid I,fo

11、reign key classid tag classid references classes)3) 修改表結(jié)構(gòu):ALTER TABLE classes add teacher c(6)ALTER TABLE classes alter teacher c(8)ALTER TABLE classes rename teacher to managerALTER TABLE classes drop manager4) 在當(dāng)前工作期中打開(kāi)要使用的表:USE classes或select classes5) 插入數(shù)據(jù):insert into classes(classname)values(20

12、04級(jí)1班)insert into classes(classname)values(2004級(jí)2班)insert into classes(classname)values(2004級(jí)3班)6) 瀏覽數(shù)據(jù):browse或display或list,會(huì)發(fā)現(xiàn)使用display時(shí)只顯示第一條記錄,這時(shí)需要使用范圍語(yǔ)句 display all,大家可以使用條件語(yǔ)句看一下結(jié)果。7) 查看當(dāng)前記錄各信息:? recno() 顯示當(dāng)前記錄號(hào)? Bof()&查看記錄指針是否在最前?Eof()查看記錄指針是否在最后skip 1使記錄指針向前滾動(dòng)一條? recno()?Bof()?Eof()goto to

13、p&使記錄指針移到頂端? recno()?Bof()?Eof()8) 條件定位:locate for cid=2? recno()9) 在學(xué)生表中插入數(shù)據(jù):INSERT into student(stuid,stuname,sex,classid)values(20040101','zhang,'男,1)INSERT into student(stuid,stuname,sex,classid)values(20040102',wang,'女,2)10) 修改學(xué)生數(shù)據(jù):update student set classid=3 where stui

14、d=2004010111) 刪除學(xué)生記錄:DELETE FROM student where stuid=20040101LIST12) 恢復(fù)被邏輯刪除的記錄:RECALL all13) 再執(zhí)行上面的刪除命令后使用Pack命令,把記錄從磁盤徹底刪除。14) 執(zhí)行查詢:a) select from studentb) select stuid,stuname from studentc) 向?qū)W生表中多插入幾條記錄d) select distinct sex from studente) select sex as 性別 from studentf) select from student whe

15、re stuid=20040101g) select * from student where stuid in(20040101,20040102)h) SELECT from student where stuname like 'wi) SELECT from student where stuname like 'w_j) SELECT * from student where stuname like _a'k) select count(*) as 學(xué)生總數(shù) from studentl) SELECT A.*,B。classname from student

16、 A,classes B where A.classid=B。cidm) SELECT A.,B。classname from student A inner join classes B on A.classid=B.cidn) SELECT A。,B。classname from student A right outer join classes B on A.classid=B.cido) SELECT from student order by stuid descp) SELECT top 1 from student order by stuid descq) Select co

17、unt() as stucount,classid from student group by classidr) Select from student into cursor test15) 刪除表:drop table studentdrop table classes16) 刪除數(shù)據(jù)庫(kù):CLOSE ALLDELETE DATABASE stumanage二、 任務(wù)使用上面的命令在員工管理數(shù)據(jù)庫(kù)表的添加一些記錄實(shí)驗(yàn)五 表單設(shè)計(jì)一、 表單分析根據(jù)實(shí)驗(yàn)一中的項(xiàng)目功能分析,我們需要?jiǎng)?chuàng)建以下幾個(gè)表單。1) 部分信息管理表單:實(shí)現(xiàn)對(duì)部分信息的添加、修改、刪除等管理2) 員工信息管理表單:實(shí)現(xiàn)對(duì)員工

18、信息的添加、修改、刪除等管理3) 管理員管理表單:實(shí)現(xiàn)對(duì)管理員的添加、刪除等管理4) 當(dāng)前用戶密碼修改表單:修改當(dāng)前用戶的密碼和真實(shí)姓名5) 信息提示表單:當(dāng)啟動(dòng)軟件時(shí)顯示提示信息6) 提示信息設(shè)置表單:設(shè)置提示信息7) 登錄表單8) 系統(tǒng)設(shè)置表單9) 關(guān)于表單二、 使用向?qū)?chuàng)建表單1) 打開(kāi)員工管理項(xiàng)目,這里需要注意的是,VFP軟件有可能對(duì)中文目錄支持不太好,如果出現(xiàn)類似問(wèn)題,請(qǐng)把項(xiàng)目放在一個(gè)英文目錄中。2) 在項(xiàng)目管理器中選擇文檔(documents),選擇表單,并新建。3) 選擇使用向?qū)В@里有兩項(xiàng),一項(xiàng)是表單向?qū)В硪粋€(gè)是一對(duì)多表單向?qū)В梢钥闯鑫覀円部梢允褂孟驅(qū)Мa(chǎn)生基于兩個(gè)表的表單。

19、4) 選擇使用到的表字段,這里實(shí)現(xiàn)管理員管理的表單,所以選擇Manager表中的所有字段.5) 選擇表單樣式,使用默認(rèn)即可.6) 選擇排序字段,這里也可以不選擇。7) 最后一步,設(shè)置表單標(biāo)題并設(shè)置保存,在項(xiàng)目文件夾下建立forms文件夾,并把表單保存在內(nèi)。8) 最終效果如下:9) 在我們的創(chuàng)建的數(shù)據(jù)庫(kù)中,部門表與員工表之間存在一對(duì)多關(guān)系,使用向?qū)ё约航⒁粋€(gè)一對(duì)多的表單。三、 使用表單設(shè)計(jì)器修改表單使用向?qū)傻谋韱斡袝r(shí)不能滿足我們的需要,這時(shí),我們需要使用表單設(shè)計(jì)器來(lái)完善表單的設(shè)計(jì).下面我們來(lái)修改一下上面的表單。1) 選擇我們剛才創(chuàng)建的表單,進(jìn)行修改2) 下面是表單設(shè)計(jì)器,同時(shí)會(huì)打開(kāi)表單控件

20、面板和屬性面板3) 選擇表格控件,并在表單中單擊,把控件添加到表單中.4) 使用表格生成器來(lái)使表格與數(shù)據(jù)表之間綁定.5) 選擇顯示的字段。6) 設(shè)置顯示樣式7) 修改表格字段顯示的標(biāo)題。8) 點(diǎn)擊OK完成修改,關(guān)閉設(shè)計(jì)器并保存修改,使用項(xiàng)目管理器運(yùn)行表單查看最終效果。9) 對(duì)于由向?qū)傻目丶?,可以通過(guò)屬性面板進(jìn)行修改,如改變標(biāo)題顯示(caption)。10) 通過(guò)上述方式,多加測(cè)試,掌握表單設(shè)計(jì)的基本方法.四、 完成其他表單1) 部門信息管理:這里要用到一個(gè)Activex控件,方法是,打開(kāi)“工具"菜單,選項(xiàng)中選擇控件面板,找到如下圖的控件:后從控件面板中選擇如下:就可以看到我們選擇

21、的組件,拖放到表單中就可以了。2) 員工信息管理3) 登錄表單4) 管理員管理表單5) 用戶密碼修改表單6) 提示信息管理表單7) 提示信息添加表單,這里用了一個(gè)時(shí)間控件,如TreeView控件一樣,自行添加進(jìn)來(lái)即可。8) 提示信息顯示表單實(shí)驗(yàn)六 編寫代碼本實(shí)驗(yàn)分三次完成,主要實(shí)現(xiàn)程序的所有代碼,了解程序開(kāi)發(fā)過(guò)程及代碼開(kāi)發(fā)技巧.一、 創(chuàng)建系統(tǒng)主程序主程序是所編寫程序的入口,主要設(shè)置運(yùn)行環(huán)境、定義變量、常量,然后調(diào)用其他表單,本程序文件保存為main.prg。CLEARCLEAR ALL把系統(tǒng)菜單隱藏掉SET SYSMENU off程序運(yùn)行時(shí)不允許使用ESC鍵退出SET ESCAPE OFF關(guān)閉

22、命令顯示SET TALK OFF*覆蓋時(shí)不要確認(rèn)SET SAFETY OFF設(shè)置時(shí)間格式,使用四位顯示年代SET CENTURY onSET DATE YMD定義一個(gè)公共變量,保存當(dāng)前用戶信息PUBLIC curuser*調(diào)用登錄表單DO FORM formslogin進(jìn)入事務(wù)處理,當(dāng)執(zhí)行clean events時(shí)結(jié)束READ events當(dāng)結(jié)束循環(huán)時(shí)執(zhí)行退出quit二、 編寫登錄表單的代碼打開(kāi)實(shí)驗(yàn)五中已經(jīng)制作的Login表單,修改控件相應(yīng)屬性。控件屬性值組合框NameunameRowsourcemanager。unameRowsourcetype6-fieldsStyle2dropdown

23、list文本框NameUpwdPasswordchar表單AutocenterTrueBorderstyle2固定對(duì)話框ClosbleFCaption用戶登錄controlboxFMaxButtonFMinButtonFNameFrmloginShowwindow作為頂層表單Windowtyp模式選中表單,從屬性面板中找到init事件,添加如下代碼:定義一個(gè)公共變量來(lái)保存登錄次數(shù)PUBLIC logincountlogincount=0雙擊登錄按鈕,打開(kāi)按鈕的click事件:IF ALLTRIM(thisform。uname。Value)="” thenMESSAGEBOX(”沒(méi)有選

24、擇用戶名!!”)ELSELOCATE FOR uname=ALLTRIM(thisform.uname。value)IF ALLTRIM(thisform.upwd.Value)=ALLTRIM(upwd) thencuruser=thisform.uname。valuethisform.ReleaseDO FORM formsmainreturnELSElogincount=logincount+1IF logincount<3 thenthisform。upwd.Value=”thisform.upwd.SetFocusMESSAGEBOX(”您的密碼輸入錯(cuò)誤,請(qǐng)重新輸入!”,16,

25、"錯(cuò)誤”)ELSEMESSAGEBOX(”對(duì)不起,錯(cuò)誤次數(shù)已達(dá)3次,不能進(jìn)入系統(tǒng)!!",16,”報(bào)歉")thisform。ReleaseCLEAR EVENTSCLOSE ALLquitendifendifENDIF為退出添加click事件:thisform.ReleaseCLEAR EVENTSquit三、 編寫主表單程序代碼主表單主要是起到調(diào)用其他表單的作用,在這里我們添加一個(gè)菜單和一個(gè)工具欄,從而了解如何創(chuàng)建表單與工具欄,以及如何在程序中使用它們.創(chuàng)建主表單,保存為main,設(shè)置屬性如下:控件屬性值表單AutocenterTrueCaption企業(yè)員工管理系

26、統(tǒng)Height600Width600MDIformTNameFrmmainShowwindow作為頂層表單Windowtyp模式創(chuàng)建菜單,在項(xiàng)目管理器中選擇“其他”選項(xiàng)卡,選中菜單,新建:選擇Menu,先制作如圖的菜單然后選擇菜單“顯示-常規(guī)選項(xiàng)”選中“頂層表單",設(shè)計(jì)表單時(shí)要注意的問(wèn)題是,需要生成,而且每一次改動(dòng)后都需要生成,否則使用的菜單是未生成前的菜單?!安藛紊刹藛巍保汉昧?下面我們把菜單加入到主表單中去。打開(kāi)主表單,添加“init"事件:DO menumain。mpr WITH this這里的菜單地址,請(qǐng)根據(jù)自己的保存位置確定。這里保存到menu文件件下了。可以運(yùn)

27、行主表單看一下效果了。下面制作工具欄,選擇“類”選項(xiàng)卡,新建類:從ToolBar類繼承制作自己的工具欄,添加按鈕,圖片資源可以從FTP得到。設(shè)置Showwindow屬性值為“在頂層表單中"。因?yàn)楣ぞ邫谑桥c表單一級(jí)的對(duì)象,所以表單中不能容納工具欄,所以需要建立一個(gè)表單集來(lái)放置表單與工具欄,打開(kāi)主表單,使用“表單”菜單中的“新建表單集”建立表單集對(duì)象,這時(shí)我們使用代碼的方式把工具欄加入到主表單中去,設(shè)置表單集的init事件。PUBLIC isCreateToolbarisCreateToolbar=0再在Activate事件中添加如下代碼:IF isCreateToolbar=0isCr

28、eateToolbar=1*加載類SET CLASSLIB TO libmyclass使用類創(chuàng)建對(duì)象this。AddObject(”tool1”,”mytoolbar")this。tool1。show*把工具欄停放在表單的上部this.tool1。dock(0)endif這時(shí)運(yùn)行主表單,效果如下:四、 編寫管理員管理代碼控件屬性值表格NamegmanagerEnabledFalseRecordsourceManager表單BufferMode1Caption操作員管理NamefrmmanagerShowwindow在頂層表單中打開(kāi)表單的數(shù)據(jù)環(huán)境,選擇manager表。設(shè)置其屬性。bu

29、ffermodeOveride:2,Exlusive:True添加按鈕的click事件:thisform.gManager.Enabled= 。T。APPEND BLANKGO bottomthisform。gManager。coLUMN1。text1。SetFocusthisform。Refresh修改按鈕的click事件:thisform。gManager。Enabled=。t。保存按鈕的click事件:YN=MESSAGEBOX("確定保存”,4+32,"企業(yè)員工管理系統(tǒng)”)IF YN=6 thenIF TABLEUPDATE(。f。)=。f。 thenMESSAGE

30、BOX("保存出錯(cuò)")ELSEthisform。RefreshENDIFENDIFthisform。gmanager。Enabled=.f.取消按鈕的click事件:IF MESSAGEBOX("確認(rèn)取消”,4+32,”企業(yè)員工管理系統(tǒng)”)=6 thenTABLEREVERT(。f。)ENDIFthisform.gmanager.Enabled=。f。thisform。Refresh刪除按鈕的click事件:IF MESSAGEBOX(”確定刪除",32+4,"企業(yè)員工管理系統(tǒng)")=6 thenSELECT managerDELETE

31、thisform。gmanager。RecordSource=nullPACKthisform.gmanager.RecordSource=”manager”IF EOF()SKIP 1ELSEIF BOF()SKIPENDIFENDIFthisform。Refreshendif五、 提示信息添加代碼控件屬性值Date and timer pickerNamemsgdate文本域namemsgcontent保存按鈕click事件:SET DATE YMDSET CENTURY onmdate=TTOD(thisform。msgdate._value)mcontent=ALLTRIM(thisf

32、orm.msgcontent.Value)IF EMPTY(mdate) 。and. EMPTY(mcontent) thenMESSAGEBOX(”時(shí)間和內(nèi)容都不能為空”)returnENDIFIF MESSAGEBOX(”確定保存”,4+32,"企業(yè)員工管理系統(tǒng)”)=6INSERT INTO warning(emplyid,wtype,showdate,msg)values(0,0,mdate,mcontent)MESSAGEBOX(”提示信息已經(jīng)添加到數(shù)據(jù)庫(kù)中",64,”企業(yè)員工管理系統(tǒng)")thisform。Releaseendif取消按鈕click事件:t

33、hisform.Release六、 編寫管理信息代碼此窗體的代碼與管理員管理代碼類似,所以可以很容易實(shí)現(xiàn)??丶傩灾当砀馧amegmsgEnabledFalseRecordsourceManagerMousePointer1Arrow表單BufferMode1Caption操作員管理NameFrmmsgShowwindow在頂層表單中打開(kāi)表單的數(shù)據(jù)環(huán)境,選擇waring表。設(shè)置其屬性。buffermodeOveride:2,Exlusive:True添加按鈕onclick事件:DO FORM forms/setmsgThisform.refresh修改按鈕的onclick事件:IF MESSA

34、GEBOX("確定保存修改信息”,4+32,”企業(yè)員工管理系統(tǒng)”)=6 thenIF TABLEUPDATE(。f.)=。f. thenMESSAGEBOX(”保存出錯(cuò),請(qǐng)檢查”)ELSEthisform.RefreshENDifENDIFthisform。gmsg。Enabled=。f。取消按鈕的onclick事件:IF MESSAGEBOX(”確認(rèn)取消",4+32,"企業(yè)員工管理系統(tǒng)")=6 thenTABLEREVERT(。f。)ENDIFthisform.gmanager。Enabled=.f.thisform。Refresh刪除按鈕的click

35、事件:IF MESSAGEBOX(”確定刪除",32+4,”企業(yè)員工管理系統(tǒng)”)=6 thenSELECT waringDELETEthisform.gmanager。RecordSource=nullPACKthisform.gmanager.RecordSource="waring”IF EOF()SKIP 1ELSEIF BOF()SKIPENDIFENDIFthisform。Refreshendif七、 今日提醒代碼編寫控件屬性值文本框Namemsgreadonlytrue多選框Nameisstart表單BufferMode1Caption今日提醒NameFrmto

36、dayShowwindow在頂層表單中Windowtype1-模式標(biāo)簽Namelmsg表單init事件:PUBLIC i,inumi=0inum=0SELECT warningCOUNT FOR showdate=DATE() to inumIF inum1 thenthisform。msg。Value="沒(méi)有本日提醒"thisform.lmsg。caption=”沒(méi)有提醒”ELSESELECT warningSET FILTER TO showdate=DATE()go topi=1thisform。msg.ControlSource=”warning.msg”thisf

37、orm。lmsg.caption=”共有”+ALLTRIM(STR(inum))+”條提醒,第”+ALLTRIM(STR(i)+"條提醒”thisform.Refreshendif下一條按鈕單擊事件:SELECT warningIF 。not。 EOF()SKIPi=i+1thisform.lmsg。Caption="共有"+ALLTRIM(STR(inum))+”條提醒,第"+ALLTRIM(STR(i)+”條提醒”ENDIFthisform。Refresh確定按鈕onclick事件:IF thisform。isstart。Value=1UPDATE

38、sys SET isstart=。f。ENDIFthisform.release八、 編寫部門管理代碼部門管理表單使用了一個(gè)ActiveX控件,如果想非常細(xì)致的了解此控件的使用方法,請(qǐng)參考FTP上給出的資料??丶傩灾禈?shù)型NamedepartTreeStyle7名稱文本框NameEnamecontrolSourcedpname地址文本框NameEaddrcontrolSourcedpaddr電話文本框NameEphonecontrolSourcedpphone聯(lián)系人文本框NameEpersoncontrolSourceDpperson表單BufferMode1Caption部門信息管理Name

39、FrmdepartShowwindow在頂層表單中Windowtype1模式同樣要設(shè)置表單對(duì)應(yīng)的depart表格的屬性:buffermodeOveride:2,Exlusive:True首先我們給表單添加init事件:PUBLIC isedit定義一個(gè)變量來(lái)標(biāo)識(shí)當(dāng)前操作是添加還是修改PUBLIC dpid保存當(dāng)前部門編碼SELECT departGO topthisform。ename。Value=dpnamethisform。eaddr。Value=dpaddrthisform。ephone。Value=dpphonethisform。eperson。Value=dppersonthisfo

40、rm。eaddr。Enabled=。f。thisform。ename。Enabled=。f。thisform。eperson.Enabled=。f.thisform.ephone。Enabled=。f。thisform.Refresh給樹(shù)形控件添加init事件this。Nodes。ClearSCAN IF topid = 0 Node = this。nodes.add(,1,”D"+ALLTRIM(STR(id),ALLTRIM(dpname),,) 加入根節(jié)點(diǎn) ELSE Node =this。nodes。add(”D"+ALLTRIM(STR(topid)),4,”D&q

41、uot;+ALLTRIM(STR(id)),ALLTRIM(dpname),) ENDIF ENDSCAN樹(shù)形控件的onclick事件:SELECT departLOCATE FOR id=VAL(SUBSTR(this。selectedItem。Key,2)dpid=idthisform。ename。Value=dpnamethisform.eaddr.Value=dpaddrthisform。ephone。Value=dpphonethisform.eperson.Value=dpperson添加按鈕onclick事件:thisform。ename.Value=”"thisfor

42、m。eaddr。Value=”thisform。ephone.Value=”"thisform。eperson。Value=""thisform.eaddr.Enabled=。t.thisform.ename.Enabled=.t。thisform。eperson.Enabled=.t.thisform.ephone。Enabled=。t。isedit=”add"thisform。Refresh刪除按鈕onclick事件:IF MESSAGEBOX("確認(rèn)要?jiǎng)h除所選部門信息”,4+32,”企業(yè)員工管理系統(tǒng)”)=6 thenDELETE FROM

43、 depart WHERE id=dpidPACKthisform.departtree。Initthisform。RefreshENDif修改按鈕onclick事件:thisform.eaddr。Enabled=。t.thisform。ename.Enabled=。t.thisform.eperson.Enabled=。t。thisform。ephone。Enabled=。t。isedit="mod”取消按鈕onclick事件:thisform。ename.Value=dpnamethisform。eaddr。Value=dpaddrthisform。ephone。Value=dp

44、phonethisform.eperson.Value=dppersonthisform。eaddr。Enabled=。f.thisform.ename。Enabled=.f。thisform。eperson.Enabled=。f。thisform。ephone。Enabled=。f.保存按鈕onclick事件:IF MESSAGEBOX(”確認(rèn)要保存修改后的信息嗎?”,4+32,”企業(yè)員工管理系統(tǒng)")=6 thenIF isedit="mod” thenename=ALLTRIM(thisform.ename。value)eaddr=ALLTRIM(thisform。ea

45、ddr。value)ephone=ALLTRIM(thisform。ephone。value)eperson=ALLTRIM(thisform.eperson。value)UPDATE depart SET dpname=ename,dpaddr=eaddr,dpphone=ephone,dpperson=eperson WHERE id=dpidENDIFIF isedit="add" thenINSERT INTO depart(topid,dpname,dpaddr,dpphone,dpperson)values(dpid,thisform。ename。Value,t

46、hisform。eaddr.Value,thisform。ephone。Value,thisform。eperson。Value)endifENDIFthisform.eaddr。Enabled=。f。thisform.ename。Enabled=。f.thisform。eperson.Enabled=。f.thisform。ephone。Enabled=。f.thisform。departtree。Initthisform。Refresh九、 員工管理代碼編寫員工管理代碼請(qǐng)參考部門管理代碼和管理員管理代碼來(lái)完成。十、 使菜單和工具欄與表單關(guān)聯(lián)到這里,把目前編寫的表單和主表單統(tǒng)一起來(lái),使菜單項(xiàng)

47、及工具欄按鈕可以響應(yīng)事件,打開(kāi)菜單,修改相應(yīng)項(xiàng),如提示信息管理下有子項(xiàng),所以設(shè)置為Submenu,單擊Edit進(jìn)行修改如下使用do form 表單名稱(注意表單路徑),來(lái)調(diào)用表單,其他相應(yīng)修改。打開(kāi)工具欄,為工具欄上的按鈕添加代碼,如do form forms/depart來(lái)完成工具欄的代碼添加。十一、 任務(wù)把實(shí)驗(yàn)指導(dǎo)書(shū)中未給出的代碼補(bǔ)齊,完成整個(gè)程序的代碼編寫。實(shí)驗(yàn)七 設(shè)計(jì)報(bào)表一、 為報(bào)表準(zhǔn)備數(shù)據(jù)新建一個(gè)本地視圖,如下圖所示,把Depart表和Employ表加入到視圖中來(lái),并設(shè)置顯示的字段。二、 設(shè)計(jì)報(bào)表1) 新建報(bào)表2) 打開(kāi)報(bào)表設(shè)計(jì)器3) 在報(bào)表菜單中打開(kāi)標(biāo)題總結(jié)對(duì)話框4) 選擇相應(yīng)選項(xiàng)

48、,這里Newpage選項(xiàng)是為了讓標(biāo)題區(qū)和總結(jié)區(qū)在單獨(dú)頁(yè)中顯示5) 在標(biāo)題帶區(qū)中添加以下標(biāo)簽控件,并輸入文字6) 在page header帶區(qū)中添加以下控件,標(biāo)簽控件中顯示“聊城大學(xué)教育傳播技術(shù)學(xué)院-企業(yè)員工管理系統(tǒng)”,在后面添加一個(gè)域控件,顯示Date(),下邊添加幾個(gè)矩形框,并改變其背景色,并使用標(biāo)簽控件在其上添加相應(yīng)文字。7) 為報(bào)表添加數(shù)據(jù)環(huán)境,與表單添加數(shù)據(jù)環(huán)境相同。需要注意的是需要選擇視圖選項(xiàng)來(lái)顯示視圖對(duì)象。8) 在detail區(qū)添加域控件及矩形控件,注意上邊框要移出帶區(qū)的上邊,而帶區(qū)下邊框與要矩形下邊框剛好一致,這樣才會(huì)出來(lái)最終效果,如果與效果不一致,也可以重新調(diào)整此處。9) 在page footer區(qū)添加如下文字及直線最終效果如下:三、 操作注意1) 字體與矩形背景顏色可以使用“格式”菜單中的相應(yīng)選項(xiàng)進(jìn)行設(shè)置。2) 在操作多個(gè)對(duì)象時(shí),如表頭信

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論