Visual_Basic報(bào)表設(shè)計(jì).ppt_第1頁(yè)
Visual_Basic報(bào)表設(shè)計(jì).ppt_第2頁(yè)
Visual_Basic報(bào)表設(shè)計(jì).ppt_第3頁(yè)
Visual_Basic報(bào)表設(shè)計(jì).ppt_第4頁(yè)
Visual_Basic報(bào)表設(shè)計(jì).ppt_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第7章 Visual Basic,本章學(xué)習(xí)要點(diǎn) 了解數(shù)據(jù)報(bào)表設(shè)計(jì)器的作用、特性和結(jié)構(gòu) 掌握?qǐng)?bào)表控件的應(yīng)用方法 掌握?qǐng)?bào)表設(shè)計(jì)的方法 掌握分組報(bào)表的設(shè)計(jì)方法 掌握動(dòng)態(tài)報(bào)表的設(shè)計(jì)方法,數(shù)據(jù)報(bào)表設(shè)計(jì)器特性,對(duì)字段的拖放功能 Toolbox控件 打印預(yù)覽 打印報(bào)表 文件導(dǎo)出 導(dǎo)出模板 異步操作,添加數(shù)據(jù)報(bào)表設(shè)計(jì)器到工程,訪問數(shù)據(jù)報(bào)表設(shè)計(jì)器前,必須先在 Visual Basic 中引用它,單擊“工程部件”菜單項(xiàng),彈出“部件”對(duì)話框,選擇“設(shè)計(jì)器”選項(xiàng)卡(如圖所示)中選中“Data Report”對(duì)象,然后單擊“應(yīng)用”按鈕,此時(shí),數(shù)據(jù)報(bào)表設(shè)計(jì)器添加到工程中,數(shù)據(jù)報(bào)表設(shè)計(jì)器的結(jié)構(gòu),報(bào)表設(shè)計(jì)器的基本結(jié)構(gòu) : D

2、ataReport 對(duì)象 、Section 對(duì)象 和 DataReport 控件,Section 對(duì)象的結(jié)構(gòu),報(bào)表標(biāo)頭 頁(yè)標(biāo)頭 分組標(biāo)頭/注腳 細(xì)節(jié) 頁(yè)注腳 報(bào)表注腳,特殊控件的含義,報(bào)表控件,數(shù)據(jù)報(bào)表控件工具箱中的控件有: Label 控件(RptLabel)、 TextBox 控件(RptTextBox)、 Image 控件(RptImage)、 Line 控件(RptLine)、 Shape 控件(RptShape)、 Function 控件(RptFunction)。,要向數(shù)據(jù)報(bào)表添一個(gè) Function 控件,按如下步驟執(zhí)行: (1)在“數(shù)據(jù)報(bào)表工具箱”里單擊 RptFunction

3、 控件; (2)在“分組注腳”的空間繪制 RptFunction 控件; (3)設(shè)置 RptFunction 控件的常用屬性,各屬性含義如表:,(4)控件的“FunctionType”屬性決定將對(duì)“數(shù)據(jù)字段”中的數(shù)據(jù)進(jìn)行什么操作。缺省情況下,這一屬性設(shè)置為0-RptFuncSum,以合計(jì)數(shù)據(jù)的值。其它函數(shù)包括:Average、Minimum、Maximum、Row Count、STDDev (標(biāo)準(zhǔn)偏差)和 Value Count。Function控件包含的函數(shù)如表:,FunctionType屬性取值,報(bào)表“安全檢查情況一覽表”(DataReport4)的數(shù)據(jù)源是Command6對(duì)象,展開后如圖

4、所示。在圖中,Command6對(duì)象中的字段都是以漢字的形式顯示出來,并不是數(shù)據(jù)表(jcxx)的字段名。,這是因?yàn)闉榱朔奖阆乱徊降膱?bào)表設(shè)計(jì)將它們的屬性進(jìn)行了修改,方法是通過依次選中各字段,單擊鼠標(biāo)右鍵,出現(xiàn)“屬性”菜單項(xiàng),單擊“屬性”菜單項(xiàng),彈出的“字段 屬性”對(duì)話框內(nèi),在“通用”選項(xiàng)卡內(nèi)修改了屬性“字段標(biāo)題”,如圖。依次修改各個(gè)字段標(biāo)題,為設(shè)計(jì)報(bào)表做準(zhǔn)備。,要?jiǎng)?chuàng)建一個(gè)新的數(shù)據(jù)報(bào)表,按如下步驟執(zhí)行:(1)單擊“工程添加 Data Report”菜單項(xiàng),Visual Basic 將把它添加到當(dāng)前工程中。如果數(shù)據(jù)報(bào)表設(shè)計(jì)器不在“工程”菜單上,單擊“部件”菜單項(xiàng),在“設(shè)計(jì)器”選項(xiàng)卡上單擊“Data R

