實驗五打印成績表_第1頁
實驗五打印成績表_第2頁
實驗五打印成績表_第3頁
實驗五打印成績表_第4頁
實驗五打印成績表_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗五 打印成績表一、實驗?zāi)康?. 設(shè)計按不同的需要調(diào)用報表的表單2. 熟悉打印所需中間表的使用 3. 理解通過編程由多表產(chǎn)生一個臨時表的方法4. 掌握使用報表設(shè)計器創(chuàng)建和修改報表的方法二、實驗內(nèi)容1.設(shè)計一個學(xué)生成績打印表單,在表單上通過單選按鈕可分別選擇按班級、按課程打印學(xué)生成績;2.設(shè)計班級成績單、課程成績單兩個報表定義文件,可通過運行表單分別調(diào)用這兩個文件,輸出所需報表。三、實驗步驟(一)設(shè)計表單1.建立表單打開項目管理器“學(xué)生成績管理系統(tǒng)”,新建一個表單,將其Caption改為 “學(xué)生成績打印”,表單上各控件按圖5-1設(shè)計。 圖5-1其中“學(xué)生成績表打印”、“班級簡稱”、“班級編號”

2、、“課程名稱”、“課程編號”為標(biāo)簽,“Combo1”、“Combo2”為組合框,“Text1”、“Text2”為文本框,“生成”、“預(yù)覽”、“打印2 / 15”、“退出”為命令按鈕,“按班級打印”、“按課程打印”為單選按鈕組(單選按鈕組的設(shè)計見本頁第2點),可自行設(shè)計每一控件的字型、字體、字號、顏色。按Ctrl+ S鍵保存表單,取名為“成績打印”。2.設(shè)計單選按鈕 單擊單選按鈕組按鈕,在表單上畫一組單選按鈕組“Optiongroup1”,將其屬性作如下修改:BackStyle 0-透明BorderStyle 0-無Buttoncount 2然后,右鍵單擊單選按鈕組,在彈出的快捷菜單上選“編輯”

3、,再分別單擊其中任一按鈕Option1或Option2,就可進(jìn)行編輯,將Option1的Caption改為“按班級打印”,Option2的Caption改為“按課程打印”,其余如字型、字體、字號、顏色可自行設(shè)計。3.設(shè)置數(shù)據(jù)環(huán)境在數(shù)據(jù)環(huán)境中添加“班級號名”、“課程”。4.設(shè)置各控件主要屬性·Combo1主要屬性為:ControlSource 選“班級號名.班級簡稱”ColumnCount 輸入1RowSourceType 選6字段RowSource 選“班級號名.班級簡稱”Style 選2下拉列表框·Combo2主要屬性為:ControlSource 選“課程.課程名稱”C

4、olumnCount 輸入1RowSourceType 選6字段RowSource 選“課程.課程名稱” Style 選2下拉列表框·Text1主要屬性: ControlSource 選“班級號名.班級編號” Enabled .F.-假·Text2主要屬性: ControlSource 選“課程.課程編號” Enabled .F.-假5.事件代碼 (1)單選按鈕組Optiongroup1的Click過程代碼: public nn=this.valuedo case case n=1 sele 班級號名 go top bo1.enabled=.t. bo2.enabled=.

5、f. case n=2 sele 課程 go top bo2.enabled=.t. bo1.enabled=.f.endcase thisform.refresh(2)雙擊Combo1,為其Click過程輸入代碼:Thisform.refresh (3)雙擊Combo2,為其Click過程輸入代碼:Thisform.refresh (4)雙擊命令按鈕“生成”,為其Click過程輸入代碼:(注意:這一段程序代碼比較長,實驗過程中可以先輸入調(diào)試case n=1程序段,再輸入調(diào)試case n=2程序段,以減少調(diào)試的復(fù)雜度。如實驗課時不夠,也可只輸入case n=1所對應(yīng)的“按班級打印”程序段,且后

6、面也只設(shè)計相應(yīng)的按班級打印報表文件。 )public n,kc1,kc2,kc3,bjbh,bjjc && n存放選擇單選按鈕的值,kc1-kc3分別存放課程名,后兩個變量存放班級編號和班級簡稱public kcmc,kcbh,xf,rkjs &&kcmc存放課程名,kcbh存放課程編號,xf存放學(xué)分,rkjs存放任課教師set safe offclos datan=thisform.optiongroup1.valuedo case case n=1 &&按班級打印 store space(20) to kc1,kc2,kc3 &&am

