999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VB程序設計——數據表通用打印程序

2008-12-31 00:00:00鄭曉紅
電腦知識與技術 2008年9期

摘要:本文介紹在Visual Basic程序中,利用Visual Basic操作Microsoft Excel,通過一個可攜帶記錄集參數的過程,實現對結構不同、標題不同的各類數據表的打印;克服了Visual Basic報表設計功能的局限性,解決了在程序運行中,動態生成的各種結構不同的記錄集對應的數據表的打印輸出問題;統一并簡化了Visual Basic應用程序對各類不同結構數據表的設計及打印的實現方法。

關鍵詞:Visual Basic;Excel;數據表;打印

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)09-11669-04

The VB Program Design: Universal Procedure to Print Report

ZHENG Xiao-hong

(From the Computer Science Department of Beijing Dongcheng Audlt College, Beijing 100020, China)

Abstract: This article will introduce, using the Visual Basic operation Microsost Excel in a application writen Visual Basic, how to print the dissimilar structure and diferen title reports with a procedure that takes a recordset parameter and a string type parameter. The procedure overcame the limit of function of the Visual Basic report design; solved the problem to print the different structure recordsets which were produce in a routine; unified and simplified the methos to design and print reports to each kind of different structure in a application writen Visual Basic.

Key words: Visual Basic; Excel; Print Report

1 Visual Basic系統中報表功能的局現限

盡管Visual Basic系統中提供了設計打印報表功能,但是,需要對各種結構不同的數據表分別去設計,這是一項繁瑣的工作,并且要在程序設計階段確定數據表的結構。然而,在信息管理系統中,常常需要程序運行中,根據用戶輸入條件而生成各種結構不同的記錄集,對于這種程序運行中生成的記錄集,在程序設計時往往不能確定表的結構,要打印輸出這種動態表,Visual Basic中的報表設計功能是無能為力的。

2 Visual Basic數據表通用打印程序

本人在信息管理系統開發應用中,利用VB操作Excel,設計一個帶參數的過程,實現對各種結構不同的數據表的打印輸出,使得對各類不同結構數據表的設計及打印統一并簡化為對通用打印過程的一次調用,大大提高了VB程序設計中報表設計和打印的效率。

2.1 通用報表打印過程的參數

在標準模塊中聲明Public報表打印過程,過程的頭如下面語句所示:

Public Sub TablePrint(rs As ADODB.Recordset, Title As String)

其中TablePrint為過程名,參數rs是ADO記錄集對象,參數Title是字符串變量,這兩個參數分別將要打印報表對應的記錄集和報表標題帶入到打印過程,在打印過程中從這兩個參變量中獲取并輸出要打印報表的標題、結構及數據。

2.2 在Visual Basic中引用和創建外部Excel對象

在VB中操作Excel,首先要添加引用“Microsof Excel Object Library”。在設置引用Excel對象之后,在過程中聲明Excel應用程序對象、工作簿對象并創建相關對象實例。下面語句依次聲明了Excel應用程序對象xlapp、工作簿對象xlbook。

Dim xlapp As Excel.Application

Dim xlbook As Excel.Workbook

下面語句依次創建Excel應用程序對象實例、新工作簿文件實例及選擇工作表sheet1。