5、eport”把設(shè)計(jì)器添加到菜單上。(2)設(shè)置 DataReport 對(duì)象的屬性,如圖所示,設(shè)置屬性后的報(bào)表對(duì)象DataReport4如圖。,(3)在數(shù)據(jù)報(bào)表設(shè)計(jì)器的空白處單擊鼠標(biāo)右鍵,從彈出的菜單項(xiàng)中選擇“檢索結(jié)構(gòu)”命令,彈出對(duì)話框如圖所示。 (4)單擊“是”按鈕,更新了報(bào)表布局,如圖所示。,創(chuàng)建了報(bào)表對(duì)象DataReport4后,要進(jìn)行其中控件的設(shè)計(jì),設(shè)計(jì)步驟如下:(1)將數(shù)據(jù)環(huán)境對(duì)象DataEnvironment1的Command6對(duì)象中的各個(gè)字段依次拖曳到細(xì)節(jié)(Command6_Detail)中,如圖。每拖曳一個(gè)字段到報(bào)表中都同時(shí)產(chǎn)生一個(gè)Label控件和一個(gè)TextBox控件。,(2)上

6、圖的報(bào)表不能以表格的形式顯示出來,需要進(jìn)行修改。將所有的Label控件都拖曳到頁(yè)標(biāo)頭(PageHeader)中,然后將Label控件和TextBox控件的位置按要求排列,如圖所示。,(3)利用rptLine控件為表格添加線條,使報(bào)表以表格的形式顯示。在各個(gè)Label控件和TextBox控件之間畫上線條。 (4)在DataReport4的報(bào)表標(biāo)頭(ReportHeader)放置一個(gè)Label控件,將其Caption屬性設(shè)為“安全檢查情況一覽表”;然后單擊Font屬性的“”,在彈出的“字體”對(duì)話框里可以對(duì)字體、字形、大小和效果等進(jìn)行設(shè)置;設(shè)置Alignment為2rptJustifyCenter,

7、使標(biāo)題居中。 (5)在DataReport4的報(bào)表標(biāo)頭(ReportHeader)還可以放置打印日期和時(shí)間,方法是:拖曳一個(gè)Label控件到報(bào)表標(biāo)頭的右下側(cè),將其Caption屬性設(shè)為“打印時(shí)間:D”;然后再拖曳一個(gè)Label控件到前一個(gè)Label控件的旁邊,將其Caption屬性設(shè)為“T”,然后調(diào)整兩個(gè)Label控件的位置和字體屬性。,(6)在頁(yè)注腳(PageHeader)中可以放置頁(yè)碼,方法是:依次拖曳兩個(gè)Label控件到頁(yè)注腳的右下側(cè),分別設(shè)置它們的Caption屬性為“共P頁(yè)”和“第p頁(yè)”,然后再調(diào)整兩個(gè)Label控件的位置和字體屬性。按上述步驟設(shè)置完成的DataReport4報(bào)表如圖

8、。,創(chuàng)建Command對(duì)象,分組報(bào)表DataReport10連接的數(shù)據(jù)源是Command4對(duì)象,創(chuàng)建的方法如下: (1)在工程中打開數(shù)據(jù)環(huán)境對(duì)象DataEnvironment1,在Connection1對(duì)象里添加命令對(duì)象Command4; (2)設(shè)置Command4對(duì)象的通用屬性,如圖所示。,(3)設(shè)置Command4對(duì)象的分組字段“jshzhch”,其它字段為細(xì)節(jié)字段,如圖所示。,設(shè)置完屬性的Command4對(duì)象在數(shù)據(jù)環(huán)境對(duì)象中的形式如圖所示。,創(chuàng)建了Command4對(duì)象,接著創(chuàng)建數(shù)據(jù)報(bào)表對(duì)象,步驟如下: (1)單擊“工程添加 Data Report”菜單項(xiàng),Visual Basic 將把它