7、p;賦初值 bjjc=bo1.value bjbh=thisform.text1.value if !file("bjlsb.dbf") && bjlsb.dbf為按班級打印所需中間表,是一個由多個表產(chǎn)生的臨時表 create table bjlsb(姓名 c(6),班級編號 c(9),班級簡稱 c(9),kc1 n(3), kc2 n(3),kc3 n(3) else sele F use bjlsb endif sele bjlsb zap appe from 學(xué)生 dele all for 班級編號#班級號名.班級編號 pack sele I use

8、學(xué)生 sele G use 學(xué)生選課 sele 課程 i=1 scan *內(nèi)存變量kci(i=1,2,3)中存放第i門課程的名稱 m="kc"+trim(str(i,1) &m=課程名稱 *第i門課程的成績寫入bjlsb.dbf sele bjlsb go top scan sele 學(xué)生 loca for 姓名=bjlsb.姓名 sele 學(xué)生選課 loca for 學(xué)號=學(xué)生.學(xué)號 and 課程編號=課程.課程編號 sele bjlsb repl &m with 學(xué)生選課.成績 endscan i=i+1 sele 課程 endscan case n=2

9、 &&按課程打印 store space(16) to kcmc,kcbh,rkjs &&賦初值 xf=space(5) &&賦初值 kcmc=bo2.value kcbh=thisform.text2.value sele 課程 loca for 課程編號=kcbh xf=學(xué)分 rkjs=任課教師 if !file("kclsb.dbf") && kclsb.dbf為按課程打印所需中間表,也是一個由多個表產(chǎn)生的臨時表 create table kclsb(學(xué)號 c(12),姓名 c(6),班級編號 c(9),

10、班級簡稱 c(16),課程編號 c(7),成績 n(3), 任課教師 c(6) else sele F use kclsb endif sele kclsb zap appe from 學(xué)生選課 dele all for 課程編號#課程.課程編號 pack sele I use 學(xué)生 sele kclsb go top scan sele 學(xué)生 loca for 學(xué)號=kclsb.學(xué)號 sele 班級號名 loca for 班級編號=學(xué)生.班級編號 sele kclsb repl 姓名 with 學(xué)生.姓名,班級編號 with 班級號名.班級編號,班級簡稱 with 班級號名.班級簡稱 end

11、scan endcase(5)雙擊命令按鈕“預(yù)覽”,為其Click過程輸入代碼:if n=1 report form 班級成績表 previewelse report form 課程成績表 previewendif(6)雙擊命令按鈕“打印”,為其Click過程輸入代碼:if n=1 report form 班級成績表 to printelse report form 課程成績表 to printendif(7)雙擊命令按鈕“退出”,為其Click過程輸入代碼:thisform.release6.運行表單生成中間表單擊運行工具按鈕,·先選擇“按班級打印”,在“班級簡稱”右邊的下拉列表中

12、選擇一個班級,再單擊“生成”按鈕,可生成表bjlsb.dbf 。·再選擇“按課程打印”,在“課程名稱”右邊的下拉列表中選擇一門課程,再單擊“生成”按鈕,可生成表kclsb.dbf 。這兩個臨時表是下面創(chuàng)建報表定義文件所需要的中間文件。(二)創(chuàng)建報表定義文件1.使用向?qū)?chuàng)建報表定義文件“班級成績表”·從項目管理器文檔報表新建報表向?qū)蟊硐驅(qū)?,進(jìn)入圖5-2時,在“數(shù)據(jù)庫和表”欄選bjlsb,可用字段除“班級編號”、“班級簡稱”外,其余選中。 圖5-2·按“下一步”按鈕,在接下來的界面中再按“下一步”按鈕,在“報表樣式”中選“帳務(wù)式”,單擊 兩次“下一步”,進(jìn)入步驟5時

13、,選字段“姓名”,單擊“添加”,并選“升序”,如圖5-3,可使報表中記錄按姓名升序排列。·按“下一步”按鈕進(jìn)入步驟6,在報表標(biāo)題中輸入“班級成績表”,然后單擊完成。保圖5-3存的名字也為“班級成績表”。如圖5-4。·在項目管理器中單擊“班級成績表”,再單擊右側(cè)的“修改”按鈕,進(jìn)入報表修改。注意:此時由于還沒有建立報表定義文件,所以運行表單時只能單擊“生成”,以生成臨時中間文件,暫不能單擊“預(yù)覽”按鈕,否則會出錯。圖5-42.修改報表定義文件“班級成績表”·點住標(biāo)題條上邊緣,向下拖動,適當(dāng)擴大標(biāo)題區(qū)。·單擊最上面的一條粗黑線,再單擊“剪切”按鈕,刪除此黑粗