Set xlapp = CreateObject(\"excel.application\")

Set xlbook = xlapp.Workbooks.Add

xlapp.Sheets(1).Select

2.3 由記錄集的字段名建立表的列標題

將記錄集輸出為數據表,首先要建立數據表的列標題,本程序通過一個循環語句將記錄集的字段名即表的列標題依次寫入當前選定的工作表Sheet1的第1行。

For i = 0 Tors.FieldsCount-1

xlapp.Cells(1, i+1) = rs.Fields(i).Name

Next i

2.4 將記錄集中的數據寫入工作表

下面語句通過一個嵌套的循環將記錄集中的記錄數據依次寫入工作表。

rs.MoveFirst

For j = 1 To rs.RecordCount

For i = 0 To rs.Fields.Count-1

xlapp.Cells(j+1, i+1) = rs.Fields(i).Value

Next i

rs.MoveNext

Next j

2.5 記錄工作表的數據區域

為了使程序能自動將數據表完整打印,程序必須記錄Excel工作表中的數據區域,下面語句分別獲取表格數據區域的最右列列號及右下角單元格地址,存入變量ec及ec1中。

ec = Chr(65 + rs.Fields.Count -1)

ecl = ec rs.RecordCount + 1

2.6 設置數據表的列寬及文字格式

在打印數據表之前,需要設置工作表的格式。

Excel工作表中的“Columns”對象的“AutoFit”方法,可實現工作表自動調整列寬為最適合的列寬。

xlapp.Worksheets(1).Columns(\"A:\" ec).AutoFit

在選定工作表的數據區后,利用Excel工作表的相關屬性設置選定區域的字體、字號及文字對齊方式。

xlapp.Range(\"a1\", ecl).Select

With xlapp.Selection

.Font.Name = \"宋體\"

.Font.Size = 10

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlCenter

End With

2.7 設置數據表的打印格式及打印輸出

在打印數據表之前,打印格式的設置是必不可少的。用With xlapp.ActiveSheet.PageSetup……End With括起來的下面一組語句實現了對數據表的打印設置。

設置打印區域、頁眉中打印數據表標題和打印日期、頁腳中打印頁碼和頁數

.PrintArea = \"a1:\" ecl

.CenterHeader = Title \" (打印日期:\"\"Times New Roman,常規\"\"D\"\"宋體,常規\"\")\"

.CenterFooter = \"第 P 頁,共 N 頁\"

設置打印數據表的上、下、左、右、頁邊距及頁頭、頁腳邊距

.TopMargin = Application.InchesToPoints(1)

.BottomMargin = Application.InchesToPoints(1)

.LeftMargin = Application.InchesToPoints(0.5)

.RightMargin = Application.InchesToPoints(0.2)

.HeaderMargin = Application.InchesToPoints(0.5)

.FooterMargin = Application.InchesToPoints(0.5)

設置打印表格線、設置每頁都要打印的列標題、設置表的打印縮放比例。

.PrintGridlines = True

.PrintTitleRows = \"$1:$1\"

.Zoom = 95

下面語句實現將工作表打印,并且首先彈出打印預覽頁面,由用護選擇時否打印。

xlapp.ActiveWindow.SelectedSheets.PrintOut Preview:=True

2.8 完整的打印過程源代碼

Public Sub TablePrint(rs As ADODB.Recordset, Title As String)

'定義Excel應用程序對象xlapp、工作簿對象xlbook

Dim xlapp As Excel.Application

Dim xlbook As Excel.Workbook

Set xlapp = CreateObject(\"excel.application\") '創建Excel應用程序對象實例

Set xlbook = xlapp.Workbooks.Add '創建新工作簿文件

xlapp.Sheets(1).Select '選擇工作表sheet1

xlapp.Visible = 1 '設置電子表格的可見性為假(調試時可設置為真,以便于觀察)

'將記錄集的字段(表的列標題)寫入Sheet1表的第1行

For i = 0 To rs.Fields.Count - 1

xlapp.Cells(1, i + 1) = rs.Fields(i).Name

Next i

'將記錄集中的記錄寫入Sheet1中

rs.MoveFirst

For j = 1 To rs.RecordCount

For i = 0 To rs.Fields.Count - 1

xlapp.Cells(j + 1, i + 1) = rs.Fields(i).Value

Next i

rs.MoveNext

Next j

'獲取表格有效區域——即有數據的區域

ec = Chr(65 + rs.Fields.Count - 1)'最右邊列號

ecl = ec rs.RecordCount + 1 '最右下角單元格地址

'自動調整表格列寬

xlapp.Worksheets(1).Columns(\"A:\" ec).AutoFit

'設置表格字體,字號,單元格文字對齊

xlapp.Range(\"a1\", ecl).Select

With xlapp.Selection

.Font.Name = \"宋體\"

.Font.Size = 10

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlCenter

End With

'打印設置

With xlapp.ActiveSheet.PageSetup

'設置頁眉:顯進標題和打印日期

.CenterHeader = Title \"(打印日期:\"\"Times New Roman,常規\"\"D\"\"宋體,常規\"\")\"

'設置頁腳

.CenterFooter = \"第 P 頁,共 N 頁\"

'設置上、下、左、右、頁邊距及頁頭、頁腳邊距

.LeftMargin = Application.InchesToPoints(0.5)

.RightMargin = Application.InchesToPoints(0.2)

.TopMargin = Application.InchesToPoints(1)

.BottomMargin = Application.InchesToPoints(1)

.HeaderMargin = Application.InchesToPoints(0.5)

.FooterMargin = Application.InchesToPoints(0.5)

.PrintHeadings = False '設置打印表的行列號

.PrintArea = \"a1:\" ecl'設置打印區域

.PrintGridlines = True '設置打印表格線

.PrintTitleRows = \"$1:$1\" '設置行標題

.PrintTitleColumns = \"$A:$B\" '設置頁標題

.CenterHorizontally = True '設置表格打印水平距中

.Zoom = 95'設置表格打印的縮放比例(也可做為參數代入)

End With

'打印預覽并打印

xlapp.ActiveWindow.SelectedSheets.PrintOut Preview:=True

End Sub

3 結束語

在Visual Basic應用程序中,調用該過程,就可實現Visual Basic操作Excel程序在后臺設計及打印數據表,用戶看不到具體過程,只看到漂亮的報表輕易地被打印出來。

這種方法可以充分發揮MS Excel的報表設計打印功能,簡化了Visual Basic應用程序中的報表設計工作,擺脫了Visual Basic中設計打印數據報表的煩腦。

參考文獻:

[1] 劉文濤. Visual Basic+Access數據庫開發與實例[M]. 清華大學出版社,2006-07.

[2] 劉韜. Visual Basic 實效編程百例[M]. 人民郵電出版社,2004-08.

[3] 吳剛. 實現VB與EXCEL的無縫連接[M]. http://www.yesky.com/20030217/1652372.shtml,2003-02.

主站蜘蛛池模板: 一本色道久久88亚洲综合| 国产噜噜在线视频观看| 婷婷亚洲天堂| 热99精品视频| 国产综合欧美| аⅴ资源中文在线天堂| 无码福利日韩神码福利片| 91欧洲国产日韩在线人成| 在线观看国产精美视频| 国产网站在线看| 久久精品国产999大香线焦| 国产91成人| 亚洲国产清纯| 国产91成人| 日本在线欧美在线| 一级爆乳无码av| 午夜国产精品视频| 免费va国产在线观看| 亚洲天堂2014| 激情無極限的亚洲一区免费| 午夜精品久久久久久久2023| 中文字幕久久波多野结衣| 毛片久久网站小视频| 日韩国产另类| 四虎影视国产精品| 无码国内精品人妻少妇蜜桃视频| 毛片免费高清免费| 国产乱码精品一区二区三区中文 | 色欲综合久久中文字幕网| 欧美精品v| 亚洲国产中文欧美在线人成大黄瓜 | 四虎精品黑人视频| 国产日本欧美亚洲精品视| 久久久久青草线综合超碰| 欧美高清国产| 国产剧情国内精品原创| 色妺妺在线视频喷水| 自拍亚洲欧美精品| 夜夜拍夜夜爽| 2020国产精品视频| 青青草国产在线视频| 婷婷六月综合网| 在线国产毛片| 国产无人区一区二区三区| 在线精品亚洲一区二区古装| 日韩成人在线视频| 日韩在线永久免费播放| 国产精选自拍| 久久久久久久久亚洲精品| 亚洲欧美不卡中文字幕| 国产中文一区a级毛片视频| 亚洲欧美一区二区三区蜜芽| 成人免费视频一区二区三区| 国产精品流白浆在线观看| 制服丝袜在线视频香蕉| 亚洲欧美成人影院| 亚洲αv毛片| 99草精品视频| 中文字幕在线欧美| 国产原创演绎剧情有字幕的| 大学生久久香蕉国产线观看| 国产免费网址| 国产情侣一区二区三区| 久久频这里精品99香蕉久网址| 欧美亚洲第一页| 97超爽成人免费视频在线播放| 久久免费视频6| 国产精品福利导航| 亚洲欧美在线综合一区二区三区| 高清不卡毛片| 谁有在线观看日韩亚洲最新视频| 日韩欧美国产成人| 欧洲熟妇精品视频| 欧美国产日产一区二区| 中文字幕第4页| 久久这里只精品国产99热8| 97精品国产高清久久久久蜜芽| 亚洲精品第一页不卡| 91区国产福利在线观看午夜| 久久综合丝袜长腿丝袜| 久久黄色视频影| 欧美午夜理伦三级在线观看|