9、添加到當(dāng)前工程中。 (2)設(shè)置 DataReport 對(duì)象的屬性,如表所示:,設(shè)置屬性后的報(bào)表對(duì)象DataReport10如圖。,(3)在數(shù)據(jù)報(bào)表設(shè)計(jì)器的空白處單擊鼠標(biāo)右鍵,從彈出的菜單項(xiàng)中選擇“檢索結(jié)構(gòu)”命令,彈出對(duì)話框如圖所示。,(4)單擊“是”按鈕,更新了報(bào)表布局,如圖。,創(chuàng)建了報(bào)表對(duì)象DataReport10后,要進(jìn)行其中控件的設(shè)計(jì),設(shè)計(jì)步驟如下:(1)將數(shù)據(jù)環(huán)境對(duì)象DataEnvironment1中 “摘要字段在Command4_分組”下的“jshzhch”字段拖曳到數(shù)據(jù)報(bào)表對(duì)象DataReport10中的“分組標(biāo)頭”里,同時(shí)產(chǎn)生一個(gè)Label控件和一個(gè)TextBox控件。將Labe

10、l控件拖曳到數(shù)據(jù)報(bào)表對(duì)象DataReport10中的“頁(yè)標(biāo)頭”里,將Label控件的Caption設(shè)置為“技術(shù)職稱”,根據(jù)需要設(shè)置Font屬性,如圖,(2)將“細(xì)節(jié)字段在Command4”中需在報(bào)表DataReport10里顯示的字段依次拖曳到數(shù)據(jù)報(bào)表對(duì)象DataReport10中的“細(xì)節(jié)”里。每個(gè)字段同樣生成一個(gè)Label控件和一個(gè)TextBox控件,將Label控件拖曳到數(shù)據(jù)報(bào)表對(duì)象DataReport10中的“分組標(biāo)頭”里,設(shè)置它們的Caption屬性。然后將Label控件和TextBox控件的位置按要求排列,如圖。,(3)在“數(shù)據(jù)報(bào)表工具箱”里拖曳一個(gè)rptShape控件到報(bào)表Data

11、Report10的“細(xì)節(jié)”中,調(diào)整位置包圍所有的TextBox控件。利用rptLine控在每個(gè)TextBox控件之間畫上線。 (4)在DataReport10的“報(bào)表標(biāo)頭”(ReportHeader)放置一個(gè)Label控件,將其Caption屬性設(shè)為“人員信息一覽表”;然后單擊Font屬性的“”,在彈出的“字體”對(duì)話框里可以對(duì)字體、字形、大小和效果等進(jìn)行設(shè)置;設(shè)置Alignment為2rptJustifyCenter,使標(biāo)題居中,如圖,(5)在DataReport10的“報(bào)表標(biāo)頭”(ReportHeader)還可以放置打印日期和時(shí)間,圖見下頁(yè)。設(shè)置方法是:拖曳一個(gè)Label控件到報(bào)表標(biāo)頭的右下

12、側(cè),將其Caption屬性設(shè)為“打印時(shí)間:”;然后單擊報(bào)表標(biāo)頭的空白處,彈出菜單項(xiàng),如圖 所示,單擊“插入控件當(dāng)前日期(D)(短格式)”,此時(shí)在報(bào)表標(biāo)頭里自動(dòng)生成一個(gè)Label控件,其Caption屬性默認(rèn)為“%d”,用來顯示當(dāng)前系統(tǒng)日期;再單擊“插入控件當(dāng)前時(shí)間(M)(短格式)”,此時(shí)在報(bào)表標(biāo)頭里又生成一個(gè)Label控件,其Caption屬性默認(rèn)為“%t”,用來顯示當(dāng)前系統(tǒng)時(shí)間;調(diào)整三個(gè)Label控件的位置和Font屬性。,(6)在“分組注腳”中可以顯示每組的總記錄數(shù),方法是:選擇“數(shù)據(jù)報(bào)表工具箱”,單擊rptFunction控件,將其放置在報(bào)表分組注腳中的右側(cè),將其FunctionType

13、的屬性設(shè)置為:4rptFuncRCnt。然后再添加兩個(gè)rptLabel控件,分別設(shè)置它們的Caption屬性為:“該組共計(jì)”和“條記錄”,如圖所示。,(7)單擊頁(yè)注腳的空白處,在彈出的菜單項(xiàng)里單擊“插入控件當(dāng)前頁(yè)碼”命令,此時(shí)在頁(yè)注腳里自動(dòng)生成一個(gè)Label控件,其Caption屬性默認(rèn)為“%p”,用來顯示當(dāng)前頁(yè)碼。 (8)在“報(bào)表注腳”中可以顯示所有數(shù)據(jù)的總記錄數(shù),方法是:選擇“數(shù)據(jù)報(bào)表工具箱”,單擊rptFunction控件,將其放置在報(bào)表報(bào)表注腳中的右側(cè),將其FunctionType的屬性設(shè)置為:4rptFuncRCnt。然后再添加兩個(gè)rptLabel控件,分別設(shè)置它們的Caption屬