14、線。·單擊標(biāo)題區(qū) “班級成績表”,然后選“格式”菜單中的“字體”,選28號字,并將其拖到中間位置。·單擊報表控件中的標(biāo)簽按鈕,再在標(biāo)題區(qū)左下部單擊一下,輸入“班級編號”,字號設(shè)為“小四”。·單擊報表控件中的域控件 按鈕,在“班級編號”標(biāo)簽右側(cè)畫一框,出現(xiàn)圖5-5,再單擊表達(dá)式右側(cè)的 按鈕,出現(xiàn)圖5-6所示表達(dá)式輸入框。圖5-5圖5-6在變量區(qū)雙擊bjbh,則在“報表字段的表達(dá)式”框中出現(xiàn)bjbh,如果變量區(qū)沒有bjbh,則直接在“報表字段的表達(dá)式”框中輸入bjbh。按“確定”按鈕后,得到圖5-7。圖5-7·根據(jù)上述相同的步驟,再在“班級編號”右側(cè)制作一標(biāo)

15、簽“班級簡稱”,同時制作一域控件與bjjc聯(lián)系。如圖5-8。·單擊頁標(biāo)頭區(qū)的kc1,然后單擊“剪切”按鈕刪除,同樣的方法刪除kc2、kc3。·單擊報表控件中的域控件 按鈕,在kc1處畫一框,框要比較高,在接下來出現(xiàn)表達(dá)式輸入框中輸入m.kc1.圖5-8圖5-9·同法在原kc2、kc3處分別畫域控件,表達(dá)式框中分別輸入m.kc2、m.kc3,如圖5-9。·刪除頁標(biāo)頭里的兩條粗線,在上面那條粗線處畫一條細(xì)線代替。再在頁標(biāo)頭畫幾條豎線隔開各個部分,同時調(diào)整細(xì)節(jié)部分的分隔線,使其與頁標(biāo)頭的分隔線對齊,如圖5-10圖。圖5-10·單擊工具欄的預(yù)覽按鈕 ,

16、可看到如圖5-11結(jié)果。3.去掉0成績(0分表示未輸入成績或未選該門課程)·雙擊細(xì)節(jié)里的kc1,在報表表達(dá)式對話框中,單擊格式后面的 按鈕,再選 ,單擊“確定”按鈕即可。·用同樣的方法對細(xì)節(jié)部分kc2,kc3作定義。定義完后,再預(yù)覽便不再出現(xiàn)0成績了。·按Ctrl+W保存關(guān)閉報表設(shè)計器。(三)調(diào)試報表·進(jìn)入“成績打印”表單,運行該表單,選“按班級打印”,任選一班級,單擊“生成”按鈕,再點“預(yù)覽”按鈕,即可看到屏幕預(yù)覽的效果。·“打印”功能與“預(yù)覽”類似,一般學(xué)生機房沒有安裝打印機,可不運行打印功能。(四)創(chuàng)建與調(diào)試“按課程打印”報表1.參照前面

17、實驗步驟“(二)1.”創(chuàng)建“按班級打印”報表類似的方法,利用報表向?qū)D5-11圖5-12創(chuàng)建“按課程打印”報表。·在步驟1按圖5-12選擇字段。·在步驟5選擇按“學(xué)號”升序排序。·在步驟6,報表標(biāo)題與保存文件名均輸入為“課程成績表”。2.修改報表定義文件“課程成績表”·參照前面實驗步驟“(二)2.”,再根據(jù)圖5-13,修改報表定義文件“課程成績表”。注意在“標(biāo)題”中使用報表控件中的“標(biāo)簽”控件與“域”控件。·單擊工具欄的預(yù)覽按鈕 ,可看到如圖5-14結(jié)果。·按Ctrl+W保存關(guān)閉報表設(shè)計器。3.調(diào)試“按課程打印”報表參照前面實驗步驟(三)調(diào)試“按班級打印”報表的方法,運行表單,選擇“按課程打印”,任選一課程,單擊“生成”按鈕,再點“預(yù)覽”按鈕,進(jìn)行打印報表的預(yù)覽。圖5-13圖5-14四、思考題及注意事項1. 單選按鈕組Optiongroup1的Click過程代碼起什么作用?2.認(rèn)真閱讀“生成”命

溫馨提示

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

最新文檔

評論

0/150

提交評論