14、性為:“總計(jì)”和“條記錄”。根據(jù)需要還可添加“總頁(yè)碼”控件,在彈出的菜單項(xiàng)里單擊“插入控件總頁(yè)碼”命令,此時(shí)在報(bào)表注腳里自動(dòng)生成一個(gè)Label控件,其Caption屬性默認(rèn)為“%P”,用來顯示報(bào)表的總頁(yè)碼。如圖,按上述步驟設(shè)置完成的DataReport10報(bào)表如圖所示。,為了使代碼簡(jiǎn)捷,將聲明Connection對(duì)象和RecordSet對(duì)象的語(yǔ)句都放在系統(tǒng)的模塊對(duì)象“Module2”中,執(zhí)行方法如下。1添加ADO對(duì)象 如果系統(tǒng)中沒有ADO對(duì)象,就單擊“工程引用”菜單項(xiàng),在彈出的對(duì)話框中選中ADO對(duì)象庫(kù)“Microsoft ActiveX Data Objects 2.0 Library”,就可

15、以在程序中直接聲明或創(chuàng)建ADO對(duì)象,如圖。,2創(chuàng)建模塊對(duì)象 單擊“工程添加模塊”菜單項(xiàng),在工程中創(chuàng)建了模塊對(duì)象,定義其名稱為“Module2”。 3、聲明Connection和RecordSet對(duì)象 雙擊“Module2”對(duì)象,彈出代碼窗口,在代碼中聲明兩個(gè)共有變量:Connection對(duì)象“db”和RecordSet對(duì)象“rs”,如圖。,創(chuàng)建Connection對(duì)象,由于在登錄窗口中就開始連接數(shù)據(jù)庫(kù),所以在登錄窗口frmLogin1的Load事件里創(chuàng)建Connection對(duì)象,如圖所示,創(chuàng)建RecordSet對(duì)象,在“企業(yè)資質(zhì)管理系統(tǒng)”中的通用查詢窗口中,每次查詢完都允許用戶單擊工具欄的“打

16、印預(yù)覽”或“打印”按鈕打印當(dāng)前的數(shù)據(jù)。例如查詢“技術(shù)職稱”為“工程師”的那些人員后,只打印查詢結(jié)果中的數(shù)據(jù),如圖。,此時(shí)報(bào)表DataRepot10的數(shù)據(jù)源發(fā)生了變化,盡管報(bào)表格式不變,但打印的數(shù)據(jù)應(yīng)該發(fā)生變化,所以DataRepot10對(duì)應(yīng)的數(shù)據(jù)源“rs”要根據(jù)查詢的結(jié)果改變。在查詢窗體的“查詢”按鈕里編寫Click事件,根據(jù)查詢的結(jié)果改變“rs”對(duì)應(yīng)的記錄集,代碼如下: Private Sub cmdApply_Click() Dim ls_sql1 As String Dim ls_sql2 As String On Error GoTo err2 Set frs = New Record

17、set,f rs.Open select * from cxb, db, adOpenStatic, adLockOptimistic If frs.RecordCount = 0 Then Exit Sub End If frs.MoveFirst For i = 1 To frs.RecordCount ls_sql1 = ls_sql1 & & frs.Fields(www) frs.MoveNext Next frs.Close Set frs = Nothing,If Right(ls_sql1, 2) = nd Then ls_sql1 = Left(ls_sql1, Len(ls

18、_sql1) - 3) Else ls_sql1 = Left(ls_sql1, Len(ls_sql1) - 2) End If Select Case selclick Case 1 ls_sql2 = select * from qyjbxx where Case 2 ls_sql2 = select * from ryxx where Case 3,ls_sql2 = select * from sbxx where Case 4 ls_sql2 = select * from sg where Case 5 ls_sql2 = select * from jcxx where End

19、 Select gsql = where & & ls_sql1 ls_sql2 = ls_sql2 & & ls_sql1 gsql1 = & ls_sql1,Set rs = New Recordset 根據(jù)查詢結(jié)果,打開記錄集 rs.Open ls_sql2, db, adOpenKeyset, adLockOptimistic, adCmdText rs.Requery 將查詢結(jié)果顯示在DataGrid1中,此時(shí)rs對(duì)應(yīng)查詢結(jié)果記錄集 Set Form11.DataGrid1.DataSource = rs gridc Form11.StBar1.Panels.Item(2) = 共查

20、詢出 & rs.RecordCount & 條記錄 Exit Sub err2: MsgBox 錯(cuò)誤,請(qǐng)輸入合法數(shù)值! & Err.Description, , 查詢錯(cuò)誤 End Sub,報(bào)表控件的數(shù)據(jù)綁定,直接把數(shù)據(jù)報(bào)表(DataReport)綁定到一個(gè)記錄集對(duì)象中,應(yīng)該把數(shù)據(jù)報(bào)表的DataSource屬性設(shè)置為記錄集對(duì)象,然后綁定報(bào)表中的TextBox控件的對(duì)應(yīng)字段名稱。操作步驟如下:1創(chuàng)建報(bào)表的數(shù)據(jù)源我們?cè)谠O(shè)計(jì)的報(bào)表對(duì)象DataReport10中定義它的數(shù)據(jù)源。方法是雙擊報(bào)表的空白處,彈出代碼編寫對(duì)話框,選擇DataReport10的Initialize事件,設(shè)置它的DataSourc

21、e屬性為“rs”,如圖。,2設(shè)置報(bào)表的文本框控件屬性 打開報(bào)表設(shè)計(jì)器,在DataReport10的細(xì)節(jié)中有多個(gè)文本框控件,依次選中每個(gè)文本框控件,在DataField屬性中,單擊“ ”按鈕,會(huì)自動(dòng)列出當(dāng)前記錄集的所有字段名,選擇對(duì)應(yīng)的字段名稱進(jìn)行設(shè)置。至此運(yùn)行時(shí)把ADO記錄集對(duì)象“rs”中的記錄綁定到數(shù)據(jù)報(bào)表就全部完成了,報(bào)表對(duì)象可以隨查詢結(jié)果自動(dòng)更新數(shù)據(jù)。,報(bào)表的打印預(yù)覽,通常經(jīng)過初步設(shè)計(jì)的報(bào)表不能完全滿足應(yīng)用程序的需要,需要在經(jīng)過打印預(yù)覽之后,反復(fù)調(diào)整報(bào)表對(duì)象中各個(gè)控件的設(shè)置,最終達(dá)到用戶的要求。VisualBasic中報(bào)表打印預(yù)覽的方式有兩種:使用DataReport對(duì)象的Show方法和

22、設(shè)置DataReport對(duì)象為啟動(dòng)對(duì)象。,1使用DataReport對(duì)象的Show方法實(shí)現(xiàn)打印預(yù)覽 Show方法是用來打印預(yù)覽當(dāng)前的DataReport對(duì)象,其語(yǔ)法是:DataReport.Show 在前面曾創(chuàng)建了數(shù)據(jù)報(bào)表對(duì)象DataReport10,怎么實(shí)現(xiàn)它的打印預(yù)覽功能呢?打開主窗體Form11,單擊菜單“分組報(bào)表打印”的子菜單項(xiàng)“按人員技術(shù)職稱分組統(tǒng)計(jì)”,彈出代碼窗口,對(duì)象名:ryzc,編輯它的Click事件,如圖所示。,完成了上述代碼編寫后,運(yùn)行窗體,單擊菜單“分組報(bào)表打印”的子菜單項(xiàng)“按人員技術(shù)職稱分組統(tǒng)計(jì)”就可以預(yù)覽報(bào)表對(duì)象DataReport10,如圖所示。,2設(shè)置DataReport對(duì)象為啟動(dòng)對(duì)象 如果想在程序執(zhí)行時(shí)直接顯示DataReport對(duì)象,而不經(jīng)過菜單或窗體的調(diào)用,可以將數(shù)據(jù)報(bào)表設(shè)置為工程的啟動(dòng)對(duì)象,方法是:?jiǎn)螕簟肮こ坦こ?屬性”菜單項(xiàng),彈出“工程1工程屬性”對(duì)話框,選擇“通用”選項(xiàng)卡,將其中的啟動(dòng)對(duì)象設(shè)置為要預(yù)覽的報(bào)表對(duì)象名稱,如下頁(yè)圖所示。設(shè)置完報(bào)表Da

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論